Pobieraj filmy z YouTube od początku partii do końca partii, która jest częścią listy odtwarzania


10

Film z YouTube można oglądać samodzielnie lub może on być częścią listy odtwarzania.
Przykład:
https://www.youtube.com/watch?v=vbsNiOkm0BU i
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA

Zwróć uwagę na część vbsNiOkm0BU.

Pytanie brzmi: zdobądź tę część dla wszystkich filmów z kanału / listy odtwarzania.

Celem jest pobranie wszystkich filmów z tego kanału (około 3600). Ale nie udało mi się youtube-dlpobrać wszystkich naraz.
Chciałbym więc pobrać go na przykład w setkach setek.

Jeśli mógłbym przejść dalej do tego pytania, czy mogę napisać skrypt bash, aby pobrać tylko określone indeksy listy odtwarzania?

Jeśli zobaczysz powyższy link:
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
Zwróć uwagę na część &index=141.

Teraz, jeśli zrób coś takiego:

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

Zwróć uwagę na część &index=${i}.

To jest pobieranie tego samego filmu raz za razem, z powodu vbsNiOkm0BU.

Każda pomoc w tym zakresie byłaby bardzo mile widziana. Dziękuję Ci.

Odpowiedzi:


14

Lista odtwarzania

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

... gdzie <url-of-playlist>jest zastąpiony adresem URL listy odtwarzania, zastąp FORMATdowolnym dostępnym formatem wideo, na przykład 18, NUMBER-STARTto numer wideo na liście odtwarzania, który należy rozpocząć jako pierwszy, i NUMBER-ENDto numer filmu na liście odtwarzania, który należy pobrać jako ostatni .

Kanał

Jeśli kanał ma więcej niż jedną listę odtwarzania, kliknij pierwszą listę odtwarzania i pobierz wszystkie filmy z wybranej listy odtwarzania za pomocą powyższego polecenia. Następnie powtórz dla każdej listy odtwarzania na kanale.

Wyjaśnienie

-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 

Konwertuj wszystkie tytuły wideo na małe litery

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/' {} +

Wyjaśnienie

--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.

Dziękuję Ci! To się udało! Jeszcze jedno pytanie, czy mogę pobierać wszystkie tytuły wideo na małe litery podczas pobierania? Mogę określić format jak --output "%(title)s". Czy mogę również przekonwertować to na małe litery?
Rishiraj Surti
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.