Форум программистов, компьютерный форум, киберфорум
damix
Войти
Регистрация
Восстановить пароль

Конвертировать закладки radiotray-ng в m3u-плейлист

Запись от damix размещена 19.02.2026 в 18:12
Показов 2991 Комментарии 1
Метки powershell

Это можно сделать скриптом для PowerShell. Использование
PowerShell
1
.\СonvertRadiotrayToM3U.ps1 <path_to_bookmarks.json>
Рядом с файлом bookmarks.json появится файл bookmarks.m3u с результатом.
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Check if the correct number of arguments is provided
if ($args.Count -ne 1) {
    Write-Host "Usage: .ConvertRadiotrayToM3U.ps1 <path_to_radiotray_ng_bookmarks.json>"
    exit 1
}
 
# Get the input JSON file path from the command line argument
$jsonFilePath = $args[0]
 
# Check if the specified file exists
if (-Not (Test-Path -Path $jsonFilePath)) {
    Write-Host "File not found: $jsonFilePath"
    exit 1
}
 
# Define the output M3U file path in the same folder as the input JSON file
$m3uFilePath = [System.IO.Path]::ChangeExtension($jsonFilePath, ".m3u")
 
# Read the JSON content from the file
$jsonContent = Get-Content -Path $jsonFilePath -Raw -Encoding UTF8 | ConvertFrom-Json
 
# Initialize an array to hold the M3U lines
$m3uLines = @("#EXTM3U")
 
# Loop through each group and its stations
foreach ($group in $jsonContent) {
    foreach ($station in $group.stations) {
        # Add the station to the M3U array
        $m3uLines += "#EXTINF:-1,$($station.name)"
        $m3uLines += $station.url
    }
}
 
# Write the M3U lines to the output file
$m3uLines | Set-Content -Path $m3uFilePath -Encoding UTF8
 
Write-Host "Conversion completed. M3U playlist saved to: $m3uFilePath"
Метки powershell
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для volodin661
    Разнузданная критика

    1) Собственно ps-код выглядит более осмысленно, чем предваряющий его коммент.

    Например:

    PowerShell
    1
    
    if (-Not (Test-Path -Path $jsonFilePath))
    и что тут ещё комментировать ?
    То же и для всех остальных строк - код осмысленнее комментария.

    2) Название скрипта СonvertRadiotrayToM3U тоже не годится в том смысле,
    что политика powershell использования глагола Convert в названии функции/скрипта подразумевает на выходе
    живой обьект. В случае же преобразования файла одного формата в файл другого формата предусмотрено использование слова Export.
    И, кстати,
    вот эта строка
    PowerShell
    1
    
    $jsonContent = Get-Content -Path $jsonFilePath -Raw -Encoding UTF8 | ConvertFrom-Json
    имя переменной $jsonContent в качестве результата исполнения выражения только вводит в заблуждение,
    поскольку ни капли JSON в содержимом $jsonContent уже нет.

    3) Общие соображения.
    В таком стиле писали программы в конце прошлого века на языке "C",
    но сейчас уже вторая четверть нового века и это не С, а спец. язык обьектного shell.

    Короче, предлагается:
    комментарии все под нож,
    вместо них в самом начале скрипта в формате Embedded Help описывается всё необходимое, что надо знать о данном скрипте ( и да, после этого сразу волшебным образом заработает команда help ExportRadiotrayToM3U )
    Запись от volodin661 размещена 03.03.2026 в 16:07 volodin661 вне форума
    Обновил(-а) volodin661 03.03.2026 в 16:12
 
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru