【问题标题】:Youtube get video file linkYoutube 获取视频文件链接
【发布时间】:2016-05-17 07:18:33
【问题描述】:

我正在尝试提取保存的 youtube 视频文件的位置(就像 youtube 下载器一样)。

当我使用 chromes 开发者工具时,我可以很容易地在网络部分看到对文件的 GET 请求。例如:

Request URL:ttps://r7---sn-35cxacf-43ce.googlevideo.com/videoplayback?sver=3&expire=1454883491&upn=tsTA82e-o9E&itag=251&id=o-APaDOeTiHGebIWBx11PdJn2W306GFYIoYkYRzOOCnq8o&mn=sn-35cxacf-43ce&mm=31&keepalive=yes&pl=32&ip=2a02%3A8071%3A2782%3A8c00%3Ad8e%3Aeb17%3Ab477%3Ad45b&ms=au&mv=m&mt=1454861758&ipbits=0&initcwndbps=1905000&clen=5116592&sparams=clen%2Cdur%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cupn%2Cexpire&key=yt6&gir=yes&fexp=3300130%2C3300161%2C3310848%2C3312381%2C3312708%2C9406984%2C9416126%2C9420452%2C9422596%2C9423661%2C9423662&mime=audio%2Fwebm&requiressl=yes&lmt=1449558944068050&dur=308.401&source=youtube&cpn=TrlaqPAJmEUJLKte&alr=yes&ratebypass=yes&signature=704658DBE8F05AC56D741F2061B2F16B0B5F37DD.6929579BD72F61B1401C96078192EC20BA8CE6EC&c=WEB&cver=html5&range=781669-1125882&rn=9&rbuf=43086
Request Method:GET
Status Code:200 OK
Remote Address:[*****address*****]:443

如果我删除最后几个参数(从 c=WEB 开始),我得到了位置 (see here)*。但是如何通过代码获取这个“请求 URL”?我需要分析网络流量吗?还是有别的办法?

*它只获得视频文件的声音 - 但没关系。声音在 4 秒后开始。

我尝试的第二种方法: 获取普通 youtubevideo(在 youtube.com 上)的 html-cocde 并提取和解码 .googlevideo url。但是这种方式不是很安全,因为我必须使用一些参数和值来设置 url,这些参数和值对于每个视频都可能需要或不需要。所以这种方式只适用于每一秒的视频......

有人知道获取文件位置的其他方法吗?

【问题讨论】:

    标签: file video hyperlink download youtube


    【解决方案1】:

    这些 URL 可通过 ytplayer.config.args 对象获得。请记住,如果他们已经“保护”了视频,您将不得不跳过一些严重的环节才能获得可用的 URL,甚至可能不会。

    How do all of these “Save video from YouTube” services work?

    【讨论】:

    • 感谢它的工作:1) 下载源代码 2) 查找包含脚本的 base.js url 3) 下载脚本 4) 查找函数名称 5) 从源代码中获取 googlevideo 链接 6)使用链接签名作为参数调用脚本 7)用脚本中的“signature=”+签名替换链接签名 8)删除链接中的一些查询参数(在循环中并检查链接是否有效)。完成。
    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多