PHP 板


LINE

看板 PHP  RSS
※ 引述《kenshieh (Not always blank)》之铭言: : ※ 引述《lottemarines (一平)》之铭言: : : 作者: lottemarines (一平) 看板: Google : : 标题: [问题] 如何解析youtube的网址 : : 时间: Sat Dec 8 16:36:05 2007 : : 使用这个网站的话 : : http://kej.tw/flvretriever/ : : 就可以下载 youtube的影片 网址有点眼熟..................... XD : : 原先网址是: http://tw.youtube.com/watch?v=j75Kl7_ERdM : : 可以解析成:http://lax-v239.lax.youtube.com/get_video?video_id=j75Kl7_ERdM : : 小弟猜测:j75Kl7_ERdM 这段跟:lax-v239.lax 有某种关系 : : 另一例: : : https://www.youtube.com/watch?v=em-ZhJDjayM
: : http://ash-v250.ash.youtube.com/get_video?video_id=em-ZhJDjayM : : 小弟猜测:em-ZhJDjayM 这段跟:ash-v250.ash 有某种关系 : : 我想知道要怎样做才可以像上面那个网站那样写出一个解析下载影片网址的程式 : : 有强者可以解答吗? j75Kl7_ERdM 跟 lax-v239.lax 以及 em-ZhJDjayM 跟 ash-v250.ash 之间应该没有什麽关系,而只是单纯的 server hostname 罢了 你可以用 firebug 观察 flv 档案的 url,会发现多 reload 个几次 hostname 是会变的(应该是影片的 server 有好几台) : 懒人做法( 不确定是不是全都可以用, 但随手试二三个都行 ): : // $source == '网页内容' : $pattern = '/watch_fullscreen\?video_id=([\w-]+)&l=\d+&t=([\w-]+)'; : if (preg_match('#$pattern#s", $source, $m)) : { : echo "GetTube: http://tw.youtube.com/get_video?video_id={$m[1]}&t={$m[2]}"; : } 基本上要取得 youtube 的影片位址,最主要的参数就是 video_id 跟 t 像上面那样的作法是很 OK 的,我一开始也是这样的方式做的 可是当时间久了或量变大了之後,问题就来了 不晓得 youtube 是会侦测你今天总共 request 了几次还是会记录传输量 总之当程式抓网页抓到一个一定的量的时候,youtube 就会把你的连线挡了 过了一段时间之後才会再开放让你连线 当初我就一天到晚被挡,後来只好找 open proxy 後来我发现了一个方法,不需要找 proxy 也不会被 youtube 挡: 以 https://www.youtube.com/watch?v=em-ZhJDjayM 为例
我们可以知道他 embed 的标签里 影片的 src 会是 https://www.youtube.com/v/em-ZhJDjayM 而这个 url 会做 redirect 最後的网址就像下面这样:(三行连起来) https://www.youtube.com/swf/l.swf?video_id=em-ZhJDjayM& eurl=&iurl=http%3A//img.youtube.com/vi/em-ZhJDjayM/default.jpg& t=OEgsToPDskLvttI1e7cLfmL15TOMbN24&rel=1&border=0 所以程式就可以改成这样: (1). 抓原始 url 里的参数 v (2). 重新组合成 https://www.youtube.com/v/xxxxxxxxxxx 的格式 (3). 用 fsockopen 读取 (2),取得 header 的 Location 的 url (4). 从 (3) 得到的 url 中,parse 出参数 t (5). 组合成 https://www.youtube.com/get_video?video_id=$video_id&t=$t 的格式 基本上只要做到这个步骤就可以抓的到档案了,但是你还可以更进一步: (6). 用 fsockopen 读取 (5),取得 header 的 Location 的 url 从 (6) 这步骤得到的 url 就会是像 http://ash-v250.ash.youtube.com/get_video?video_id=em-ZhJDjayM 这样子的 url that's all~!! 只要 fsockopen parse_url parse_str 就好 不用捞网页(省流量!),也不用做 regular expression (省脑力!) 不会被 youtube 挡,也不会因为 open proxy 关了你的站就死翘翘了(我挂了好几次orz) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.102.122 ※ 编辑: Kej 来自: 220.133.102.122 (12/09 22:03)
1F:推 GcB:推 12/10 16:17
2F:推 wunming:原作者出现了~~推 12/11 19:45
3F:推 buubuu :如果不挡连线 youtube的server大概会爆掉吧XD 09/06 12:45







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP