Problemy z pobieraniem listy odtwarzania za pomocą youtube-dl


19

Otrzymałem komunikat, że youtube-dl musi zostać zaktualizowany, gdy próbuję pobrać listę odtwarzania z youtube, gdy próbuję zaktualizować, mam następujący komunikat o błędzie:

elshahen@elshahen-LAB:~$ youtube-dl -cit https://www.youtube.com/playlist?list=PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2
[youtube:playlist] PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2: Downloading page #1
WARNING: [youtube:playlist] PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2: Playlist page is missing OpenGraph title, falling back ...
ERROR: Unable to extract title; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

Więc ... zrobiłeś coś, co to sugerowało?
Nattgew

1
Natknąłem się na problem opisany w tytule, ale z innego powodu. Jeśli ktoś na to wpadnie (ale komunikat o błędzie jest inny), pamiętaj, aby umieścić adres URL między cudzysłowami, na przykład youtube-dl -x "https://www.youtube.com/watch?v=abcd&list=efgh", ponieważ zarówno Windows cmd.exe, jak i powłoki Linux interpretują znak ampersand &jako znak specjalny.
f.ardelian

Odpowiedzi:


31

Miałem ten problem .. Wypróbuj w ten sposób ...

Usuń starą wersję youtube-dl

sudo apt-get remove -y youtube-dl

Pobierz najnowszą wersję z oficjalnej strony internetowej

sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl

Zmień uprawnienia do pobranego pliku

sudo chmod a+x /usr/local/bin/youtube-dl

Sprawdź ten link, aby uzyskać więcej informacji.

Mam nadzieję, że to pomoże ..


6

Użyj ppa z webUpd8: ppa: nilarimogard / webupd8

Zawsze zawiera najbardziej aktualną wersję.

sudo apt-get remove youtube-dl
sudo apt-add-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install youtube-dl

5

Próbowałem pobrać listę odtwarzania w twoim pytaniu i dostałem ten sam komunikat o błędzie, co ty. Zamiast zaktualizować youtube-dl, który działa tak, jak jest, poszedłem na stronę listy odtwarzania, skopiowałem adres URL i uruchomiłem następujące polecenia z terminala:

sudo apt install jq # command-line JSON processor    
cd Desktop/    
youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt  

Wyniki tych poleceń były listą wszystkich łączy na tej stronie. Utworzyłem plik wsadowy z listą adresów URL wszystkich znajdujących się w nim filmów (tylko filmy, a nie innych linków), każdy adres URL filmu w nowej linii. Następnie mogłem pobrać wszystkie filmy za pomocą jednego polecenia, postępując zgodnie z tymi instrukcjami.

  1. Utwórz plik wsadowy, który jest plikiem tekstowym zawierającym listę adresów URL filmów z YouTube, które chcesz pobrać. Adresy URL powinny być ułożone na liście zawierającej tylko jeden adres URL i nic więcej w każdym wierszu, z nową linią dla każdego adresu URL na liście. Zapisz plik wsadowy z łatwą do zapamiętania nazwą, jak plik wsadowy.txt. Jeśli wszystkie pliki znajdują się na tej samej stronie użytkownika, kanału lub listy odtwarzania w YouTube, możesz wygenerować plik tekstowy z listą zawierającą wszystkie linki na tej stronie, uruchamiając następujące polecenie:

    youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt 
    
  2. Z terminalu:

    youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
    
  3. Jest to podstawowe polecenie, ale musisz również dodać formaty filmów, które chcesz pobrać, w przeciwnym razie możesz pobrać filmy w formatach, których nie chcesz. Najpierw symuluj pobieranie, aby sprawdzić, czy żądany format jest dostępny:

    youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
    
  4. Jeśli format wideo nie jest dostępne otrzymasz komunikat o błędzie: requested format not available. Jeśli format wideo jest dostępny, nie pojawi się komunikat o błędzie podczas korzystania z tej --simulateopcji. Możesz także dodać -Fopcję, aby zobaczyć wszystkie prawidłowe formaty takie jak to:

    youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
    
  5. W powyższym poleceniu Użyłem wspólnej flv 360p format wideo: -f 34. Możesz wypróbować format wideo flv 480p przy użyciu -f 35. Po dodaniu formatu wideo do polecenia polecenie staje się mniej więcej takie:

    youtube-dl -f 35 -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'  
    

    Nie dodałem tej --simulateopcji do ostatniego polecenia, więc to polecenie zostanie wykonane naprawdę.


Musiałem dodać | grep index =, aby uzyskać tylko pliki list lynx - zrzut " youtube.com/playlist?list=PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2 " | awk '/ http / {print $ 2}' | uniq | grep index =
talsibony,

0

Korzystałem z poniższego kodu

youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz

Nawet po aktualizacji dostałem podobny błąd. Więc zamiast „-cit” użyłem „-citv” i zadziałało.

youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz
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.