2015-07-25 10 views
12

Con youtube-dl, prima guardo quale qualità video è disponibile e quindi, nella seconda fase, scarico la massima qualità possibile (in questo esempio -f 137+140). Youtube-dl unirà automaticamente streaming audio e video (formato DASH)youtube-dl DASH video e audio di altissima qualità senza intervento umano

Come automatizzare quello con lo script di shell? Anche scegliere con ogni video la massima qualità audio e video?

> youtube-dl -F 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'        
[youtube] Downloading login page                          
[youtube] Logging in                             
[youtube] VAdRBLyjLRQ: Downloading webpage                        
[youtube] VAdRBLyjLRQ: Downloading video info webpage                     
[youtube] VAdRBLyjLRQ: Extracting video information                     
[youtube] VAdRBLyjLRQ: Downloading DASH manifest                      
[youtube] VAdRBLyjLRQ: Downloading DASH manifest                      
[info] Available formats for VAdRBLyjLRQ:                        
format code extension resolution note                        
249   webm  audio only DASH audio , opus @ 50k                    
250   webm  audio only DASH audio , opus @ 70k                    
251   webm  audio only DASH audio , opus @160k                    
171   webm  audio only DASH audio 117k , [email protected] (44100Hz), 7.68MiB             
140   m4a  audio only DASH audio 128k , m4a_dash container, aac @128k (44100Hz), 11.58MiB        
160   mp4  256x144 DASH video 112k , avc1.4d400c, 15fps, video only, 9.94MiB           
278   webm  256x144 DASH video 136k , webm container, VP9, 15fps, video only, 9.10MiB         
133   mp4  426x240 DASH video 248k , avc1.4d4015, 30fps, video only, 22.27MiB           
242   webm  426x240 DASH video 316k , vp9, 30fps, video only, 22.20MiB             
243   webm  640x360 DASH video 557k , vp9, 30fps, video only, 41.05MiB             
134   mp4  640x360 DASH video 609k , avc1.4d401e, 30fps, video only, 52.94MiB           
244   webm  854x480 DASH video 1021k , vp9, 30fps, video only, 74.05MiB             
135   mp4  854x480 DASH video 1115k , avc1.4d401f, 30fps, video only, 97.02MiB           
247   webm  1280x720 DASH video 2011k , vp9, 30fps, video only, 150.61MiB            
136   mp4  1280x720 DASH video 2282k , avc1.4d401f, 30fps, video only, 189.40MiB          
248   webm  1920x1080 DASH video 3838k , vp9, 30fps, video only, 286.61MiB            
137   mp4  1920x1080 DASH video 4209k , avc1.640028, 30fps, video only, 354.19MiB          
17   3gp  176x144                          
36   3gp  320x240                          
5   flv  400x240                          
43   webm  640x360                          
18   mp4  640x360                          
22   mp4  1280x720 (best)                        
> youtube-dl -f 137+140 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'      
[youtube] Downloading login page                          
[youtube] Logging in                             
[youtube] VAdRBLyjLRQ: Downloading webpage                        
[youtube] VAdRBLyjLRQ: Downloading video info webpage                     
[youtube] VAdRBLyjLRQ: Extracting video information                     
(...) 
+0

E.g.per video-tutorial ad alta risoluzione o video musicali, a volte può essere utile combinare le opzioni migliori e peggiori come per il precedente 'bestvideo + worstaudio' e l'ultimo' worstvideo + bestaudio'. Solo per completezza. – TNT

risposta

1

ho trovato alcuni casi strani in cui il valore di default (vedi #5447, #5456) bestvideo+bestaudio/best sarebbe scaricare video 720p anche quando un 1080p era a disposizione. Il motivo per cui il bitrate su 720p era leggermente più alto, quindi sembrava migliore qualità per youtube-dl. Preferisco la risoluzione più alta, inoltre tutte le altre fantastiche applicazioni per downloader di youtube hanno scaricato il 1080p (come controllo).

Perciò propongo e utilizzare questo:

-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best 

Sarà cercare il meglio, a livello di video di almeno 1920. Se ciò non è disponibile, farà ricorso a ciò che normalmente sceglierebbe. La parte/migliore alla fine fa parte della configurazione predefinita.

Su una nota a margine, consiglio di inserire lo %(format_id)s in un punto del nome file, in modo da sapere cosa sta utilizzando quel file. Se in un secondo momento desideri scaricare nuovamente un gruppo di video senza utilizzare l'archivio, con --no-overwrites, una qualità migliore/diversa formerà un nuovo nome file accanto a quello vecchio (in modo che tu possa confrontare o qualsiasi altra cosa).

22

Basta usare -f bestvideo+bestaudio/best per la massima qualità risultante disponibile.

Se si voleva a preferire i contenitori in formato MP4, invece di WebM, utilizzare:

-f bestvideo[ext!=webm]‌​+bestaudio[ext!=webm]‌​/best[ext!=webm].

+0

come ottenere solo MP4? Nessun WebM? –

+2

'-f bestvideo [ext! = Webm] + bestaudio [ext! = Webm]/migliore [ext! = Webm]'. – dstftw

+3

Dalla versione '2015.04.26' questa è l'impostazione predefinita (vedere [qui] (https://github.com/rg3/youtube-dl/blob/master/README.md#format-selection)) quindi non è necessario specificarlo manualmente. –

3

Oppure si potrebbe usare,

youtube-dl https://www.youtube.com/watch?v=blabla 

Questo scaricherà la massima qualità video e audio e unirle automaticamente. E penso di aver sentito da qualche parte che hai bisogno di ffmpeg installato per avere questo comportamento automatico. Ma scommetto che molti sistemi lo hanno già fatto.

+0

Come mostrato nello screenshot, "best" è in questo caso campione (come spesso) 1280x720. E questo sarebbe ciò che ottieni in questo modo. Non posso permettermi di downvotare questa risposta come meriterebbe ... – TNT

+1

@TNT In realtà no. Il migliore tra parentesi implica il miglior video completo. Ma se non fornisci una qualità, in realtà procede e scarica separatamente il miglior video e il miglior audio. E li combina per formare l'output finale e cancella i file video e audio originali in seguito. Questi passaggi sono effettivamente visualizzati nel terminale. E ho sperimentato l'output in prima persona. L'OP otterrebbe un video 1080p in questo esempio. – Lilylakshi

+0

@Lilytakshi Scusa, hai ragione! Fortunatamente non ho votato a valle. Mi vergogno! Ho upvoted ora. – TNT

0

Controllare i formati disponibili per quel particolare il video che utilizzano questo:

youtube-dl -F video-url 

Scarica il video utilizzando questo:

youtube-dl -f code video-url 

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 , [email protected] (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) 

quindi eseguire questo per scaricare video per 1280 * 720 pixel ::

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