如何获得&在youtube-dl中设置视频格式?

时间:2015-03-17 19:07:38

标签: php unix youtube-dl

getaudio.php

  <?php
        $youtubeUrl =  $_GET['url'];
        $content = shell_exec("youtube-dl -j $youtubeUrl "); 
        $meta=json_decode($content);  
        $file= $meta->{'_filename'};
        $fileWithoutExtension = explode(".",$file)[0];
        $extension = ".m4a";
        $file = $fileWithoutExtension . $extension;         
        header("Content-Disposition: attachment; filename=\"$file\"" );
        header("Content-Type: application/octet-stream");
        passthru("youtube-dl -o - $youtubeUrl");

    ?>

我想通过 youtube-dl 下载 mp3 或任何其他音频文件。 此文件会下载视频文件。在下载之前我需要确认所有可用的音频格式。怎么做

2 个答案:

答案 0 :(得分:8)

要选择视频质量,请先使用-F选项列出可用格式,此处为示例

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

这是输出

[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)

最好的质量是22所以使用-f 22代替-F来下载分辨率为1280x720的mp4视频,

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

答案 1 :(得分:-1)

默认情况下,youtube-dlmp4格式下载YouTube视频。

可以选择youtube-dl将视频转换为音频文件。在"Post Processing Options"的文档中,您可以传入-x选项将视频文件转换为音频(这需要安装ffmpeg )和{{1} }将下载可用的“最佳”格式。如果需要指定的格式,则可以使用youtube-dl选项。

我怀疑--audio-format可以确认所有可用的音频格式,然后再下载,因为它仍以youtube-dl格式下载视频,但使用mp4将其转换为指定的音频格式,最后删除ffmpeg文件。