DRM视频解密怎么做?用 video_decrypter 把加密流媒体 5 步存成本地视频
【免费下载链接】video_decrypterDecrypt video from a streaming site with MPEG-DASH Widevine DRM encryption.项目地址: https://gitcode.com/gh_mirrors/vi/video_decrypter
video_decrypter 是一个专注DRM 视频解密的开源项目,专门处理采用 MPEG-DASH + Widevine DRM 加密的流媒体视频。它把"提取播放信息 → 下载分片 → 解密数据 → 合并成片"整条链路串在一起,让你不必逐个工具来回折腾,一次就能拿到可以离线观看的视频文件。
先看结果:从"只能在线看"到"存进硬盘"
想象一下:你在某个流媒体网站上付费订阅了一部剧,网站只允许在线播放,下载按钮被锁得死死的。而用 video_decrypter,你能在本地得到完整的 MP4 文件,画质音质与在线版一致,没网也能看。
整个流程走完,你的文件夹里会出现这些东西:
- manifest.mpd:视频的播放清单,记录了视频有哪些清晰度档位
- license_key.txt:解密授权信息,是还原加密数据的"钥匙"
- url_fragments.txt:所有分片文件的下载地址
- 最终成品:合并好的
.mp4视频文件
对普通用户来说,你关心的只是最后那个 MP4——而它确实能被稳妥地拿到手。
video_decrypter 的四大核心环节拆解
这个项目不是一个孤立的工具,而是一套完整的处理流水线。它把复杂的 DRM 解密流程拆成了四个环节,每个环节负责一件事,环环相扣:
环节一:自动抓取播放清单与授权信息
对应脚本1. script_liens.py。你只需要把剧集页面地址写进urls_episodes.txt,脚本就会自动登录站点、解析页面,抓出 MPEG-DASH 的.mpd清单、Widevine 授权地址和全部音视频分片 URL。
你不需要理解什么是"清单""分片",把它想成点外卖就行——脚本帮你把菜单、餐具和每道菜的位置全部找齐,你只管等着吃。
环节二:多线程高速下载音视频分片
对应脚本2. script_download.py。视频被切成了成百上千个小分片,这个脚本用最多 50 个线程并发下载,音频、视频分开存文件,速度比单线程一个个拉快得多。
环节三:调用 Widevine 解密引擎还原数据
对应脚本3. script_decrypt.py,也是整个项目技术含量最高的部分。它调用编译好的widevine_decrypter可执行文件,读取授权信息和.mpd清单,借助基于 xbmc / inputstream.adaptive 的解密框架,把加密的音视频轨道逐段还原成明文数据。
环节四:音视频合并输出最终文件
对应脚本4. script_video.py。解密完成后,脚本会先校验数据完整性(大小不一致直接报错,防止坏文件糊弄你),再用 ffmpeg 把音频轨和视频轨无损合并,输出标准.mp4。
四个环节的能力对照一目了然:
| 环节 | 对应脚本 | 解决的问题 | 你拿到的东西 |
|---|---|---|---|
| 抓取信息 | 1. script_liens.py | 不知道从哪下手 | 清单 + 授权 + 分片地址 |
| 下载分片 | 2. script_download.py | 逐个下载太慢 | 完整的音/视频数据文件 |
| 解密数据 | 3. script_decrypt.py | 数据是加密的,看不了 | 可播放的明文轨道 |
| 合并成片 | 4. script_video.py | 音画分离,没法直接看 | 最终.mp4成品 |
video_decrypter 的获取与编译配置方法
整个项目面向 Windows 环境,编译前需要两样基础工具:CMake和MinGW-w64(注意选择 POSIX 线程版本)。装好后把 MinGW 的 bin 目录加进系统 PATH,然后开始搭建。
第一步:获取项目源码
git clone https://gitcode.com/gh_mirrors/vi/video_decrypter第二步:进入源码目录并编译解密器
cd video_decrypter/widevine_decrypter/src mkdir build cd build cmake .. -G "MinGW Makefiles" make编译成功后,build目录里会生成widevine_decrypter.exe,这就是负责解密的核心程序。
第三步:把剧集地址填进配置文件
打开python_scripts/urls_episodes.txt,把要处理的剧集页面地址逐行写进去,保存。
第四步:依次运行四个脚本
python "1. script_liens.py" python "2. script_download.py" python "3. script_decrypt.py" python "4. script_video.py"每一步跑完都有明确的中间产物,哪一步出问题,看对应的输出就能定位。
video_decrypter 的典型使用场景
- 追剧党建立个人收藏:平台可能随时下架某部剧,用 video_decrypter 把喜欢的剧集保存到本地,等于给自己建了一个永不失效的片库,回看、投屏都自由。
- 在线课程学习者:不少付费课程用了 Widevine DRM,网页上只能一节节看。把课程视频解密下载后,通勤路上、断网环境里都能反复学习,做笔记也方便。
- 内容备份与离线观看:出差坐飞机、去信号差的偏远地区,想看电影怎么办?提前用工具把视频存到本地,随时打开就能看,不再受网络状况摆布。
- 技术爱好者研究流媒体原理:项目源码里打包了 inputstream.adaptive、libbento4、expat、mpegts 等一批流媒体底层库,想弄懂 DASH 清单结构、Widevine 授权流程的人,可以直接对着代码学。
常见问题解答(FAQ)
问:编译时提示找不到 cmake 或 mingw 命令怎么办?答:说明工具没装好或没加入 PATH。重新安装 CMake 和 MinGW-w64(POSIX 版),然后把 MinGW 的bin目录路径追加到系统环境变量 PATH 里,重启命令行窗口再试。
问:这个工具能解密所有视频网站吗?答:不能。它针对的是采用MPEG-DASH + Widevine DRM加密方式的站点,内置的抓取脚本也针对特定站点结构编写。其他 DRM 方案(如 FairPlay、PlayReady)或非 DASH 架构的站点不在支持范围内。
问:解密后的文件为什么还要用 ffmpeg 合并?答:因为视频画面和音频在流媒体传输中是两条独立轨道,解密后也是分开的文件。ffmpeg 的作用是把它们合成一个音画同步的标准 MP4,你才能正常播放。
问:脚本 4 提示"size mismatch"是什么问题?答:说明解密前后数据量不一致,通常是解密环节出了问题,比如授权信息过期或清单解析异常。可以清空tmp临时目录,从第一步重新跑一遍。
问:使用这个工具需要注意什么?答:请只在你有权保存内容的范围内使用——例如自己订阅、拥有访问权限的内容,并遵守平台条款与当地法律法规,不要用于未经授权的分发。
项目优势与亮点
- 技术成熟可靠:底层脱胎于 xbmc 和 inputstream.adaptive,这两套框架在 Kodi 生态中久经考验,解密引擎稳定性有保障。
- 流程自动串联:四个脚本把抓取、下载、解密、合并串成流水线,你只需维护一个剧集地址文件,中间环节基本不用手动干预。
- 并发下载提速:最多 50 线程的并行下载,处理整季剧集时能省下大量等待时间。
- 完整性校验:合并前会核对数据大小,避免输出残缺文件,细节上很贴心。
- 开源可研究:完整源码开放,从 Python 脚本到 C++ 解密器全部透明,想定制、想学习、想改进都可以。
结尾:现在就试试 video_decrypter
只要你的机器能跑 CMake 和 Python,从拉取源码到拿到第一份本地视频,整个流程并不复杂。与其让喜欢的剧集随平台下架而消失,不如动手把内容留在自己的硬盘里。如果你在研究流媒体解密,也可以从源码里学到大量 DASH 与 Widevine 的实现细节。
最后再提醒一句:请务必在合规范围内使用,只保存你拥有观看权限的内容。祝你一次成功,顺利存下想要的那部片。
延伸阅读:解密器核心源码:widevine_decrypter/src/main.cpp|Python 处理脚本:python_scripts/|项目说明与编译指引:README.md
【免费下载链接】video_decrypterDecrypt video from a streaming site with MPEG-DASH Widevine DRM encryption.项目地址: https://gitcode.com/gh_mirrors/vi/video_decrypter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考