从下载的角度看,TikTok 是一个具有迷惑性的平台:它看起来简单,因为视频短、地址干净,但真正的播放链路在后台做了出人意料的大量工作。每一个 play_addr 地址都针对发起请求的会话签名,几分钟内过期,并且会根据请求来自应用内已登录会话、未认证的网页会话,还是第三方抓取工具,而投递不同的内容。TikTok 暴露出来的版本 —— 带水印、无水印、低码率、满码率 —— 取决于这个请求更像上述哪一种上下文。这就是为什么两个不同的下载工具可能返回”同一个”TikTok 视频的两个版本,而两者都没有错,只是运行在不同的上下文里。
实际的结论是:文件必须检查,而不能想当然。地址和保存对话框都不会告诉你到手的是哪个版本,因此唯一可靠的检查就是把结果打开:看尺寸、听声音、看有没有叠加水印。如果这条作品是你自己上传的,那么 TikTok 应用里你自己的原始文件,比任何对已发布版本的二次获取都更合适。
过期是第二个反复出现的意外。签名地址只在几分钟内、而且只对取得它的那个请求有效,这使得”复制地址再粘到别处”的做法以一种特别容易误导人的方式失败:动作快就成功,几分钟后就返回 403,于是人们得出的结论是工具不稳定,而不是这个链接本来就有时限。在视频确实处于播放状态时从页面本身操作,可以整类地避开这个问题。
TikTok 的访问限制比初看起来更严格。私密账户需要已获批准的关注。仅好友可见的视频需要互相关注,这是一个不同且更窄的条件。两者都在视频被送到你的会话之前就已生效,因此都不是下载工具靠配置能解决的 —— 要解决的是 TikTok 上的关系,而且即便有了这层关系,也仍然没有回答你是否可以保留副本。
最后一个真正引发混淆的区别:TikTok 和抖音不是同一个服务。它们同属一家,但运行的是各自独立的应用、内容库和地址体系,所以来自 douyin.com 的链接并不是 TikTok 链接,在其中一个上的结果对另一个毫无说明力。在下任何关于支持与否的结论之前,先看一眼主机名。