如何通过PHP下载youtube [m4a]音频

问题描述 投票:0回答:1

我有来自youtube的以下网址:

https://r4---sn-gwpa-a3vl.googlevideo.com/videoplayback?itag=140&ei=W12aWtqEKY6d1gLtxrCIDQ&requiressl=yes&keepalive=yes&fvip=4&ipbits=0&pl=36&key=cms1&mime=audio%2Fmp4&lmt=1514440019010993&expire=1520087483&c=WEB&source=youtube&clen=1849657&ip=2a02%3Ac207%3A2016%3A2180%3A%3A1&gir=yes&signature=02253C6FF1B66649D5830E55415CE3ED216A3D24.6489003335D2F1ECCE7DD85F767A12A78FF20935&sparams=clen,dur,ei,expire,gir,id,initcwndbps,ip,ipbits,ipbypass,itag,keepalive,lmt,mime,mip,mm,mn,ms,mv,pl,requiressl,source&id=o-AOjAGDxOAog_lYGvNSG5lhiJhh-tcLbQ9Onr7w9eY3CB&dur=116.401&ratebypass=yes&redirect_counter=1&rm=sn-4g5e6r7z&req_id=5a55cbbe03daa3ee&cms_redirect=yes&ipbypass=yes&mip=2405:204:a509:abdb:8c40:a522:92dd:334a&mm=31&mn=sn-gwpa-a3vl&ms=au&mt=1520065776&mv=m

我可以直接在我的浏览器中打开它并将其保存为m4a文件,然后我可以通过Windows媒体播放器播放它。

但是,如果我尝试通过使用标题等文件下载它文件仍在下载但我在尝试在Windows媒体播放器上播放时遇到错误。

错误是:

Windows Media Player无法播放该文件。播放器可能不支持该文件类型,或者可能不支持用于压缩文件的编解码器。

一些我如何能够以字节为单位获取文件大小,这是我现在使用的标题:

header('Content-Description: File Transfer');
header('accept-ranges: bytes');
header('Content-length: ' . $size);
header("Content-Range: 0-".($size-1)."/".$size);                
header("Content-Type: audio/mp4");  
header("Connection: keep-alive");
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: chunked'); 
header('Content-disposition: attachment; filename="'.$title.'.m4a"'); 
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header("Cache-Control: private", false);
header('Pragma: no-cache');
readfile($mp3path);  // URL of youtube video in M4A
exit;

只需进行一些调整,此代码可以在我的服务器上使用mp3文件,没有任何问题,但我需要从我的服务器下载一个远程文件m4a / mp4 [仅音频]。

注意:当我检查直接下载和通过php下载的两个文件。我在文件的属性中发现了一个区别,即通过我的php代码下载的文件不包含与比特率/长度相关的细节。而另一方面,通过浏览器直接下载的文件包含比特率值0kbps和长度。

也许我错过了什么,但不知道是什么?

有人能帮助我吗?

php download youtube http-headers m4a
1个回答
0
投票

您的代码是正确的,但仅适用于音频 - >音频文件。

但正如你所说,你想从mp4视频文件下载音轨,可能会有一些相同的补丁,但它不是最佳选择。

我建议你使用'FFMPEG',因为当我们处理视频到音频转换时,我们必须保持他们的编解码器信息(采样率,比特率)等。

FFMPEG将是此类操作的最佳解决方案。

谢谢 :)

© www.soinside.com 2019 - 2024. All rights reserved.