YouTube-DL; Как скачать только плейлист, а не файлы в нем

1180
user985675

Попытка получить только содержимое списка воспроизведения (должно быть более 600 записей) из URL, таким образом:

youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr 

который в соответствии с man-страницей должен содержать список записей плейлиста, не допуская загрузки файлов.

Вместо этого он зависает после создания этого вывода:

~ $ youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr  [1] 4531  ~ $ [debug] System config: []  [debug] User config: []  [debug] Custom config: []  [debug] Command-line args: ['-i', '-v', '--flat-playlist', '--skip-download', 'https://www.youtube.com/watch?v=CNotezuR73g']  [debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8  [debug] youtube-dl version 2018.07.10  [debug] Python version 3.6.6 (CPython) - Linux-4.17.6-1-ARCH-x86_64-with-arch  [debug] exe versions: ffmpeg 4.0.1, ffprobe 4.0.1, rtmpdump 2.4  [debug] Proxy map: {}  [youtube] CNotezuR73g: Downloading webpage  [youtube] CNotezuR73g: Downloading video info webpage  [debug] Default format spec: bestvideo+bestaudio/best  

Как мне это сделать?

0
Я на Windows, поэтому, возможно, это не относится к Linux, но мне пришлось изменить URL-адрес на `https: //www.youtube.com/playlist? List = PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr` Также посмотрите это: https: // archive .zhimingwang.org / блог / 2014-11-05-список-YouTube-плейлистов-с-YouTube-dl.html wysiwyg 5 лет назад 0
Кажется, что комментарии ограничены одной строкой, поэтому вместо этого я должен сделать отдельный пост, см. Ниже. user985675 5 лет назад 0

3 ответа на вопрос

1
radiolondra

Вы читали страницу, предложенную wysiwig в своем комментарии? ( спасибо @wysiwig! )

Список Youtube плейлист с youtube-dl

В любом случае, здесь я попытаюсь объяснить, что вы могли бы сделать (извлечено из предыдущего веб-сайта)

Попробуйте использовать эту команду:

youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > result.log 

Это приведет к выводу, подобному этому в result.log:

https://youtu.be/0gvUCLL-UGE https://youtu.be/CPV7zcUy4J0 https://youtu.be/4wyZNwIrH9I ... 

что должно быть то, что вам нужно (список отдельных ссылок на видео YT).

Объяснение команды С помощью -jопции youtube-dl будет выводиться JSON, который содержит всю информацию о передаваемой вами ссылке (в данном случае плейлист).

Затем этот вывод JSON передается jqпроцессору JSON (его необходимо установить перед тем, как посмотреть сайт JQ ), ищущему все ключи «id», содержащиеся в выводе JSON (0gvUCLL-UGE, CPV7zcUy4J0,4wyZNwIrH9I, ...). Затем мы передаем те «идентификаторы», sedкоторым каждый из них будет https://youtu.be/предшествовать, давая результат, который я показал ранее.

Примечание 1: для установки JQ вы можете просто использовать: sudo apt-get install jq

Примечание 2: этот подход работает только для Youtube .

1
Daniel B

Похоже, вы не цитируете URL. Всегда указывайте URL. На любой операционной системе.

В вашем примере проблема хорошо видна:

~ $ youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr [1] 4531 

[1] 4531 означает, что задание (ID 1) запущено и выполняется с PID 4531.

Эта командная строка более или менее эквивалентна:

youtube-dl -i -v --flat-playlist --skip-download https://www.youtube.com/watch?v=CNotezuR73g & list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr 

Амперсанд в конце означает, что строка 1 будет выполняться в фоновом режиме. Он все еще будет подключен к вашей оболочке, поэтому вы увидите его вывод. Вероятно, он не зависает, только что закончил: в конце концов, это просто ссылка на видео.

Строка 2 - это присвоение переменной в Bash. Он определит переменную с именем, listесли она еще не существует. Это можно будет использовать так:

~ $ echo $list PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr 

Правильная командная строка, которую вы хотите использовать:

youtube-dl -i -v --flat-playlist --skip-download "https://www.youtube.com/watch?v=CNotezuR73g&list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr" 
0
user985675

@wysiwigМетод производит вывод на Linux, но не то, что я искал, таким образом:

$ youtube-dl --flat-playlist --skip-download https://www.youtube.com/playlist?list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr 

Выход :

[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка веб - страницу
[скачать] Загрузка списка воспроизведения: Полная длина Артхаус Фильмы
[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка страницы # 1
[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка страницы # 2
[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка страницы # 3
[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка страницы # 4
[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка страницы # 5
[YouTube: список воспроизведения] PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr: Загрузка страницы # 6
[YouTube: список воспроизведения] плейлиста Полная длина Артхаус Фильмы: Загрузка 636 видео
[скачать] загрузка видео 1 из 636
[скачать] загрузка видео 2 из 636
[скачать] Загрузка видео 3 из 636
...

То, что я действительно хотел получить из плейлиста, это названия видео, чтобы я мог выбрать только те, которые я хочу загрузить, и которые я получаю:

$ youtube-dl -i --get-filename --skip-download https://www.youtube.com/playlist?list=PLm9l7EEbJuhyDYNuItj3sG8h3xAZbjIxr 

Выход :

Официанты (полнометражный фильм, полнометражный фильм, полный фильм) _смотреть полные фильмы бесплатно-CNotezuR73g.mp4
Малкольм Икс (MORGAN FREEMAN, полный фильм, английский, полнометражный фильм) _смотреть полные фильмы бесплатно-3C8j1C7HMj8.mp4
Аризона Kid - Western, полнометражный фильм, полнометражный художественный фильм с участием Роя Роджерса, Classic Movies-8McZ6G2Uud8.mp4
Desperado Man aka Sagebrush Trail (западный фильм, полнометражный фильм, художественный фильм, классический фильм) -7udmB5M6IIE.mp4
...

Похожие вопросы