1. 为什么使用一个扩展而不是十二个(以及“客户端”的实际含义)
下载器市场以庞大的方式解决了平台覆盖问题:每个平台一个网站或扩展程序,每个网站或扩展程序都有自己的怪癖、广告、信任配置文件和更新时间表。用户最终会得到三个加了书签的转换器站点、两个来源不明的扩展程序以及将其浏览内容泄露给每个平台上不同运营商的粘贴链接下载例程。维护经济性是整合从未发生的隐藏原因:每个平台每年都会多次轮换其 DOM 和有效负载模式,因此十二个平台工具并不是粘在一起的十二个工具 - 它是一个带有十二个瘦适配器的共享提取核心,作为一个系统进行更新。
这就是 Video Downloader Bundle 所构建的架构,描述它的短语“客户端”正在做精确的工作。每个字节的提取都发生在您的浏览器选项卡内:从页面自己的数据层读取媒体 URL,根据您的请求使用会话的 cookie 获取流,任何多路复用或分段缝合都在本地 Web Workers 中运行,并且通过浏览器的下载 API 写入文件。任何下载过程中都不存在代理服务器。没有可以提交 URL 的后端,没有在其他人的数据库上记录您的活动的日志,没有为您提供过时版本的缓存,也没有让您的会话 cookie 传输到浏览器自己的密钥库之外的任何地方的步骤。
用户可见的后果出现在边缘。登录门控内容有效,因为您正在以自己的身份下载。私人和会员内容的工作精确到您自己的访问权限线,而不是超出它的一个像素。质量是第一代的,因为没有第二代编码。相同的交互模型——视频上的下载按钮、配置文件上的批量控制、弹出窗口上的 MP3 选项——在所有 12 个平台上都适用,因此 TikTok 上构建的肌肉记忆在 Patreon 上保持不变。
接下来是逐个平台的地图:每个管道的外观、期望的质量以及每个管道的边缘情况所在。
2.社交六强:TikTok、Instagram、Twitter/X、Reddit、Threads、Pinterest
社交平台共享一种交付模式 - 水合有效负载或 GraphQL 响应中的媒体对象、绑定到会话的签名 CDN URL、击败一次性 DOM 扫描的虚拟化提要 - 并且在质量和工作流程方面的细节有所不同。
TikTok 在其 CDN 上存储一个干净的母版,并将其水印应用为网络播放器中的 DOM 覆盖层,因此提取可以直接从水合有效负载中提取无品牌的 1080p playAddr 再现。质量上限:源,通常是 1080p H.264。相比之下,粘贴链接生态系统大多会返回重新编码的 540p,但水印问题尚未解决。
Instagram 在其 GraphQL 有效负载中公开 video_versions 数组 - 640p、720p、1080p MP4 演绎版;卷轴、视频源、会话中的故事和轮播视频子项都通过相同的媒体对象形状进行解析。签名的令牌很快就会过期,这就是为什么在点击时立即进行获取。音频提取到 MP3 涵盖了流行声音用例。
Twitter/X 是联合 API 平台:使用计算令牌通过联合端点解析高达 1080p 的推文视频变体,并在令牌轮换时使用 GraphQL 回退。线程密集型归档是该平台的标志性用例,批量下载程序以与其他源相同的方式遍历配置文件时间线。
Reddit 是一个分流平台:DASH 视频和音频在 v.redd.it 下作为单独的文件,通过 mp4box.js 在浏览器中混合到一个带声音的快速启动 MP4 中。每个通用工具都会在此处返回无声视频;选项卡内的复用器可以解决这个问题,它还可以处理导致所有云下载器崩溃的 NSFW 会话情况。
Threads 使用 Meta 的 CDN 系列和 Instagram 形状的媒体对象,经过验证的端到端工作,并且足够年轻,其适配器经常进行架构更新 - 这是该系列中最新平台的维护成本。
Pinterest 将 MP4 隐藏在其 v.pinimg.com 视频 CDN 上的海报帧图像后面,这就是右键单击保存 JPEG 的原因;提取读取 pin 的 video_list,更喜欢高清再现,解析 pin.it 选项卡中的短链接,以及批处理存档板 - “它保存了图像”投诉的来源平台。
3. 创造者四:Substack、Patreon、Ghost 和发布平台模式
创作者发布平台共享不同的模式:视频不是产品的核心,因此它是通过第三方基础设施嵌入的 - Mux、Wistia、Vimeo 嵌入、直接上传 - 并且提取工作实际上是跨出版物使用的媒体分辨率。
Substack 帖子通常通过 Mux 嵌入带有签名播放 URL 的视频,以及直接上传的 MP4 和兼作播客剧集的音频帖子。该适配器从后负载中解析 Mux 播放 ID,处理 HLS 路径和渐进式 MP4,并将播客音频提取为 MP3 - 考虑到 Substack 的播客经济性,这是大多数订阅者实际使用的功能。
Patreon 是会员墙平台:视频在会话绑定权利后面运行 Mux 基础设施,提取准确捕获您的承诺层所服务的内容 - HLS 清单在本地获取、分段和重新混合;诚实地跳过了带有 DRM 标记的帖子。 cookie 陷阱警告是特定于平台的,值得重复:任何要求您粘贴 Patreon 会话 cookie 的下载网站都在询问您的帐户。
Ghost 出版物的范围从托管的 Ghost.io 网站到自托管的自定义域,其视频最为异构:直接 MP4 上传、嵌入式 Vimeo 或 Mux 播放器以及发布者配置的 HLS。适配器的通用 HTML5 核心完成了这里的大部分工作,并由 Ghost 特定层处理自定义域检测。
这四个共享的发布平台模式是捆绑包在一个架构中涵盖它们的原因:它们之间的难题(HLS 处理、令牌新鲜获取、会话上下文请求)是相同的,只有有效负载形状不同。这也是为什么出版平台的报道经久不衰的原因——时事通讯平台改变其帖子标记比社交平台改变其提要更重要,因为下面的媒体层变化较少。
4. 视频主持人三巨头:Vimeo、Dailymotion、Rumble - 和 Quality Ceilings
专用视频主机是提取质量达到顶峰的地方,因为这些平台以专业比特率而不是社交平台妥协来提供第一代编码。
Vimeo 是旗舰产品:播放器配置在直接 CDN URL 上公开高达 1080p 的渐进式 MP4(专业级源为 4K),选项卡内提取处理定义平台的情况 - 课程平台和代理网站上的私有和域限制嵌入,其中您的浏览器选项卡是服务器端工具无法模拟的白名单上下文。仅 HLS 配置会进行分段和再复用处理。
Dailymotion 公开了一个播放器元数据 API,可返回高达 1080p 的 MP4 演绎版和 HLS 清单;提取读取播放器的元数据,显式对表示进行排序(自动质量默认值不是最大值),并获取顶级 MP4。它是该系列中最不麻烦的平台 - 稳定的 API、稳定的 DOM、长寿命的适配器。
Rumble 与其嵌入 API 一起提供直接 MP4 CDN 流,并在页面中提供 JSON-LD 视频元数据,使解析变得简单;内容偏向 720-1080p,比特率较高,平台的稳定性使其成为捆绑包中最可靠的下载目标。
无处不在的质量上限诚实值得在这里重申,因为视频主机用户注意到:提取捕获了平台存储的内容。如果视频的最佳呈现为 720p,则文件为 720p;没有任何工具能够超越来源,并且任何声称都是升级的工具。主机与社交平台的区别在于它们的上限很高并且编码很仔细 - 这就是为什么主机三个在捆绑包的输出中产生最大、最干净的文件。
在这三者中,交互模型都没有改变:播放器上的按钮、频道和展示上的批处理、音频很重要的 MP3。而且维护负担(多平台覆盖的实际成本)在这一层是最低的,因为这些平台变化最少。
5. 批处理、MP3 和隐私:在任何地方都相同的功能
每个平台的部分涵盖了不同之处;这一章涵盖了未涵盖的内容,因为共享功能是整合到一个工具上的原因。
批量下载器是跨所有十二个平台的一个系统。在配置文件、看板、时间轴、频道或创建者提要上触发它,队列管理器会遍历平台的数据层(不是可见的 DOM,它只保存已安装的项目),将每个检测到的视频与分辨率元数据进行排队,并以精心设计的节奏进行处理 - 测量请求时间、回退重试、进度模式中的每个项目状态以及无重复恢复。节奏是一项功能,而不是延迟:机枪请求模式是会话标记的内容,保护会话的工具正在保护您在该平台上执行的所有其他操作。
MP3 提取是第二个跨平台常数。音频基本流以源比特率从视频中解复用 - AAC 输出为 AAC 派生的 MP3,没有有损的第二次转码 - 这同样为播客层 Patreon 成员、Substack 音频帖子订阅者、Reels 趋势声音猎人和采访剪辑档案管理员提供服务。当平台提供原生分离的音频(Reddit)时,复用器通过合并来处理该交易的立体声部分;如果音频仅存在于视频中(Instagram、TikTok),则解复用器会将其提取出来。
隐私架构是第三个常数和信任基础:没有第三方服务器接触任何下载;首选项和历史记录位于您设备上的 chrome.storage.local 中;没有分析 SDK、没有广告网络、没有遥测 ping;您的浏览器使用会话 Cookie 来满足您的请求,而不会在任何地方读取、复制或传输。对于专业人士(记者、研究人员、诉讼支持人员)来说,架构是可以用于敏感材料的工具和不能用于敏感材料的工具之间的区别。
诚实的结束语:没有任何工具可以在没有维护的情况下幸存于模式更改,并且十二平台适配器集需要在平台移动时发布更新。共享核心架构所购买的是,对提取核心的一次更新可以立即修复每个平台 - 这就是使用一种工具而不是用代码编写的十二种工具的全部论点。