Завантажте відео 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завантаженням одразу.
Тому я хочу завантажити його, як приклад, у 100.

Якщо я міг би продовжити це питання, чи можу я написати сценарій 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

Плейлист

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". Чи можу я також перетворити його в малі регістри?
Rishiraj Surti
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.