YouTube-dl kullanarak bir YouTube videosundan her şeyi indirin


16

Her şeyi (altyazılar, kartlar, etiketler, ek açıklamalar, küçük resimler vb. (Ve açıkçası video w / ses)) bir YouTube videosundan (örneğin, bu ) indirmek istiyorum .

Ben kullanıyorum youtube-dlkullanımına anahtarların ezici miktarı ile, benim ihtiyaçlarına uygun bir şey bulmak gibi olamaz ve. Ayrıca video / sesi kalite kaybı olmadan mümkün olan en yüksek kalitede indirmek istiyorum. YouTube olmasa da, satın aldığım bazı udemy kurslarımı indirmek istedim, böylece uzun bir yolculuğa çıkarken onları izleyebilirim.

Ben var ffmpegyüklü ve seni YouTube'dan kayıpsız indirmeleri için buna ihtiyacım olduğunu duydum, ama emin ilişkilendirme nasıl değilim youtube-dl.

Bu benim ilk kullanımım youtube-dl, bu yüzden herhangi bir yardım takdir.

Yanıtlar:


14

İhtiyacınız olan ilgili seçenekler:

# Filesystem
--write-annotations
--write-description
--write-info-json

# Thumbnail images
--write-all-thumbnails

# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv

# Subtitle
--all-subs
--write-auto-sub
--write-sub

# Post-processing
--add-metadata
--embed-subs

Bunu yapılandırma dosyanıza kopyalayın (ya /etc/youtube-dl.confda ~/.config/youtube-dl/config).

Bu yapılandırmayı kullanarak, indirilen Bu videoyu ve youtube-dlaşağıdaki dosyaları yazdı:

$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv

mediainfoÇıktılarını buraya gönderemiyorum çünkü karakter sınırını aşıyor, ancak github'da görebilirsiniz .


Ayrıca video / sesi kalite kaybı olmadan mümkün olan en yüksek kalitede indirmek istiyorum.

youtube-dlvideoları varsayılan olarak mümkün olan en yüksek kalitede indirir, ancak kullanarak bu davranışı zorlayabilirsiniz --format bestvideo+bestaudio/best.


YouTube olmasa da, satın aldığım bazı udemy kurslarımı indirmek istedim, böylece uzun bir yolculuğa çıkarken onları izleyebilirim.

Lütfen Bilgisayarıma Ders İndirebilir miyim? Başlıklı makaleyi okuyun. :

Varsayılan olarak, derslerin tamamı bilgisayardan indirilemez. Bunu korsanlıkla ilgili kaygılardan yapıyoruz.

Udemy mobil uygulamasında çevrimdışı görüntüleme için kursları her zaman kaydedebileceğinizi lütfen unutmayın . Video derslerini iOS mobil cihazınıza nasıl indireceğiniz hakkında bilgi için lütfen buraya tıklayın . Android cihazda çevrimdışı görüntüleme için video indirme adımları için burayı tıklayın .


Ben var ffmpegyüklü ve seni YouTube'dan kayıpsız indirmeleri için buna ihtiyacım olduğunu duydum, ama emin ilişkilendirme nasıl değilim youtube-dl.

youtube-dlavconvvarsayılan olarak kullanır , ancak bunun yerine --prefer-ffmpegkullanmanıza izin verir ffmpeg. Her neyse, " kayıpsız indirmeler " için bu seçenek gerekli değildir . Verdiğim örnekte, youtube-dlyalnızca ffmpegindirilen tüm formatları tek bir mkv dosyasına birleştirmek için kullanılır .


Bu, YouTube'daki bilgileri videoya yerleştirecek mi? Bunu tam olarak istemiyorum, sadece indirmesini istiyorum, ama hepsini ayrı dosyalarda saklayın, neye benziyor gibi :)
leetbacoon

Ve .mkv, kayıpsız videolar için varsayılan kapsayıcı youtube-dlmıdır?
leetbacoon

Oh, videoyu nasıl indirdin? youtube-dl [youtube-link]?
leetbacoon

1
@leetbacoon anlıyorum. Bir hata raporu ekleyeceğim.
nxnev

1
@leetbacoon Bu yanıtı yazdığımda, bunun tersi oldu youtube-dl, --youtube-skip-dash-manifestseçenek olmasaydı belirli videoları indiremezdi . Bu seçeneği düzenledim, söylediğin için teşekkürler.
nxnev

6

Videoyu indirmek için şunu kullanabilirsiniz:

youtube-dl --all-subs "https://www.youtube.com/watch?v=KYBok-XGsKM"

Video kalitesini seçmek için, önce mevcut formatları listelemek için -F seçeneğini kullanmalısınız.

youtube-dl -F "https://www.youtube.com/watch?v=KYBok-XGsKM"

Ve bu videonuzun çıktısı:

[youtube] KYBok-XGsKM: Downloading webpage
[youtube] KYBok-XGsKM: Downloading video info webpage
[youtube] KYBok-XGsKM: Extracting video information
WARNING: unable to extract uploader nickname
[info] Available formats for KYBok-XGsKM:
format code  extension  resolution note
249          webm       audio only DASH audio   52k , opus @ 50k,  4.19MiB
250          webm       audio only DASH audio   75k , opus @ 70k, 5.42MiB
140          m4a        audio only DASH audio  129k , m4a_dash container, mp4a.40.2@128k, 10.59MiB
171          webm       audio only DASH audio  131k , vorbis@128k, 7.66MiB
251          webm       audio only DASH audio  135k , opus @160k, 9.58MiB
278          webm       256x144    144p   98k , webm container, vp9, 30fps, video only, 6.59MiB
160          mp4        256x144    144p  114k , avc1.4d400c, 15fps, video only, 9.04MiB
242          webm       426x240    240p  205k , vp9, 30fps, video only, 11.47MiB
133          mp4        426x240    240p  265k , avc1.4d4015, 30fps, video only, 20.11MiB
243          webm       640x360    360p  362k , vp9, 30fps, video only, 21.93MiB
134          mp4        640x360    360p  602k , avc1.4d401e, 30fps, video only, 20.42MiB
244          webm       854x480    480p  662k , vp9, 30fps, video only, 37.82MiB
135          mp4        854x480    480p 1020k , avc1.4d401f, 30fps, video only, 42.62MiB
247          webm       1280x720   720p 1353k , vp9, 30fps, video only, 81.53MiB
136          mp4        1280x720   720p 2013k , avc1.4d401f, 30fps, video only, 84.69MiB
137          mp4        1920x1080  1080p 2438k , avc1.640028, 30fps, video only, 157.71MiB
248          webm       1920x1080  1080p 2593k , vp9, 30fps, video only, 162.48MiB
264          mp4        2560x1440  1440p 6973k , avc1.640032, 30fps, video only, 459.58MiB
271          webm       2560x1440  1440p 7523k , vp9, 30fps, video only, 485.66MiB
313          webm       3840x2160  2160p 19991k , vp9, 30fps, video only, 1.34GiB
36           3gp        320x?      small , mp4v.20.3,  mp4a.40.2
17           3gp        176x144    small , mp4v.20.3,  mp4a.40.2@ 24k
43           webm       640x360    medium , vp8.0,  vorbis@128k
18           mp4        640x360    medium , avc1.42001E,  mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2@192k (best)

Altyazılar için bazı yararlı seçenekler şunlardır:

   --write-sub
          Write subtitle file

   --write-auto-sub
          Write automatically generated subtitle file (YouTube only)

   --all-subs
          Download all the available subtitles of the video

   --list-subs
          List all available subtitles for the video

Küçük resimler için:

   --write-thumbnail
          Write thumbnail image to disk

   --write-all-thumbnails
          Write all thumbnail image formats to disk

   --list-thumbnails
          Simulate and list all available thumbnail formats

Videonun kalitesi hakkında daha fazla bilgiyi burada bulabilirsiniz


4
Manuel format seçimi ile neyi başarmayı umuyorsunuz? youtube-dlvarsayılan olarak mevcut en iyi video ve ses formatlarını kullanır. Yapılandırma dosyasındaki farklı bir ayarı geçersiz kılmak istiyorsanız -f bestvideo+bestaudio/best(varsayılan ayar ile aynıdır) veya yapılandırma dosyasını ( --ignore-config) yok sayabilirsiniz .
David Foerster

Bu konuda bana teklif etmeyin, ama daha önce okuduğumu düşündüm ses w / kayıpsız video almak için, sadece kullanınyoutube-dl https://www.youtube.com/watch?v=KYBok-XGsKM
leetbacoon

Ve merak ediyorum, 1440p varsa neden 1080p kopya en iyisi olarak kabul edilir? Ve neden 2160p görüntülenir? Bu seçenek sonumda görünmüyor (1440p'de kapaklar)
leetbacoon

3

@ leetbacoon bkz. yorum yanıtı çok altta. (düşük rep hala sry)

Not: Karışıklığı önlemek için daha uzun anahtar adlarını kullanacağım. Kullanılan anahtarların çoğunun daha kısa versiyonları vardır. Bkz. Dokümanlar: Seçenekler .

Not: - Görsel rahatlık \için anahtarları ayrı ayrı görüntülemek için kullanılır; hepsi \atlanabilir; kullanıyorsanız \, boşluk karakteri olmadığından emin olun \.


Özet: Kullanılabilir en yüksek video ve ses kalitesine sahip tek bir video dosyasını indirmek için kullanılan bir ytdl komutu. Videoyu kendi dizinine kaydeder (sizin belirttiğiniz). Mevcut tüm meta verileri indirir, her birini ilgili dosya formatlarına yazar ve aynı dizine kaydeder. Video çıkış dosyasına video meta verileri ekler.

Kendinizinkini kullanın:

  • /archive/videos/TED_Archive/anahtarlarda --download-archiveve istediğiniz --outputbir dizin yolu ile değiştirin .
  • örnek depolama yolu / arşiv / videolar
  • örnek video bağlantısı: https://www.youtube.com/watch?v=0bFs6ZiynSU
  • örnek kanal dizini / TED_Archive

====

youtube-dl \
--limit-rate '0.25M' \
--retries '3' \
--no-overwrites \
--call-home \
--write-info-json \
--write-description \
--write-thumbnail \
--all-subs \
--convert-subs 'srt' \
--write-annotations \
--add-metadata \
--embed-subs \
--download-archive '/archive/videos/TED_Archive/TED_Archive.ytdlarchive' \
--format 'bestvideo+bestaudio/best' \
--merge-output-format 'mkv' \
--output '/archive/videos/TED_Archive/%(upload_date)s_%(id)s/TED_Archive_%(upload_date)s_%(id)s_%(title)s.%(ext)s' \
'https://www.youtube.com/watch?v=0bFs6ZiynSU' ;

Not:' ' Güvenliği ayrıştırmak için tüm argümanları içine alın . Önerilen anahtarların

açıklaması :

  • --limit-rate '0.25M'B / s (saniyede bayt) cinsinden her youtube-dl örneğinin kullanılabilir maksimum indirme hızını sınırlamak için kullanılır.
    Bağımsız Değişkenler: büyük harfle yazılmış bir birim sonekine sahip herhangi bir pozitif tam sayı.
    Birim Sonekleri: Kilobayt için K; Megabayt için M; Gigabyte destekleniyorsa net değil.
    Ek:
    1. internet bağlantısının engellenmesinden kaçının.
    2. çoklu eşzamanlı ytdl örneklerinin indirme hızlarını yönetirken yardımcı olur.
    Ommisyon:
    1. interneti tıkar; göz atılamıyor, youtube video oynatımı gecikiyor.
    2. mümkün olduğunca hızlı video indirecektir.
    Not: Aynı anda birden fazla youtube-dl örneği çalıştırabilirsiniz.

  • --retries '5'başarısız olursa bir videonun indirilmesini otomatik olarak yeniden denemek için kullanılır. Bir oynatma listesi veya tüm bir kanalı indirirken kullanışlıdır (Youtube terimleriyle, aynı zamanda bir oynatma listesi (belirli bir kanalın)).
    Değerler: Pozitif bir tamsayı seçin. Varsayılan değer 10. Maks. infinite(Değişmez dize olarak girin).

  • --continue
    Bağımsız Değişkenler: yok
    Ek:
    1. kısmi dosyaların downalod özgeçmişini zorlar
    Not: ytdl parçalar video indirir; indirme sırasında ytdl beklenmedik şekilde sonlanırsa parçalar korunur.
    Ommission:
    1. Varsayılan olarak ytdl indirmeleri mümkünse devam ettirecektir.

  • --no-overwrites
    Argümanlar: yok
    Ekleme: edecek değil üzerine yazma aynı adlarla meta dosyaları mevcut.
    Ommission: video dosyalarının yerine aynı adlara sahip mevcut meta veri dosyalarının üzerine yazar.

    • --call-home hata ayıklama için ytdl sunucusuna başvurmak için kullanılır.

      "Sunucunuzda birden fazla IP varsa veya sansürden şüpheleniyorsanız, --call-home eklemek daha fazla tanı almak için iyi bir fikir olabilir." - Dokümanlar: Alınan hatalar 20180408,

  • --write-info-json
    Bağımsız Değişkenler: yok
    Çıktı Biçimi: json;
    Bilgi İçeriği: sayımı, beğenileri, yükleme tarihini, video ve ses kalitesi bilgilerini vb. Görüntüleme (ancak video metni açıklaması değil (yükleyici tarafından videonun altında yayınlanmıştır (2018 youtube düzeni))
    Ekleme: video meta verilerini ayrı bir .info.jsondosyaya yazar . Video dosyası ile aynı klasöre kaydedildi.
    Ommission:--add-metadata Video çıkış dosyasına hala video meta verileri yazacak olanları etkilemez .

  • --write-description
    Bağımsız Değişkenler: yok
    Çıktı Biçimi: düz metin;
    Ekleme: Video yükleyici tarafından bir videonun açıklama bölümünde (videonun altında (2018 youtube düzeni)) yayınlanan metni ayrı bir Write .descriptiondosyaya yazar. Video dosyası ile aynı klasöre kaydedildi.

  • --write-thumbnaildosyaya mevcut olan en yüksek çözünürlüklü küçük resmi ( maxresdefault.jpgyoutube olarak adlandırılır ) yazar .jpg. İle belirtilen şablona göre yeniden adlandırıldı --output. Video dosyasıyla aynı dizine kaydedildi.
    Bağımsız Değişkenler: yok
    Çıktı Biçimi: yalnızca JPEG;
    Not:youtube-dl --list-thumbnails '<video_url>' Belirli bir videonun kullanılabilir küçük resimlerini araştırmak için kullanın (oynatma listesi bağlantılarında çalışmaz); Ör .:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'

  • --write-annotationsvideo ek açıklamalarını .annotations.xmldosyaya yazar . İle belirtilen şablona göre yeniden adlandırıldı --output. Video dosyasıyla aynı dizine kaydedildi.
    Bağımsız Değişkenler: yok
    Çıktı Biçimi: .xml;

  • --all-subskendi dosyalarına (örn .: bir video için tüm özel oluşturulan mevcut altyazı yazıyor subtitles.en.vtt, subtitles.fr.vtt, subtitles.es.vtt)
    : Argümanlar yok
    Çıktı Biçimi: Varsayılan .vtt; --sub-format
    Hata Mesajları ile başka formatlar belirtebilir : Kullanılabilir altyazı yoksa, stdout - formatına bir UYARI mesajı yazdırılır:WARNING: video doesn't have subtitles

Faydalı Komut:

Not:youtube-dl --list-subs '<video_url>' Belirli bir videonun kullanılabilir küçük resimlerini araştırmak için kullanın (oynatma listesi bağlantılarında çalışmaz);
Ör .:youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'

  • --convert-subs 'srt'
    Bağımsız Değişkenler: String: format uzantısı ass, srt veya best
    Çıktı Biçimi: Varsayılan .vtt; veya spesifikasyona göre
    Ek: altyazıları belirtilen dosya formatına yazar (örn .srt. :) . Video dosyası ile aynı klasöre kaydedildi.
    Ommission: altyazılar .vtt
    Hata Mesajları olarak yazılacaktır : Kullanılabilir altyazı yoksa, stdout-formatına bir INFO mesajı yazdırılacaktır: [ffmpeg] There aren't any subtitles to convert
    Not: dönüştürme işlemi, .vttindirme işleminden sonra dosya üzerinde bir işlem sonrası adımı olarak yürütülecektir . Ytdl yürütmesi beklenmedik şekilde sonlandırılırsa, bazı altyazı dosyaları dönüştürülemeyebilir (bu durumda komutu tekrar çalıştır).

  • --add-metadata
    Bağımsız değişkenler: yok
    Davranış: meta veriyi video çıktı dosyasına yazar.
    Not: Bir gerektirmez .info.jsontarafından oluşturulan--write-info-json

  • --embed-subs
    Bağımsız Değişkenler: yok
    Davranış:
    1. video çıkış dosyasına altyazı yazar;
    2. Yalnızca mp4, webm ve mkv videolar için
    hata iletileri: Mevcut bir INFO mesajı stdout'u için basılacaktır hiçbir alt varsa - formatında: [ffmpeg] There aren't any subtitles to embed
    Not: Bir gerektirmez .vtttarafından üretilen --write-sub, --write-auto-subya da--all-sub

  • --download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
    Davranış: önceden indirilmiş videoların bağlantılarını içeren bir metin dosyası oluşturmak için kullanılır. Bir kanalın tamamını indirirken bu videoların atlanmasına izin verir. Yalnızca tek videoları indirirken gerekli değildir.
    Arguments: String: video arşivinize giden yolun, kanalın adını taşıyan dizinin bileşimi. Dosya adı, .ytdlarchivedosya uzantısına sahip kanal adından oluşur . (.txt de olabilir; ancak benzersiz biçim kolay farklılaşmayı sağlar)
    Çıktı Biçimi: düz metin; satır başına bir videoID
    Ek:
    1. ytdl henüz indirilmemiş olsa bile, videoID'leri ile listelenen tüm videoları yok sayar ve atlar.
    2. son indirilen videonun videoID'sini otomatik olarak bu dosyaya
    ekler Ommission: video dosyası ve meta veri dosyaları varsa ytdl bunları tekrar indirir.

  • --format ''
    Argümanlar: Önerilen Dize: bestvideo+bestaudio/besten yüksek video ve ses kalitesi kombinasyonunu sağlamak için.
    Ek: video kalitesi ve ses kalitesi ve bunların kombinasyonları üzerinde tam kontrol ve geri dönüş özellikleri
    Ommission: Default youtube-dl will guess it for you by default- Docs
    Not: Bkz. Dokümanlar: Format Seçim Örnekleri

  • --merge-output-format '<video_format>'
    Bağımsız Değişkenler: video dosyası biçimi. (ör .: mp4, mkv, 3gp vb.)
    Ekleme: video dosya biçimini belirtebilir
    Ommission: Default youtube-dl will guess it for you by default- Dokümanlar
    Not: Bkz. Dokümanlar: Biçim Seçimi

Faydalı Komut:

Not:youtube-dl --list-formats '<video_url>' Belirli bir videonun kullanılabilir video ve ses kalitesini ve biçimlerini araştırmak için kullanın (oynatma listesi bağlantılarında çalışmaz);
Ör .:youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'

  • --output '<template>'
    Bağımsız Değişkenler:
    1. video dosyası biçimi. (örn .: mp4, mkv, 3gp vb.);
    2. Önerilen: %(upload_date)s_%(id)s_%(title)s.%(ext)s
    Ek: video dosyaları ve tüm meta veri dosyaları için dosya adlandırma kuralını etkiler
    Ommission: Varsayılan olarak video başlığı dosya adı olacaktır. Varsayılan şablon: %(id)s.%(ext)sex çıktısı verir: testvideo.mkv
    Not: Ön% ek ve sson eki unutmayın (diğer yeterlilikler de vardır.); _Şablon öğeleri arasındaki siz sadece bir ayırıcıdır ve başka herhangi bir karakter olabilir. ör .: %(upload_date)s-%(id)s
    Not: Bkz. Dokümanlar: Çıktı Şablonu

  • '<video_url>'
    Bağımsız Değişkenler: Dize: belirli bir videoya url
    Hata İletisi:
    1. Gönderilen hiçbir video url'si ytdl yürütmez ve yardım görüntülemez.
    2. Geçersiz video URL'si gönderildiğinde ERROR mesajı stdout biçiminde yazdırılacaksa:ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube


Depolama Önerileri:

  1. miscvideo arşivinizde bir dizin oluşturun ve tüm videoları orada saklayın.

  2. bir kanaldan bir veya daha fazla video indirdiğinizde o kanal için özel bir dizin oluşturun. Bu durumda, kanal adı TED Archiveve dizin adı olacaktır TED_Archive. (Bash (veya python) komut dosyalarını kullanırken dizinde daha kolay gezinme ve dosya G / Ç işlemleri için tüm boşluk karakterlerini alt çizgi ile değiştiriyorum).


Yorumunuza cevap verme @leetbacoon

Ve merak ediyorum, 1440p varsa neden 1080p kopya en iyisi olarak kabul edilir? Ve neden 2160p görüntülenir? Bu seçenek sonumda görünmüyor (1440p'de kapaklar) - leetbacoon

Dokümanlar'dan
You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file

best: Select the best quality format represented by a single file with video and audio.

bestvideo: Select the best quality video-only format

Sadece seçtiğinizde bestve youtube'un bu format için en iyi video + ses kombinasyonu olduğunu düşündüğü formatı gönderdiğinde bir çıktı formatı belirlediğinizi düşünüyorum . Bu, bazı youtube iç dengeleme kararlarına (spekülasyon) tabi olabilir.


Kullanım deneyimimde, bestvideo+bestaudiosırasıyla video ve ses için en yüksek kaliteyi elde etmek ve daha sonra bunları bir .mkv kapsayıcısında birleştirmek için özel olarak belirtmek zorunda kaldım.


/bestEmin olmak için bir yedek argüman olarak kullanıyorum .


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.