Youtube-dl kullanarak oynatma listesini indirmeyle ilgili sorunlar


19

Güncellemeye çalıştığımda youtube'dan bir çalma listesi indirmeye çalıştığımda youtube-dl'nin güncellenmesi gerektiği mesajını aldım Bu hata mesajına sahibim:

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.

Yani ... önerdiği herhangi bir şey yaptın mı?
Nattgew

1
Başlıkta açıklanan konuya girdim, ancak başka bir nedenden dolayı. Herhangi biri bununla karşılaşırsa (ancak hata mesajı farklıysa), örneğin youtube-dl -x "https://www.youtube.com/watch?v=abcd&list=efgh"hem Windows cmd.exe hem de Linux kabukları, işareti ve işareti &özel bir karakter olarak yorumladığı için URL'nizi tırnak işaretleri arasına koymayı unutmayın .
f.ardelian

Yanıtlar:


31

Bu sorunu yaşadım .. Bu şekilde deneyin ...

Youtube-dl'nin eski sürümünü kaldırın

sudo apt-get remove -y youtube-dl

En son sürümü resmi web sitesinden indirin

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

İndirilen dosyanın iznini değiştirme

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

Daha fazla ayrıntı için bu bağlantıya göz atın .

Umarım bu sana yardımcı olur ..


6

WebUpd8'in ppa'sını kullanın: ppa: nilarimogard / webupd8

Her zaman en güncel sürümü içerir.

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

5

Sorunuzdaki oynatma listesini indirmeyi denedim ve aynı hata mesajını aldım. Oldukça iyi çalışan youtube-dl'yi güncellemek yerine, çalma listesi web sayfasına gittim, URL'yi kopyaladım ve terminalden aşağıdaki komutları çalıştırdım:

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  

Bu komutların sonuçları, o web sayfasındaki tüm bağlantıların bir listesiydi. İçindeki tüm videoların URL'lerinin listesini içeren bir toplu iş dosyası yaptım (yalnızca videolar, diğer bağlantılar değil), her bir video URL'si yeni bir satırda. Bundan sonra bu talimatları izleyerek tüm videoları tek bir komutla indirebilirim.

  1. YouTube'dan indirmek istediğiniz videoların URL'lerinin listesini içeren bir metin dosyası olan bir toplu iş dosyası oluşturun. URL'ler, listedeki her URL için yeni bir satır olacak şekilde, her satırda yalnızca bir URL ve başka hiçbir şeye sahip olmayan bir listede düzenlenmelidir. Toplu iş dosyasını, batch-file.txt gibi hatırlaması kolay bir adla kaydedin. Birden çok dosyanın tümü YouTube'daki aynı kullanıcı, kanal veya oynatma listesi web sayfasındaysa, aşağıdaki komutu çalıştırarak o sayfadaki tüm bağlantıları içeren bir listeye sahip bir metin dosyası oluşturabilirsiniz:

    youtube-dl -j --flat-playlist "https://<yourYoutubePlaylist>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt 
    
  2. Terminal çalışmasından:

    youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'
    
  3. Bu temel komuttur, ancak indirmek istediğiniz videoların biçimlerini de eklemeniz gerekir, aksi takdirde istemediğiniz biçimlere sahip videoları indirirken bulabilirsiniz. Bu nedenle, önce istediğiniz formatın mevcut olup olmadığını görmek için indirmenizi simüle edin:

    youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'
    
  4. Video biçimi mevcut değilse şeklinde bir hata mesajı alırsınız: requested format not available. Video formatı mevcutsa, --simulateseçeneği kullandığınızda herhangi bir hata mesajı almazsınız . Bunun -Fgibi tüm geçerli biçimleri görme seçeneğini de ekleyebilirsiniz :

    youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'
    
  5. Yukarıdaki komutta ben ortak flv 360p video biçimini kullandık: -f 34. Düğmesini kullanarak flv 480p video biçimini denemeyi tercih edebilirsiniz -f 35. Komuta istediğiniz video biçimini ekledikten sonra komut şöyle olur:

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

    --simulateSeçeneği son komuta eklemedim , bu yüzden bu komut gerçek olarak çalıştırılacaktı.


Eklemek zorunda kaldım | grep index = yalnızca liste dosyalarını almak için lynx --dump " youtube.com/playlist?list=PLGwhw5SI2xoYKHyzQDj1y2I8vURgm8yd2 " | awk '/ http / {print $ 2}' | uniq | grep endeksi =
talsibony

0

Aşağıdaki kodu kullanıyorum

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

Güncellemeden sonra bile benzer bir hata aldım. '-Cit' yerine '-citv' kullandım ve işe yaradı.

youtube-dl -cit https://www.youtube.com/playlist?list=PL55RiY5tL51pIQNcOLDjnaQJYuj_GjVSz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.