Shaka打包器MCP服务器
 ](https://www.python.org/downloads/) 
⚠️ 实验状态免责声明 该项目处于早期alpha阶段,具有高度的实验性。不建议用于生产。也有可能 凌乱! 当前限制: - 你可能会遇到不一致的行为 - 高级功能(包装、转换等)仍在积极开发中 - Docker和主机环境之间的路径转换可能需要手动配置 - 预计频繁的突破性变化和潜在的不稳定性 请报告您遇到的任何问题,以帮助改进项目。
](https://mseep.ai/app/coderjun-shaka-packager-mcp-server) 
集成了MCP(模型上下文协议)的服务器 Shaka包装机 Claude AI应用程序用于视频转码、打包和分析。
此服务器与 文件系统MCP服务器 使Claude Desktop能够访问和处理计算机上的视频文件,使Claude成为媒体处理任务的强大助手。
特性
- 视频分析:分析视频文件以提取详细的流信息、编解码器、比特率等
- 媒体包装:将视频转换为HLS和DASH格式的流媒体,支持VOD和直播
- 高级选项:
- 应用DRM加密(Widevine、PlayReady、FairPlay) - 配置广告插入标记 - 转换格式(MP4、TS等)
- 智能路径处理:自动转换Docker和主机环境之间的路径
- 稳健的错误管理:提供有意义的错误分析和解决建议
- 命令帮助:帮助正确格式化Shaka Packager命令以获得最佳结果
- 交互式文档:内置帮助和示例,指导用户完成复杂操作
- 详细输出:所有操作的综合摘要和执行细节
先决条件
- Python 3.10或更高版本
- Shaka Packager已安装并在您的PATH中可用
- - 或者从源代码构建 这些说明
- MCP兼容客户端(如Claude Desktop)
安装
使用pip或uv(即将推出)
使用pip安装软件包:
pip install shaka-packager-mcp或者使用紫外线:
uv pip install shaka-packager-mcp来源(推荐)
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
pip install -e .或者使用紫外线:
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
uv pip install -e .Claude桌面集成
由于Claude Desktop不直接支持上传视频文件,我们将使用双服务器方法:
- 简化 文件系统MCP服务器 访问计算机上的视频文件
- 这 Shaka打包器MCP服务器 分析和处理这些视频
步骤1:设置MCP文件系统服务器
使用官方的MCP文件系统服务器允许Claude访问您的视频文件:
- 使用Docker安装官方文件系统服务器:
docker pull mcp/filesystem- 或者,您可以按照中的说明从源代码构建它 文件系统MCP服务器存储库
步骤2:查找配置文件
找到您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
如果文件不存在,请创建它。
步骤3:将两台服务器都添加到配置中
添加以下配置,确保使用绝对路径:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount", "type=bind,src=/PATH/TO/VIDEOS/DIRECTORY,dst=/projects/video-drop",
"mcp/filesystem",
"/projects"
]
},
"shaka-packager": {
"command": "/ABSOLUTE/PATH/TO/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"/ABSOLUTE/PATH/TO/shaka_packager_mcp.py"
],
"env": {
"VIDEO_PATH": "/PATH/TO/VIDEOS/DIRECTORY",
"SHAKA_PACKAGER_PATH": "/PATH/TO/PACKAGER"
}
}
}
}替换:
/PATH/TO/VIDEOS/DIRECTORY包含视频文件所在目录的路径/ABSOLUTE/PATH/TO/uv包含uv可执行文件的完整路径/ABSOLUTE/PATH/TO/shaka_packager_mcp.py包含脚本文件的完整路径/PATH/TO/PACKAGER包含Shaka Packager可执行文件的完整路径
例如:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount", "type=bind,src=/Users/username/Videos,dst=/projects/video-drop",
"mcp/filesystem",
"/projects"
]
},
"shaka-packager": {
"command": "/Users/username/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"/Users/username/Development/shaka-packager-mcp/shaka_packager_mcp.py"
],
"env": {
"VIDEO_PATH": "/Users/username/Videos",
"SHAKA_PACKAGER_PATH": "/Users/username/.shaka/packager"
}
}
}
}步骤4:重新启动克劳德桌面
编辑配置文件后,重新启动Claude Desktop以应用更改。
如何使用双服务器方法
- 首先,使用简化的文件系统服务器浏览视频文件:
- 让克劳德“列出我视频目录中的文件” - 导航到要分析或处理的视频文件
- 找到视频文件后,使用Shaka Packager工具使用其路径:
- 分析:“请分析此视频:/Users/username/Videos/example.mp4” - 处理:“请将此视频打包为HLS:/Users/username/Videos/example.mp4”
故障排除
如果您遇到任何问题:
- 确保两台服务器都正确配置了绝对路径
- 确认Shaka Packager已安装且可访问
- 确保为文件系统服务器指定的目录存在并且包含视频
- 在以下位置检查Claude Desktop日志中的错误:
- macOS: ~/Library/Logs/Claude/mcp*.log - 窗户: %APPDATA%\Claude\logs\mcp*.log
用法
一旦文件系统MCP服务器和Shaka Packager MCP服务器都在Claude Desktop中运行:
- 访问您的视频文件:
Please show me the files in my Videos directory- 导航到您的视频文件:
Please show me the files in the Movies subdirectory- 复制文件://视频的URI路径 你想处理
- 使用Shaka Packager工具和文件路径:
Please analyze this video: file:///Users/username/Videos/my_video.mp4或
Please package this video for HLS and DASH streaming: file:///Users/username/Videos/my_video.mp4- 服务器将执行适当的Shaka Packager命令,并提供结果的详细摘要
如果您知道视频文件的确切位置,也可以使用直接文件路径:
Please analyze this video: /Users/username/Videos/my_video.mp4工具
服务器提供以下工具:
- 分析视频:检查视频文件,并提供具有智能错误处理的详细流信息
- run_shaka_打包器:使用自定义参数和正确的路径处理执行任何Shaka Packager命令
- get_shaka_options:检索可用的命令选项和版本信息
- get_shaka_文档:提供使用Shaka Packager的全面文档和示例
提示
服务器包括以下提示模板:
- MP4到TS转换
- HLS和DASH中的VOD打包
- 直播打包
- 内容加密
- 广告插入准备
- 视频分析
- 命令格式提醒
- 错误解释指南
配置
可以使用环境变量配置服务器:
SHAKA_PACKAGER_PATH:Shaka Packager可执行文件的路径(强烈推荐用于Claude Desktop)VIDEO_PATH:本地视频目录的路径(用于翻译Docker和主机之间的路径)DOCKER_PATH:Docker容器挂载路径(默认:“/projects/video drop”)TEMP_DIR:文件上传的自定义临时目录LOG_LEVEL:日志记录级别(调试、信息、警告、错误、严重)COMMAND_TIMEOUT:Shaka Packager命令的超时时间(秒)(默认值:300)
您可以在以下位置进行设置:
- 您的Claude Desktop配置文件(首选
SHAKA_PACKAGER_PATH和VIDEO_PATH) - 您的环境变量
- A.
.env与脚本位于同一目录中的文件
示例 .env 文件:
SHAKA_PACKAGER_PATH=/usr/local/bin/packager
VIDEO_PATH=/Users/yourusername/Videos
LOG_LEVEL=DEBUG发展
建立开发环境
# Clone the repository
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
# Install development dependencies with pip
pip install -e ".[dev]"
# Or with uv
uv pip install -e ".[dev]"运行测试
pytest代码格式化
black .
isort .理解代码结构
Shaka Packager MCP服务器的主要组件包括:
shaka_packager_mcp.py:使用MCP工具和提示实现主服务器tests/:用于验证功能的测试套件
此服务器旨在与官方MCP文件系统服务器配合使用,以访问视频文件。
实施中的关键特征
- 稳健的路径处理:自动转换Docker和主机环境之间的路径
- 智能错误处理:提供有意义的错误消息和建议
- 命令语法辅助:帮助正确格式化Shaka Packager命令
- 文档集成:提供全面的文档和示例
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
获取帮助
请随意使用AI代码副驾驶,作者确实如此。
如果您遇到任何问题或有疑问:
- 查看本自述中的故障排除部分
- 查看 Shaka包装商文档
- 使用
get_shaka_documentationClaude中的交互式帮助工具 - 打开一个问题 在GitHub上
致谢
- Shaka包装机 强大的视频处理能力
- 模型上下文协议(MCP) 通信框架
- 克劳德 AI助手功能
- Anthropic 用于开发Claude和MCP标准
