Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

腾讯视频适用性 检验请求 #35

Closed
wangminqi opened this issue May 6, 2019 · 4 comments
Closed

腾讯视频适用性 检验请求 #35

wangminqi opened this issue May 6, 2019 · 4 comments

Comments

@wangminqi
Copy link

wangminqi commented May 6, 2019

使用下载原格式设置,已经尝试过腾讯视频主界面上 部分视频的适用性。

不过在尝试解析下面地址时显示 请求超时/返回空值
https://v.qq.com/x/cover/wvmn6sg298qr2w0/q0128rs8tpj.html
https://v.qq.com/x/page/q0128rs8tpj.html

这两个地址是同一个视频。
似乎是无法检测到。

猜测是由于视频种类采取的接口或者加密方法不太一样。

以下信息 与视频网址 仅为 来源,不一定有用,仅供参考
视频地址是
https://lpl.qq.com/es/video.shtml 这里
获得 网站内部 地址 https://lpl.qq.com/es/video_detail.shtml?nid=101
网站内部镶嵌了 腾讯视频的 跳转。
以上即这两个网址的来源。

不奢望implement相应功能,但是希望能帮助确认一下 这类视频 是否 确实和常规 腾讯视频 解析方式不同。

@ZSAIm
Copy link
Owner

ZSAIm commented May 6, 2019

https://v.qq.com/x/cover/wvmn6sg298qr2w0/q0128rs8tpj.html
https://v.qq.com/x/page/q0128rs8tpj.html

  • 首先结论是解析接口一致,但是可能会有多样的后期或者前期处理方式造成了最后解析的失败,但是解决方法也是比较简单的,加上所有的前后期处理方式就行了。
  • 刚简单看了下这两个地址。请求接口没变,,不像其他视频网站,腾讯视频你选最1080p清晰度(也就是Quanlity是6的时候)他不会自动返回你能获得的最高清晰度视频,他只会告诉你没有权限获取。所以请求我编程为提示空,事实上不是,但是为了简单起见就这么做了。
  • 请求超时是因为你确实选择了你有权限获取的清晰度,最后也确实返回了应有的JSON,但是没有提供我以为要提供的m3u8链接。但是没办法,腾讯不闲事多,这没有m3u8,需要自己在返回的json里面的数据按照规定拼接组合成一个单独的视频文件就是最终的视频了(里面有vkey)。
  • 这是因为在做腾讯之前并没有测试所有的视频,以为所有都是直接的m3u8这样的形式,。这又是一种解析的情况,可以解决,但是不一定会去解决。。

下面的链接肯定不能解析的。。。首先解析器都不能选中腾讯视频的。。
在程序里写死了

PARSER = {
    'iqiyi': core.iqiyi,
    'bilibili': core.bilibili,
    'v.qq': core.tencent,
    'youku': core.youku
}
  • 按照这个域名必然选不到腾讯视频解析器,,,不过这个可以解决,但是我应该不会特意适配lpl.qq到,因为你大可以找到v.qq的视频地址,视频窗体右键就可以找到v.qq下的视频。
  • 其实不只是这个问题,我偷懒已经从url获取vid了,所以乱七八糟的链接都可能影响到最后的解析。。。

@wangminqi
Copy link
Author

了解了。
根据你的代码。
我判断
1: 'sd',
2: 'sd',
3: 'sd', 270 标清
4: 'hd', 480 高清
5: 'shd', 720 超清
6: 'fhd' 1080

http://vv.video.qq.com/getinfo?vids=q0128rs8tpj&platform=101001&charge=0&otype=json&defn=shd
这个接口返回了 2个版本(270P,480P)的选择,可以最终拼接出所需的 真实MP4地址。

修改任意 platform参数,会得出3个版本(270P, 480P, 720P但是感觉fvkey无效的)的拼接选择。

在使用程序时,6,5返回为空;4,3,2,1为超时。我理解为 程序 没有探测到 720P的选项。

想请教一下,因为网页上可以自由选择720,480,270P,能理解为 腾讯 720P真实地址的 解析方式 是相对特殊的吗?

另附方法文档地址,以供参考
https://blog.csdn.net/Szu_IT_Man/article/details/80449751

@ZSAIm
Copy link
Owner

ZSAIm commented May 6, 2019

了解了。
根据你的代码。
我判断
1: 'sd',
2: 'sd',
3: 'sd', 270 标清
4: 'hd', 480 高清
5: 'shd', 720 超清
6: 'fhd' 1080

http://vv.video.qq.com/getinfo?vids=q0128rs8tpj&platform=101001&charge=0&otype=json&defn=shd
这个接口返回了 2个版本(270P,480P)的选择,可以最终拼接出所需的 真实MP4地址。

修改任意 platform参数,会得出3个版本(270P, 480P, 720P但是感觉fvkey无效的)的拼接选择。

在使用程序时,6,5返回为空;4,3,2,1为超时。我理解为 程序 没有探测到 720P的选项。

想请教一下,因为网页上可以自由选择720,480,270P,能理解为 腾讯 720P真实地址的 解析方式 是相对特殊的吗?

另附方法文档地址,以供参考
https://blog.csdn.net/Szu_IT_Man/article/details/80449751

  • 首先明确一点的是,返回空不是说明不能解析720p,1080p,而是说明了没有有效的解析到被认定为有用的信息,前面我说了,这是权限问题。而这面对的权限问题事实上跟PC网页端所需的权限是完全一致的,也就是说网页端需要登录才能播放720p的,在程序页面也同样需要导入cookie才能解析720p,否则返回的消息中提示的是需要登录。
  • 腾讯视频的720p不是特殊的,前面说了是权限问题,也就是登录问题。导入cookie就可以解析了。还有腾讯视频导入的cookie的所在domain是 video.qq.com。

@wangminqi
Copy link
Author

wangminqi commented May 7, 2019

感谢作者大大解惑

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants