我正在寻找一种使用PHP下载YouTube视频的方法。我已经搜索了几个小时,但是不幸的是,我找到的所有谷歌结果都已过时,不再起作用。
如果有人能够解释如何做到这一点,或者提供一篇详细介绍的最新文章链接,我将不胜感激。
非常感谢。
我正在寻找一种使用PHP下载YouTube视频的方法。我已经搜索了几个小时,但是不幸的是,我找到的所有谷歌结果都已过时,不再起作用。
如果有人能够解释如何做到这一点,或者提供一篇详细介绍的最新文章链接,我将不胜感激。
非常感谢。
/videoplayback
开头。file_get_contents()
。忽略不在watch-player div中的所有内容。解析代码,直到找到包含URL的变量。从那里,您可能需要取消转义该URL。一旦您获得它,您可以执行file_get_contents()
(或其他下载方法,具体取决于您要做什么)来获取URL。如此简单。您的HTML解析代码将是最复杂的。http://bitbucket.org/rg3/youtube-dl/raw/2010.08.04/youtube-dl
如果你不想阅读/重新实现它,显然它不是简单的,你可以直接从PHP运行它: system("youtube-dl '$url'");
上次我在修复一个损坏的Chrome扩展程序,以便下载YouTube视频。我通过修改脚本部分(JavaScript)来解决它。
var links = new String();
var downlink = new String();
var has22 = new Boolean();
has22 = false;
var Marked=false;
var FMT_DATA = fmt_url_map;//This is html text that you have to grab. In case of extension it was readily available through:document.getElementsByTagName('script');
var StrSplitter1='%2C', StrSplitter2='%26', StrSplitter3='%3D';
if (FMT_DATA.indexOf(',')>-1) { //Found ,
StrSplitter1=',';
StrSplitter2=(FMT_DATA.indexOf('&')>-1)?'&':'\\u0026';
StrSplitter3='=';
}
var videoURL=new Array();
var FMT_DATA_PACKET=new Array();
var FMT_DATA_PACKET=FMT_DATA.split(StrSplitter1);
for (var i=0;i<FMT_DATA_PACKET.length;i++){
var FMT_DATA_FRAME=FMT_DATA_PACKET[i].split(StrSplitter2);
var FMT_DATA_DUEO=new Array();
for (var j=0;j<FMT_DATA_FRAME.length;j++){
var pair=FMT_DATA_FRAME[j].split(StrSplitter3);
if (pair.length==2) {
FMT_DATA_DUEO[pair[0]]=pair[1];
}
}
var url=(FMT_DATA_DUEO['url'])?FMT_DATA_DUEO['url']:null;
if (url==null) continue;
url=unescape(unescape(url)).replace(/\\\//g,'/').replace(/\\u0026/g,'&');
var itag=(FMT_DATA_DUEO['itag'])?FMT_DATA_DUEO['itag']:null;
var itag=(FMT_DATA_DUEO['itag'])?FMT_DATA_DUEO['itag']:null;
if (itag==null) continue;
var signature=(FMT_DATA_DUEO['sig'])?FMT_DATA_DUEO['sig']:null;
if (signature!=null) {
url=url+"&signature="+signature;
}
if (url.toLowerCase().indexOf('http')==0) { // validate URL
if (itag == '5') {
links += '<a href="' + url + '&title=' + username + title + quality240 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v240p">FLV (240p)</span></a>';
}
if (itag == '18') {
links += '<a href="' + url + '&title=' + username + title + quality360 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v360p">MP4 (360p)</span></a>';
}
if (itag == '35') {
links += '<a href="' + url + '&title=' + username + title + quality480 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v480p">FLV (480p)</span></a>';
}
if (itag == '22') {
links += '<a href="' + url + '&title=' + username + title + quality720 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v720p">MP4 HD (720p)</span></a>';
}
if (itag == '37') {
links += ' <a href="' + url + '&title=' + username + title + quality1080 + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v1080p">MP4 HD (1080p)</span></a>';
}
if (itag == '38') {
links += '<a href="' + url + '&title=' + username + title + quality4k + '"style="text-decoration:none"><span class="yt-uix-button-menu-item" id="v4k">MP4 HD (4K)</span></a>';
}
FavVideo();
videoURL[itag]=url;
console.log(itag);
}
}