我正在尝试提取已保存的youtube视频文件的位置(就像youtube下载程序一样)。
当我使用Chrome开发人员工具时,可以在网络部分轻松地看到对该文件的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的html编码(在youtube.com上),并提取和解码.googlevideo网址。但是这种方式不是很安全,因为我必须使用一些参数和值来设置url,而每个视频都可能需要或不需要这些参数和值。因此,这种方式仅适用于第二个视频...
有人知道获取文件位置的其他方法吗?
最佳答案
URL可通过ytplayer.config.args
对象获得。请记住,如果他们“保护”了视频,您将不得不跳过一些严重的陷阱才能获得可用的URL,甚至可能还没有。
How do all of these “Save video from YouTube” services work?
关于file - YouTube获取视频文件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255903/