Загружайте видео с YouTube от начала до конца, что является частью плейлиста

10

Видео Youtube можно смотреть отдельно или оно может быть частью плейлиста.
Пример:
https://www.youtube.com/watch?v=vbsNiOkm0BU и
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA

Обратите внимание на часть vbsNiOkm0BU.

Вопрос состоит в том, чтобы получить эту часть для всех видео канала / плейлиста.

Мотивом является загрузка всех видео этого канала (примерно 3600). Но я не добился успеха с youtube-dlзагрузкой все сразу.
Поэтому я хочу скачать его в виде сотен, например.

Если бы я мог продолжить этот вопрос, могу ли я написать bash-скрипт для загрузки только определенных индексов плейлиста?

Если вы видите вышеуказанную ссылку:
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
Обратите внимание на деталь &index=141.

Теперь, если сделать что-то вроде этого:

for i in {100..200}
do
youtube-dl https://www.youtube.com/watch?v=vbsNiOkm0BU&index=${i}&list=UUmM7KPLEthAXiPVAgBF6rhA
done

Обратите внимание на часть &index=${i}.

Это загружает одно и то же видео снова и снова из-за vbsNiOkm0BU.

Любая помощь по этому вопросу будет принята с благодарностью. Спасибо.

Риширадж Сурти
источник

Ответы:

14

Playlist

youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>  

... если <url-of-playlist>заменить URL-адресом списка воспроизведения, замените его FORMATлюбым доступным видеоформатом, например 18, NUMBER-STARTэто номер видео в списке воспроизведения, который должен начать сначала загрузку, и NUMBER-ENDномер видео в списке воспроизведения, который нужно загрузить последним. ,

канал

Если канал имеет более одного списка воспроизведения, щелкните первый список воспроизведения и загрузите все видео в выбранном списке воспроизведения, используя вышеуказанную команду. Затем повторите для каждого списка воспроизведения на канале.

объяснение

-f, --format FORMAT
    video format code. The -F option (capital F) displays all available video  
    formats for a video link. Example: youtube-dl -F <url-of-video>

-c, --continue                   
    force resume of partially downloaded files

-i, --ignore-errors              
    continue on download errors, for example to skip unavailable videos  
    in a channel   

-w, --no-overwrites
    do not overwrite files 

Конвертировать все заголовки видео в нижний регистр

youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>     
find -type f -exec rename 'y/A-Z/a-z/' {} +

объяснение

--output '%(title)s.%(ext)s'  
    output file name(s) as the name of the video, followed by a dot character and the video's extension  

find -type f 
    Find all files.

y/source/destination/  
    Transliterate the characters in the pattern space which appear in source   
    to the corresponding character in destination.
Карел
источник
Спасибо! Это сработало! Еще один запрос, могу ли я конвертировать все заголовки видео в нижний регистр при загрузке? Я могу указать формат, как --output "%(title)s". Могу ли я также преобразовать его в нижний регистр?
Риширадж Сурти