我看到今天 vimeo 改变了他们播放视频的方式,我不能再播放他们的视频了。我在生成视频链接时看到了这一点,例如:
http://vimeo.com/moogaloop/play/clip:6649390/1eab2a25f30f1aadaf5e306d0f40fd6c/1292498602/?q=hd
它将我重定向到一个显示“权限被拒绝”的页面。我尝试使用 curl,但没有成功。我嗅探了流量,发现它是从类似以下内容流式传输的:
http://av.vimeo.com/02047/623/34209065.mp4?token=1292496582_34de09a6d13212cf26af08357d311c30
有人知道如何获取视频文件的有效 URL 吗?
我目前获取视频的方式是:
- 选择链接
http://vimeo.com/video_id
。 - 仅获取
video_id
。 - 获取视频的 XML
http://vimeo.com/moogaloop/load/clip:video_id;
。 解析 XML 并找到必要的信息:
- 请求签名
- request_signature_expires
- 是高清
生成链接:
$video_link = "http://vimeo.com/moogaloop/play/clip:".$video_id."/".$request_signature."/".$request_signature_expires."/?q=".$quality."";
如果我通过浏览器手动执行此操作,它会工作,但如果我通过脚本执行此操作,则不会。
最佳答案
花了几个小时找出如何获得 vimeo 的直接链接后,我找到了一个很好的解决方案。因此,这里是想要直接从 vimeo 下载和流式传输视频 src 的用户的步骤。请记住,他们会阻止所有 IP 地址以及可能以这种方式下载视频的主机,所以我刚刚停止使用他们的服务,我再也不会使用它们了 :)。
获取视频源的步骤:
- 选择链接
http://vimeo.com/video_id
- 仅获取
video_id
- 获取视频的 xml
http://vimeo.com/moogaloop/load/clip:video_id;
解析 xml 并找到我需要的必要信息:
request_signature
request_signature_expires
isHD
然后我生成链接:
$video_link = "http://vimeo.com/moogaloop/play/clip:".$video_id."/".$request_signature."/".$request_signature_expires."/?q=".$quality."";
那么如果你是php dev,你就这样通过exec调用wget命令
exec("wget -b '$video_link' -a 'wget.log' -O -");
然后您阅读日志并找出您要查找的链接。您可以简单地解析日志文件。直接链接在“Location:”和“[following]”之间
您返回直接链接并清理日志文件:)
注意:请再次记住,这不会永远有效。他们迟早会阻止你的 ip :)。
关于php - 如何找到 vimeo 视频的下载链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4460394/