Php 有没有办法使用youtube dl获取特定格式的音频/视频文件大小
请参见注释行。我需要那两行。代码的其余部分工作正常。此文件从YouTube下载音频。但是我在下载时看不到任何文件大小,因为youtube dl没有显示大小的选项,您可能需要查看Php 有没有办法使用youtube dl获取特定格式的音频/视频文件大小,php,youtube,youtube-dl,Php,Youtube,Youtube Dl,请参见注释行。我需要那两行。代码的其余部分工作正常。此文件从YouTube下载音频。但是我在下载时看不到任何文件大小,因为youtube dl没有显示大小的选项,您可能需要查看ytdl,相反,它可以提供所有元数据,如文件大小 要安装: <?php $youtubeUrl = $_GET['url']; $content = shell_exec("youtube-dl -j $youtubeUrl "); $meta=json_decode($content);
ytdl
,相反,它可以提供所有元数据,如文件大小
要安装:
<?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");
// $fize = shell_exec("youtube-dl -f 141 --get-size $URL");
// header("Content-Length: " . $fsize);
passthru("youtube-dl -f 140 -o - $youtubeUrl");
?>
()没有,因为您正在流式传输下载。您必须先下载到临时文件,然后执行
filesize()
,或者对url执行单独的HEAD
请求,并希望youtube自己输出适当的内容长度头。--get size
不是youtube的选项-dl@MarcB不因为应用程序本身也会在下载过程中显示总文件大小。@MarcB我对url做了单独的HEAD请求,但现在它开始流式处理,下载开始了有没有办法获得八位字节的确切文件大小?在Win10上不起作用<代码>属性错误:“YtdlPafy”对象没有属性“encode”。
$ pip install pafy
...
$ ytdl [url]
Stream Type Format Quality Size
------ ---- ------ ------- ----
1 normal webm [640x360] 21 MB
2 normal mp4 [640x360] 24 MB
3 normal flv [320x240] 19 MB
4 normal 3gp [320x240] 15 MB
5 normal 3gp [176x144] 5 MB
...