php - 如何找到 vimeo 视频的下载链接?

标签 php video download vimeo

我看到今天 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 吗?

我目前获取视频的方式是:

  1. 选择链接 http://vimeo.com/video_id
  2. 仅获取 video_id
  3. 获取视频的 XML http://vimeo.com/moogaloop/load/clip:video_id;
  4. 解析 XML 并找到必要的信息:

    • 请求签名
    • request_signature_expires
    • 是高清
  5. 生成链接:

    $video_link = "http://vimeo.com/moogaloop/play/clip:".$video_id."/".$request_signature."/".$request_signature_expires."/?q=".$quality."";
    

如果我通过浏览器手动执行此操作,它会工作,但如果我通过脚本执行此操作,则不会。

最佳答案

花了几个小时找出如何获得 vimeo 的直接链接后,我找到了一个很好的解决方案。因此,这里是想要直接从 vimeo 下载和流式传输视频 src 的用户的步骤。请记住,他们会阻止所有 IP 地址以及可能以这种方式下载视频的主机,所以我刚刚停止使用他们的服务,我再也不会使用它们了 :)。

获取视频源的步骤:

  1. 选择链接http://vimeo.com/video_id
  2. 仅获取 video_id
  3. 获取视频的 xml http://vimeo.com/moogaloop/load/clip:video_id;
  4. 解析 xml 并找到我需要的必要信息:

    • request_signature
    • request_signature_expires
    • isHD
  5. 然后我生成链接:

    $video_link = "http://vimeo.com/moogaloop/play/clip:".$video_id."/".$request_signature."/".$request_signature_expires."/?q=".$quality."";
    
  6. 那么如果你是php dev,你就这样通过exec调用wget命令

    exec("wget -b '$video_link' -a 'wget.log' -O -");

  7. 然后您阅读日志并找出您要查找的链接。您可以简单地解析日志文件。直接链接在“Location:”和“[following]”之间

  8. 您返回直接链接并清理日志文件:)

注意:请再次记住,这不会永远有效。他们迟早会阻止你的 ip :)。

关于php - 如何找到 vimeo 视频的下载链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4460394/

相关文章:

php - Cakephp 3 测试 : How to load records from database?

php读取产品数据txt文件

python - 使用 Pyramid 服务文件

javascript - 下载二进制文件而不触发 onbeforeunload

php - 删除确认 JavaScript

php - 使用 PHP 和 MySQL 的每行页面

image - 在静态图像上叠加音频音量直方图

ios - YouTube视频解析器iOS

objective-c - 无法从 iPhone 应用程序中的 URL 播放视频?

javascript - 使用 jQuery 和 iFrame 下载大文件 - 需要文件就绪事件以便我可以隐藏加载 gif