Come selezionare la qualità video da youtube-dl?


255

Ho installato youtube-dl nel mio 14.04.

Posso scaricare video seguendo il comando,

$ youtube-dl [youtube-link]

Ma voglio sapere come selezionare la qualità pixel disponibile del video di YouTube (ad esempio 1080p, 720p, 480p, ecc . ) .

Nella descrizione del software hanno detto che è possibile (mostrato nell'immagine sotto), ma come fare ..

ss


1
La descrizione sopra è obsoleta. Dalla manpagina: "youtube-dl ora esegue automaticamente il download della massima qualità disponibile, come riportato da YouTube, che in alcuni casi sarà 1080p o 720p".
Jos

1
Tieni presente che YouTube ha utilizzato una sorta di protezione che impedisce agli strumenti di download di scaricare (o persino vedere) la versione 1080p, ma puoi comunque scaricare tutte le altre risoluzioni fino a 720p incluso.
thomasrutter,

So di essere un po 'in ritardo alla festa, ma ecco la mia esperienza: askubuntu.com/a/1097056/327339 . Usa l' -f bestopzione
Gabriel Staples,

Risposte:


360

Per scaricare un video, digitare l'URL dopo il comando in questo modo:

youtube-dl 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Per selezionare la qualità video , utilizzare prima l' -Fopzione per elencare i formati disponibili, ecco un esempio,

youtube-dl -F 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Ecco l'output:

[youtube] Setting language
[youtube] P9pzm5b6FFY: Downloading webpage
[youtube] P9pzm5b6FFY: Downloading video info webpage
[youtube] P9pzm5b6FFY: Extracting video information
[info] Available formats for P9pzm5b6FFY:
format code extension resolution  note 
140         m4a       audio only  DASH audio , audio@128k (worst)
160         mp4       144p        DASH video , video only
133         mp4       240p        DASH video , video only
134         mp4       360p        DASH video , video only
135         mp4       480p        DASH video , video only
136         mp4       720p        DASH video , video only
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)

La migliore qualità è 22, quindi usa -f 22invece di -Fscaricare il video MP4 con una risoluzione di 1280x720 in questo modo:

youtube-dl -f 22 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

In alternativa, puoi utilizzare i seguenti flag per scaricare automaticamente le migliori tracce audio e video disponibili come file singolo:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Se si verificano errori durante il processo di muxing o un problema con la selezione della qualità video, è possibile utilizzare uno dei seguenti comandi:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

o come ha sottolineato Gabriel Staples qui , il seguente comando selezionerà in genere la migliore risoluzione di qualità video a singolo file anziché la velocità in bit della qualità video:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Questi comandi ti assicureranno di scaricare il video mp4 della massima qualità e l'audio m4a dal video come un singolo file o li uniranno nuovamente in un singolo mp4 (usando ffmpegnel mio caso). Se ffmpego avconvnon è disponibile, youtube-dldovrebbe ricorrere al singolo file -f best optionanziché al valore predefinito.

Fai clic qui per informazioni più dettagliate e alcuni esempi diversi.

Inoltre, fai clic per vedere questa risposta correlata di Gabriel Staples.


Fonte: www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

Fonte: github.com/rg3/youtube-dl


5
Assicurati di non scegliere DASH. Sarà ingiocabile!
ps95,

@ prakharsingh95 solo l'audio DASH può essere convertito in formato standard wave o mp3 utilizzando gnac o software simile.
mchid,

1
Intendevo DASH Video. Ho provato a scaricare 4K, ma è tutto in DASHformato ( DASHconsente a YouTube di preservare la larghezza di banda). È radicalmente diverso, per lo più sarà ingiocabile.
ps95,

1
@ prakharsingh95 Sì, se tutto ciò che potresti essere in grado di visualizzare mp4 utilizzando VLC come VLC ti consente di sincronizzare il video con un file separato per l'audio. Non l'ho provato però. Hai provato a convertire il file mp4 dal download DASH in formato avi? Penso che siano simili.
mchid

2
Sì. Dash è ovviamente giocabile, ma devi mescolare i flussi con qualcosa di simile avconv. Troppo lento per 4K.
ps95,

110

Puoi scaricare 1080p usando youtube-dl, ma devi fare un po 'di lavoro extra. Di solito scaricherà solo 720p come massimo anche se puoi vedere 1080p su youtube.com.

Esegui con -Fper visualizzare i formati disponibili:

youtube-dl -F https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

171         webm      audio only  DASH audio  115k , audio@128k (44100Hz), 2.59MiB (worst)
140         m4a       audio only  DASH audio  129k , audio@128k (44100Hz), 3.02MiB
141         m4a       audio only  DASH audio  255k , audio@256k (44100Hz), 5.99MiB
160         mp4       256x144     DASH video  111k , 12fps, video only, 2.56MiB
247         webm      1280x720    DASH video 1807k , 1fps, video only, 23.48MiB
136         mp4       1280x720    DASH video 2236k , 24fps, video only, 27.73MiB
248         webm      1920x1080   DASH video 3993k , 1fps, video only, 42.04MiB
137         mp4       1920x1080   DASH video 4141k , 24fps, video only, 60.28MiB
43          webm      640x360
18          mp4       640x360
22          mp4       1280x720    (best)

si noti che youtube-dlha etichettato l'ultima opzione 1280x720 come la "migliore" qualità ed è quello che verrà scaricato di default, ma che la linea che inizia con 137 è in realtà di qualità 1920x1080 superiore. Youtube ha separato i flussi video e audio per le linee etichettate DASH, quindi dobbiamo anche scegliere l'audio della massima qualità che in questo caso è la linea che inizia con 141. Quindi eseguiamo youtube-dlnuovamente questa volta specificando l'audio e il video:

youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

e scaricherà il video 1080p e lo unirà automaticamente con l'audio di alta qualità. Dovrebbe anche eliminare automaticamente le parti scaricate separate. Questo metodo richiede un po 'di lavoro in più, ma ti darà i migliori risultati.


11
grazie mille, non sapevo di 137 + 141
whitesiroi

3
Il tuo esempio e altri presentano scelte facili per l'audio - ovvero, per alta qualità, scegli quello con il valore di bitrate più alto. Di recente, tuttavia, mi sono trovato di fronte a una scelta tra DASH audio , opus @160ko DASH audio 126k , audio@128k (44100Hz), 1.79MiBo DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB. Ho dovuto scegliere ma non sono sicuro della qualità o forse della compatibilità.
user643722

1
La cosa migliore di youtube-dl è che è multi-piattaforma. Questa soluzione non funziona solo su Linux, ma anche su Mac e Windows. Grazie!
Antony,

2
Oggi è l'impostazione predefinita, ma solo se hai installato avconv (libav) o ffmpeg per eseguire la conversione dei file. Per Windows, che si desidera impostare --ffmpeg-locationin %APPDATA%\youtube-dl\config.txtalla directory in cui è installato avconv / ffmpeg. Se hai un sistema di fascia bassa che potresti desiderare anche -f bestvideo[fps<=30]+bestaudiolì, per evitare video a 60 fps.
GreenReaper,

29

Per selezionare risoluzioni specifiche, è possibile specificare le dimensioni e la qualità audio in modo che vengano selezionate automaticamente, quindi per 480p :

-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

con bestvideo[height<=720]+bestaudio/best[height<=720]per 720p ecc. Questo può essere aggiunto al file di configurazione ~/.config/youtube-dl/config(o anche /etc/youtube-dl.conf) in modo da non ottenere download di grandi dimensioni:

mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config

È possibile utilizzare --ignore-configse si desidera disabilitare il file di configurazione per una determinata esecuzione youtube-dl.

Si noti che abbastanza spesso dovrà scaricare un video separato e audio steam e unirli.

Per altri esempi vedere youtube-dlla doucmentazione .


1
Ho avuto un problema in cui diversi segmenti dello stesso video avevano codici di formato diversi per la stessa risoluzione (ad esempio hls-1476 per il video 1 di 2 e hls-1665 per il video 2 di 2 dove entrambi erano 540p) quindi non potevo semplicemente usare "-f hls-1476" o "-f hls-1665" o otterrei "ERRORE: formato richiesto non disponibile" I tuoi esempi di comando mi hanno aiutato a recuperare ciò che volevo.
ssnobody,

1
+1 per~/.config/youtube-dl/config
Marinos

10

Di seguito sono riportate alcune delle altre opzioni per scaricare i video di migliore qualità diversi da quelli indicati qui a seconda della convenienza:

Scarica il miglior formato mp4 disponibile o qualsiasi altro migliore se non è disponibile mp4

$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'

Scarica il miglior formato disponibile ma non migliore di 480p

$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

Scarica il miglior formato solo video ma non più grande di 50 MB

$ youtube-dl -f 'best[filesize<50M]'

Scarica il miglior formato disponibile tramite collegamento diretto tramite protocollo HTTP / HTTPS

$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'

Riferimento:

Direttamente dalla pagina github di youtube-dl


Come combinare ext=mp4 && height<=480 && filesize<50M?
MrGloom,

6

Uno script bash wrapper che richiede il formato, che include tutti i rendering disponibili, incluso solo audio, solo video, e quindi trasmette il video / audio con mpv.

Accetta sia URL di YouTube assoluti sia ID video.

#!/ usr/bin/env bash
# Download youtube video with desired quality

# youtube-dl accepts both fully qualified URLs and video id's such as AQcQgfvfF1M

url="$*"

echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT

echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")

Uscita campione :

    yt.sh https://m.youtube.com/watch?v=Dax_tnZRExc
    [youtube] Dax_tnZRExc: Downloading webpage
    [youtube] Dax_tnZRExc: Downloading video info webpage
    [youtube] Dax_tnZRExc: Extracting video information
    [youtube] Dax_tnZRExc: Downloading MPD manifest
    [info] Available formats for Dax_tnZRExc:
    format code  extension  resolution note
    139          m4a        audio only DASH audio   49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 308.75KiB
    249          webm       audio only DASH audio   50k , opus @ 50k, 271.91KiB
    250          webm       audio only DASH audio   70k , opus @ 70k, 366.63KiB
    171          webm       audio only DASH audio  118k , vorbis@128k, 652.50KiB
    140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 820.00KiB
    251          webm       audio only DASH audio  130k , opus @160k, 705.84KiB
    160          mp4        256x144    DASH video  109k , avc1.4d400c, 13fps, video only, 703.64KiB
    278          webm       256x144    144p  111k , webm container, vp9, 25fps, video only, 439.72KiB
    242          webm       426x240    240p  243k , vp9, 25fps, video only, 623.95KiB
    133          mp4        426x240    DASH video  252k , avc1.4d4015, 25fps, video only, 1.54MiB
    134          mp4        640x360    DASH video  388k , avc1.4d401e, 25fps, video only, 1.24MiB
    243          webm       640x360    360p  458k , vp9, 25fps, video only, 1.19MiB
    135          mp4        854x480    DASH video  761k , avc1.4d401e, 25fps, video only, 2.40MiB
    244          webm       854x480    480p  893k , vp9, 25fps, video only, 2.00MiB
    136          mp4        1280x720   DASH video 1382k , avc1.4d401f, 25fps, video only, 4.56MiB
    247          webm       1280x720   720p 1754k , vp9, 25fps, video only, 3.94MiB
    137          mp4        1920x1080  DASH video 2350k , avc1.640028, 25fps, video only, 8.48MiB
    248          webm       1920x1080  1080p 2792k , vp9, 25fps, video only, 8.09MiB
    17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
    36           3gp        320x180    small , mp4v.20.3, mp4a.40.2
    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)
    Please enter the desired format #

Se si desidera scaricare il video invece di riprodurlo in streaming, è sufficiente rimuovere la mpv --cache=1024parte e il simbolo del dollaro tra parentesi.


2

Come ottenere la migliore qualità video disponibile.

Questa risposta qui, con il maggior numero di voti, dovrebbe essere giusta per darti la migliore qualità video disponibile, ma .... non lo è. bestvideo+bestaudiosembra scegliere solo il miglior video e il miglior audio delle opzioni che sono solo video e solo audio , quindi unisce i due insieme. Si noti che anche questo sembra essere identico al comportamento predefinito di youtube-dl. Tuttavia, nel video che stavo guardando, la migliore qualità era un singolo file pre-unito che era già in un formato con video e audio combinati. L' bestvideo+bestaudioopzione NON ha scelto questo file 720p della migliore qualità perché cercava solo file audio e video separati . Dettagli sotto.

Soluzione? Prendi invece il miglior singolo file che contiene sia video che audio in uno, con questo:

youtube-dl -f best https://youtu.be/FWGC9SqA3J0

In breve: usa l' -f bestopzione, NON l' -f bestvideo+bestaudioopzione!

Prova:

inserisci qui la descrizione dell'immagine

Più specificamente, vedi sotto per i risultati della corsa

youtube-dl -F https://youtu.be/FWGC9SqA3J0

per vedere quali video 'F'ormats sono disponibili per il download:

gabriel ~ $ youtube-dl -F https://youtu.be/FWGC9SqA3J0
[youtube] FWGC9SqA3J0: Downloading webpage
[youtube] FWGC9SqA3J0: Downloading video info webpage
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[info] Available formats for FWGC9SqA3J0:
format code  extension  resolution note
139          m4a        audio only DASH audio   50k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 2.30MiB
249          webm       audio only DASH audio   51k , opus @ 50k, 2.34MiB
250          webm       audio only DASH audio   62k , opus @ 70k, 2.85MiB
171          webm       audio only DASH audio  103k , vorbis@128k, 4.68MiB
251          webm       audio only DASH audio  109k , opus @160k, 5.10MiB
140          m4a        audio only DASH audio  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 6.13MiB
160          mp4        256x138    DASH video  108k , mp4_dash container, avc1.4d400b, 24fps, video only
134          mp4        640x348    DASH video  142k , mp4_dash container, avc1.4d401e, 24fps, video only, 3.42MiB
133          mp4        426x232    DASH video  242k , mp4_dash container, avc1.4d400c, 24fps, video only
136          mp4        1280x694   DASH video  473k , mp4_dash container, avc1.4d401f, 24fps, video only, 8.01MiB
135          mp4        854x464    DASH video 1155k , mp4_dash container, avc1.4d4014, 24fps, video only
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 1.63MiB
36           3gp        320x174    small , mp4v.20.3, mp4a.40.2, 2.98MiB
43           webm       640x360    medium , vp8.0, vorbis@128k, 7.44MiB
18           mp4        640x348    medium , avc1.42001E, mp4a.40.2@ 96k, 8.54MiB
22           mp4        1280x694   hd720 , avc1.64001F, mp4a.40.2@192k (best) 

Si noti che la riga 22 dice "(migliore)" all'estrema destra di esso. Questa è l'unica opzione che offre la qualità hd720, che è la migliore qualità che posso ottenere guardando questo video in un browser Web su YouTube. È il più chiaro e ha la migliore definizione. Quando utilizzo uno dei comandi consigliati dalla risposta principale:

youtube-dl -f bestvideo+bestaudio https://youtu.be/FWGC9SqA3J0

O:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://youtu.be/FWGC9SqA3J0

Finisco con un video che è sia di qualità inferiore / risoluzione inferiore, che ha una dimensione del file più grande. Non lo capisco esattamente, ma l' -f bestopzione è sicuramente l'unica che mi dà davvero la migliore risoluzione.

Ecco alcuni screenshot:

  1. Utilizzando l' opzione di qualità inferiore -f bestvideo+bestaudio accettata qui come la risposta giusta (O semplicemente utilizzando l'opzione predefinita:) youtube-dl https://youtu.be/FWGC9SqA3J0:

    • inserisci qui la descrizione dell'immagine
    • Nota quanto sono sfocate le icone in alto e quanto sono difficili da leggere la finestra aperta e le minuscole parole al suo interno!
    • Questo è significativamente peggiore della qualità che ottengo quando guardo online su YouTube direttamente nel browser.
    • Questa opzione occupa anche più memoria per qualche motivo: il video è 18,0 MB e il mio sistema ha impiegato più tempo a scaricare e ricombinare (audio + video) rispetto -f bestall'opzione seguente, che ha dovuto eseguire solo un download e non ricombinare poiché era già un file.
  2. Utilizzando l' opzione di qualità superiore -f best che raccomando:

    • inserisci qui la descrizione dell'immagine
    • Nota quanto più chiare sono le piccole icone in alto e il carattere piccolo nella finestra!
    • Questa è la risoluzione identica a quella che ottengo guardando la massima risoluzione possibile direttamente nel browser su YouTube.
    • Questa opzione occupa anche meno memoria per qualche motivo: il video è 14,8 MB.

Letture aggiuntive:

Vedi man youtube-dlper i dettagli.


1
strano che vedo annunci per le opzioni 1920x1080, ma l'opzione 1280x720 (hd720) dice ancora "migliore"
nmz787

Tutti i tuoi screenshot mostrano elementi elettronici.
localhost il

@localhost, esatto. Sono tutti screenshot del video che mostra l'URL in tutti i miei frammenti di codice nel post: youtu.be/FWGC9SqA3J0 .
Gabriel Staples il

@GabrielStaples Aah. Sì, ha senso. Mi dispiace per quello.
localhost il

Non è strano che il numero più alto sul lato sinistro non corrisponda alla massima quantità di pixel sullo schermo nell'esempio di codice dei formati disponibili?
Ben

0

Sono un risparmiatore del disco, quindi scarico i video del formato 1280 x 720,
perché i 4kvideo richiedono più dimensioni del mio disco rigido.
Quindi aggiungo youtube-dl~ /. file bashrc come indicato di seguito

Impostazione di un lavoro:

aprire il terminale e digitare

  • nano ~/.bashrc
    ora vai in fondo al file e aggiungi il comando indicato di seguito
  • alias yt='youtube-dl -if best'
  • salvare il file premendo, Ctrl oquindi premereEnter
  • uscire dal file premendo Ctrl x
  • e l'ultimo comando di esecuzione source ~/.bashrcnel terminale

Esperimento -

Apri terminale e digita
yt https://www.youtube.com/watch?v=puPUJlV1-W4
Inizierà a scaricare video con la migliore qualità.

Spiegazione -
Bash ci permette di definire alias che agiscono come scorciatoie per bash comandi
nel nostro caso definiamo alias come -
alias yt = 'youtube-dl -i f best'
dove yt è il comando di scelta rapida per 'youtube-dl' che dà sollievo
le nostre dita per digitare comando lungo.
Puoi scrivere qualsiasi cosa nel posto di yt .
Ho impostato una bandiera -i in che significayoutube-dl -if best

Continuerà sugli errori di download, ad esempio per saltare i video non disponibili in una playlist


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.