m3u-tube
Небольшая утилитка для генерации M3U
плейслистов по ссылкам из youtube
,rutube
и прочих поддерживаемых yt-dlp
сайтов. Всю работу делает yt-dlp
, а эта утилита лишь оформляет вывод. Также, а собственно и основная цель это объединение разных плейлистов по ссылкам в один M3U
плейлист. Это скрипт обёртка над yt-dlp
.
Зависимости
sudo apt install lua yt-dlp
Установка и удаление
Глобально
sudo make install
sudo make uninstall
Локально
make PREFIX=$HOME/.local install
make PREFIX=$HOME/.local uninstall
Независимо
make DESTDIR=$HOME/some_you_dir install
make DESTDIR=$HOME/some_you_dir uninstall
Использование
Простейший пример (используйте одинарные кавычки для ссылок)
m3u-tube 'https://youtube.com/playlist?list=PL4FxkpKzI-TrFsTuuYnS3EvwSXmqi9Mun'
Вывод
#EXTM3U
#EXTINF:-1,'BLOGDRON INTER MATRIX PART 1:'
https://www.youtube.com/watch?v=6l54bQEsytM
#EXTINF:-1,'BLOGDRON INTER MATRIX PART 2:'
https://www.youtube.com/watch?v=prmoa3AlVl8
#EXTINF:-1,'BLOGDRON INTER MATRIX PART 3:'
https://www.youtube.com/watch?v=mbVnc_nXUgQ
#EXTINF:-1,'BLOGDRON INTER MATRIX PART 4:'
https://www.youtube.com/watch?v=sopDMYfvpbs
#EXTINF:-1,'BLOGDRON INTER MATRIX PART 5:'
Чтение ссылок из файла и запись M3U
в файл. Cсылки в фале могут быть произвольно разделеы пробелами и/или переводом строки.
m3u-tube -i links.txt -o playlist.m3u
Слияние двух плейлистов в один c выводом лога и записью в файл
m3u-tube 'ссылка1' 'ссылка2' -v -o playlist.m3u
Ссылки можно передать через пайп , разделитель новая строка, если не указан выходной файл, то вывод идёт на страндартный вывод
cat links.txt | m3u-tube - > playlist.m3u
Если нужно получить просто ссылки или имена роликов плейлиста (канала) то можно использовать ключи -l
и -n
соответственно. Это может быть полезно если M3U
плейлист не нужен, а нужны только ссылки или названия. Если указать оба ключа -l -n
то будет выведены и ссылки и названия через пробел. Вывод разделяется пробелом и предвариательно оболрачивается в одинарные кавычки.
Пример:
m3u-tube -l -n 'https://www.youtube.com/@blogdron'
Кусочек вывода
'https://www.youtube.com/watch?v=YMOcrBwk5eU' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=tepxWJjFboM' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=7Bs8U24ILgA' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=bf0Q8aWeJIk' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=JtwsUxTyfVg' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=geekqCqNc74' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=4EqpUc6Y0iw' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=m8TUpiXE0jk' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=X4hWDJzYJRA' 'BLOGDRON L4D2:'
'https://www.youtube.com/watch?v=iN6sNAcEobY' 'BLOGDRON L4D2:'
Утилитка простая всё описано в справке
[Usage: m3u-tube -u [URL] -o [FILENAME]
This simple util generate M3U playlist from
youtube, rutube playlists or maybe other web sites.
Multiple playlists can be combined into one M3U playlist.
yt-dlp does all the work, m3u-tube just generates the output.
Argsuments:
- Read one or more URL from pipe
-h --help This help message
-u --url [URL] One or more playlist URL links
-i --input [FILENAME] Filename for read URL links
-o --output [FILENAME] Falename for save M3U playlist
-l --links Show flat playlist, only links
-n --names Show flat playlist, only names
-v --verbose Show processing log, and enable yt-dlp warnings
[URL] One or more playlist URL links, divide space
If use multiple URL links, they combine in single M3U playlist.
Multiple links are separated by a space or new line. Bad links or
links without playlists ignored with information message.
Examples:
m3u-tube -i urls.txt -o play.m3u # create M3U from file with URL links
m3u-tube 'url' -v > out.m3u # create M3U from link, show processing
m3u-tube 'url1' 'url2' 'url3' # concat three playlists to one M3U
cat urls.txt | m3u-tube - # create M3U from pipe data
cat urls.txt | m3u-tube url1 - url2 # combine pipe and argumens
Notice:
If playlists not collected... Well, sometimes websites broken,
You need update yt-dlp to latest or add changes in yt-dlp for support.
For check what is broken try run it:
yt-dlp --flat-playlist --print url 'your_url_playlist'
See also:
yt-dlp(1)
На заметку
Если сыплет ошибками, значит надо разбираться с yt-dlp
как минимум запустить yt-dlp --flat-playlist --print url 'ссылка'
и увидеть в чём конкретно произошла ошибка. Вероятно придётся обновлять yt-dlp
В целом желательно иметь yt-dlp
поновее так как на сайтах постоянно что-то ломают, а в yt-dlp
под это постоянно подстраиваются.