Youtube-dl ile youtube çalma listesini indirme, mevcut dosyaları atlama


22

youtube-dlZaten varolan dosyaları atlayarak bir youtube çalma listesini mp3 olarak kullanarak indirmenin mümkün olup olmadığını merak ediyordum . Bu komutu kullanıyorum:

youtube-dl --continue --ignore-errors --no-overwrites --extract-audio --audio-format mp3 --output "%(title)s.%(ext)s" [path here]

ve üzerine yazmamak için ayarladığım halde, her şeyi sıfırdan indirir. Mümkün mü?


yeniden indirmesine rağmen, genellikle bu seçenek ayarlanmadan bile varsayılan olarak dosyayı yazmayı atlar
mchid 12:15 '

Tamam, indirilen videoyu mp3 dosyasıyla birlikte tutarsam, atlama işlevi düzgün çalışır. Tam olarak ihtiyacım olan şey değildi ama sorun değil.
Savaşçı,

Yanıtlar:


45

--download-archive FILE Youtube-dl seçeneği ile hem indirmez, hem de indirilmez bir dosya listesine ekler. Bir dosya başarıyla indirildiğinde, bu video kimliğine eklenir FILE.

Aşağıdaki gibi kullanabilirsiniz:

youtube-dl --download-archive downloaded.txt --no-post-overwrites -ciwx --audio-format mp3 -o "%(title)s.%(ext)s" [path here]

Listeyi oluştururken en son kaydetmediğiniz videoları bir daha indirmeyecektir. Şimdi onları silebilirsiniz.

MP3 dosyalarınızın varsayılan formatı ile adlandırılmış olması halinde, bir bash terminalinde youtube'dan aşağıdaki gibi %(title)s-%(id)s.%(ext)soluşturarak yeniden indirmeyi önleyebilirsiniz :downloaded.txt%(id)s

for n in *.mp3
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.mp3$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

1
Burada değerli cevap. Sorunumu çözdü. teşekkür ederim.
Savaşçı

Nedir -cwixburada?
bteo

2
-cwixdaha kısa bir alternatif--continue --no-overwrites --ignore-errors --extract-audio
Martin Thornton

1
Bu YouTube için mükemmel olsa da, youtube-dl'nin, -xseçeneğin çıktısını kırdığı görünüyor diğer sitelerle de (örn. Soundcloud) çalıştığını söylemeye değer . Bir ses kaynağından indirme yapıyorsanız bu bayrağı güvenle kaldırabilirsiniz.
christianbundy

2

Bu gerçekten yardımcı olur. Herhangi birinin yararı varsa, klasördeki tüm dosyaları içerecek varolan indirme listesini oluşturmak için kodu değiştirdim. --extract-audioVe --audio-quality "best"bayraklarıyla ses indirirken kullanışlıdır

for n in *.*
do if [[ "$n" =~ -[-_0-9a-zA-Z]{11}.*$ ]]
   then echo "youtube ${n: -15: 11}" >> downloaded.txt
   fi
done

Eminim çoğu insan bunu kendileri için halledebilirdi, ancak herkes bash kodlaması ile ipucu vermedi.

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.