pywidevine命令行接口详解:license、test、migrate等命令实战

pywidevine命令行接口详解:license、test、migrate等命令实战

pywidevine命令行接口详解:license、test、migrate等命令实战

【免费下载链接】pywidevinePython implementation of Google's Widevine DRM CDM (Content Decryption Module)项目地址: https://gitcode.com/gh_mirrors/py/pywidevine

pywidevine是一个Python实现的Google Widevine DRM CDM(内容解密模块)工具,通过命令行接口提供了license请求、设备测试、设备创建与迁移等核心功能。本文将详细介绍其命令行工具的使用方法,帮助用户快速掌握Widevine DRM相关操作。

安装与基础准备

环境要求

  • Python 3.8+
  • 依赖库:click、requests、pyyaml等

安装步骤

git clone https://gitcode.com/gh_mirrors/py/pywidevine cd pywidevine pip install .

安装完成后,可通过以下命令验证安装是否成功:

pywidevine --version

核心命令实战指南

1. license命令:获取内容解密密钥

功能:向指定的Widevine许可证服务器发送请求,获取内容解密密钥。

基本语法

pywidevine license <device_path> <pssh> <server> [options]

参数说明

  • <device_path>: Widevine设备文件(.wvd)路径
  • <pssh>: 内容的PSSH值
  • <server>: 许可证服务器URL
  • --type: 许可证类型(STREAMING/OFFLINE,默认STREAMING)
  • --privacy: 启用隐私模式

示例

pywidevine license my_device.wvd "AAAAW3Bzc2g..." https://license-server.example.com --type STREAMING

2. test命令:验证设备功能

功能:使用Bitmovin的示例内容测试设备是否正常工作,无需手动指定PSSH和许可证服务器。

基本语法

pywidevine test <device_path> [options]

参数说明

  • <device_path>: Widevine设备文件(.wvd)路径
  • --privacy: 启用隐私模式

示例

pywidevine test my_device.wvd --privacy

3. create_device命令:创建设备文件

功能:从RSA私钥和客户端ID Blob创建Widevine设备文件(.wvd)。

基本语法

pywidevine create_device --type <type> --level <level> --key <key_path> --client_id <client_id_path> [options]

参数说明

  • --type: 设备类型(如ANDROID、CHROME等)
  • --level: 安全级别(1-3)
  • --key: RSA私钥文件路径(PEM或DER格式)
  • --client_id: 客户端ID Blob文件路径
  • --vmp: VMP Blob文件路径(可选)
  • --output: 输出文件路径(可选)

示例

pywidevine create_device --type ANDROID --level 1 --key private_key.pem --client_id client_id.bin --output my_android_device.wvd

4. export_device命令:导出设备信息

功能:将Widevine设备文件(.wvd)导出为RSA私钥、客户端ID Blob等原始组件。

基本语法

pywidevine export_device <wvd_path> [--out_dir <out_dir>]

参数说明

  • <wvd_path>: Widevine设备文件(.wvd)路径
  • --out_dir: 输出目录(默认当前目录)

示例

pywidevine export_device my_device.wvd --out_dir exported_device

5. migrate命令:升级设备文件格式

功能:将旧版本的Widevine设备文件(.wvd)升级到最新格式。

基本语法

pywidevine migrate <path>

参数说明

  • <path>: 单个设备文件路径或包含多个设备文件的目录路径

示例

pywidevine migrate old_devices/

6. serve命令:远程CDN服务

功能:启动一个HTTP服务器,远程提供CDM和Widevine设备服务。

基本语法

pywidevine serve <config_path> [--host <host>] [--port <port>]

参数说明

  • <config_path>: 配置文件路径(参考serve.example.yml)
  • --host: 服务器主机(默认127.0.0.1)
  • --port: 服务器端口(默认8786)

示例

pywidevine serve serve_config.yml --host 0.0.0.0 --port 8080

常见问题解决

设备文件相关

  • Q: 如何获取有效的Widevine设备文件?
    A: 可以通过合法途径从支持Widevine的设备中提取,或使用create_device命令创建。

许可证请求失败

  • Q: 许可证请求返回403错误怎么办?
    A: 检查设备安全性级别是否符合服务器要求,或尝试启用--privacy模式。

命令使用帮助

所有命令都支持--help选项获取详细帮助:

pywidevine license --help

总结

pywidevine命令行工具提供了从设备管理到许可证获取的完整功能链,无论是开发测试还是实际应用都非常实用。通过本文介绍的license、test、create_device等核心命令,您可以轻松处理Widevine DRM相关任务。如需更深入的功能,可参考项目源码pywidevine/main.py或官方文档。

【免费下载链接】pywidevinePython implementation of Google's Widevine DRM CDM (Content Decryption Module)项目地址: https://gitcode.com/gh_mirrors/py/pywidevine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考