Douyin_TikTok_Download_API
Douyin_TikTok_Download_API copied to clipboard
[BUG] 部分视频下载清晰度只有720P或者更低 (原始视频为1080P)
发生错误的平台?
抖音。
发生错误的端点?
API-V1/API-V2均可复现。
提交的输入值?
短视频链接或网页版长链接。
例如 https://www.douyin.com/video/7209483274043919677。
通过API-V1公共站点,获取的无水印链接为 https://aweme.snssdk.com/aweme/v1/play/?video_id=v0200fg10000cg6jlj3c77ub0opgksjg&ratio=1080p&line=0,实际下载获得的清晰度为720*1280即720P。
通过API-V2接口API,返回值中有关视频分辨率的部分为:{"height": 1920, "weight":1080, "ratio": "720p"}
,最终下载得到的是 ratio 对应的清晰度,包括直接使用返回值中的带有签名的链接或类似于 https://aweme.snssdk.com/aweme/v1/play/?video_id=v0200fg10000cg6jlj3c77ub0opgksjg&ratio=1080p&line=0 的API链接。
还存在部分视频使用https://aweme.snssdk.com/aweme/v1/play/?video_id=... 的API链接下载可能导致获得最低清晰度(540P)的情况。
我晚点去检查一下,如果你已经有解决办法了,可以尝试提交一份PR至本仓库😃
{"height": 1920, "weight":1080, "ratio": "720p"}
返回值和实际宽高不一致的问题,目前主要可以分成3种情况:
- height 和 weight 的宽高大于 1080p,例如一个 4k 的原视频,在抖音观看的最高分辨率只是 1080p,应该是无法直接解决。这个我认为符合预期。
- height 和 weight 的宽高小于 1080p,返回值中的 ratio 为720p或更小(基于视频的实际宽高),这个我认为符合预期。
- height 和 weight 的宽高等于 1080p,部分返回值中的 ratio 为 720p 而不是 1080p。但是这种情况多数出现在个人账号/大量粉丝账号刚刚更新的视频,目测可能是根据观看人数等来提供最高清晰度?希望可以找到下载此类情况 1080p 的方法。
使用 https://aweme.snssdk.com/aweme/v1/play/?video_id=xxx&ratio=1080p&line=0 的API链接下载可能导致获得最低清晰度(540P)的情况。
将 ratio=1080p
改为类似 {"height": 1920, "weight":1080, "ratio": "720p"} 的 ratio,例如 ratio=720p
。这个问题是部分视频才会复现,并不是所有视频都会复现。
好的,非常感谢你提供的数据和信息,我晚些时候会去测试一下,我们可以在这个issue中update进度👍🏻
目测可能是根据观看人数/互动情况等来提供最高清晰度应该是对的,刚刚又测试了一下大量粉丝账号刚刚更新的视频(原始视频1920*1080)。第一次下载测试是发布5分钟左右,下载清晰度为 720p ;第二次下载测试是发布30分钟左右,下载清晰度为 1080p 。视频就5秒左右应该不存在还没转码完的情况,另外:两次获得的 video_id 值不同。
嗯嗯,可能是的,我再去研究一下提交至
https://aweme.snssdk.com/aweme/v1/play/?video_id=xxx&ratio=1080p&line=0
的参数。