multi-platform-media-monitor 是一个跨平台的直播与主页/作品监控客户端,支持 macOS、Windows 和 Linux 系统。提供直观的图形界面,方便配置和管理直播监控、录制、上传等功能。
- ✅ 图形界面 - 直观易用的配置界面,基于 PyQt6
- ✅ 自动监控 - 实时监控录制目录,自动检测文件完成
- ✅ 自动上传 - 录制完成后自动上传到 AWS S3
- ✅ 系统托盘 - 最小化到系统托盘,不占用任务栏
- ✅ 开机自启 - 支持开机自动启动(跨平台)
- ✅ 日志查看 - 实时查看监控日志,支持日志轮转
- ✅ 配置管理 - 图形化配置管理,支持实时保存
- ✅ 帮助文档 - 内置使用指南和常见问题
- ✅ 多平台支持 - 支持抖音、快手、小红书、微信视频号
- ✅ 账号配置 - 每个平台独立配置账号ID、Cookie、主页链接、直播间链接
- ✅ 自动录制 - 开播自动开始录制,关播自动停止
- ✅ 录制状态 - 实时显示正在录制的直播间数量和详细信息
- ✅ 自动转码 - 录制完成后自动转码为MP4格式(可选)
- ✅ 通知功能 - 开播/关播时发送HTTP通知
- ✅ 日志统计 - 定期在日志中输出录制状态统计
- ✅ 分段录制 - 支持长直播分段录制(可配置)
- ✅ 多账号监控 - 支持同时监控多个账号主页
- ✅ 实时状态展示 - 显示昵称、粉丝数、关注数等账号信息
- ✅ 自动刷新 - 定期更新账号状态
- ✅ 手动刷新 - 支持手动点击刷新按钮
- ✅ 作品汇总统计 - 按用户维度汇总作品数量
- ✅ 最新作品预览 - 展示每个账号的最新作品概览
- ✅ 更新追踪 - 便于快速了解内容更新情况
- ✅ 许可证管理 - 支持硬件指纹绑定许可证验证
- ✅ 本地认证 - 支持本地用户认证(用户名/密码)
- ✅ LDAP 认证 - 支持企业级 LDAP 认证
- ✅ 配置加密 - S3 等敏感配置支持加密存储
应用采用模块化设计,核心功能与 UI 分离:
- 功能:统一管理应用配置
- 支持格式:JSON、YAML、加密配置
- 配置分层:
- 应用配置:
config.json(平台设置、上传设置等) - 爬虫配置:
config/*.yaml(各平台爬虫配置) - 加密配置:
config.encrypted(S3 等敏感信息)
- 应用配置:
- 功能:监控录制目录,检测文件完成
- 技术:基于
watchdog库实现文件系统监控 - 特性:
- 文件大小稳定性检测
- 自动上传触发
- 上传进度跟踪
- 功能:管理直播间的录制任务
- 特性:
- 定时检测直播间状态
- 开播自动开始录制
- 关播自动停止录制
- 录制状态实时更新
- 功能:监控账号主页和作品
- 特性:
- 主页信息抓取
- 作品列表抓取
- 状态实时更新
- 功能:用户认证管理
- 支持方式:
- 本地认证:用户名/密码
- LDAP 认证:企业级认证
- 功能:许可证验证和管理
- 特性:
- 硬件指纹绑定
- 许可证激活
- 许可证验证
应用使用 app/utils/path_utils.py 统一处理路径,自动区分开发环境和打包环境:
- 开发环境:从项目根目录读取文件
- 打包环境:
- macOS: 从
.app/Contents/Resources/读取资源 - Windows: 从
_MEIPASS临时目录读取(OneFile 模式) - Linux: 从
_internal/目录读取
- macOS: 从
- 配置文件:首次运行从打包资源复制到用户数据目录
- Windows:
%APPDATA%\LiveFileMonitor\ - macOS:
~/Library/Application Support/LiveFileMonitor/ - Linux:
~/.config/LiveFileMonitor/
- Windows:
- Python 3.11+
- 系统要求:
- macOS 10.14+
- Windows 10+
- Linux (Ubuntu 20.04+, CentOS 7+)
pip install -r requirements.txtpython run_app.py或直接运行:
python app/main.pyS3 配置通过加密文件管理,确保安全性:
python scripts/encrypt_config.py按照提示输入:
- AWS Access Key ID
- AWS Secret Access Key
- S3 Bucket 名称
- S3 区域
- S3 前缀(可选)
配置会加密保存到 config/config.encrypted 和 config/config.password。
注意:
- S3 配置打包后为只读,确保安全性
- 如需修改,需要重新运行加密脚本并重新打包
如果需要启用认证功能:
python scripts/init_auth.py可以配置:
- 本地认证用户(用户名/密码)
- LDAP 认证配置
如果需要启用许可证验证:
python scripts/generate_license.py按照提示输入硬件指纹和许可证信息。
在"配置"标签页中,为每个平台配置:
平台选择:
- 勾选平台前的复选框即可启用
- 支持抖音、快手、小红书、微信视频号
配置项(根据平台不同,显示不同字段):
- 账号ID(可选):用于标识账号
- Cookie(可选):用于需要登录的直播间
- 抖音/快手:支持 Cookie 配置
- 小红书:不需要 Cookie
- 主页链接(可选):用于监控账号主页
- 支持添加/删除多个主页链接
- 保存到
config.json的platforms.{platform}.home_urls
- 直播间链接(必需):用于录制直播
- 支持添加/删除多个直播间链接
- 保存到
config/URL_config.ini - 格式:
URL,主播: 主播名或URL - 小红书:无需在此填写(由采集与共享内存驱动)
录制路径:
- 自动从直播监控配置获取
- 路径位置:
live_recording.recording.save_path - 默认:
~/Downloads/LiveFileMonitor
在"配置"标签页的"上传设置"区域:
- 文件稳定时间:文件大小保持不变的时长(秒),用于判断录制完成
- 最大重试次数:上传失败时的重试次数
- 上传后删除本地文件:是否在上传成功后删除本地文件
在"配置"标签页的"通知设置"区域:
- 启用通知:是否启用上传完成通知
- 通知URL:接收通知的服务器地址
- 超时时间:请求超时时间(秒)
- 最大重试次数:通知发送失败时的重试次数(1-10次)
- 点击"保存配置"按钮
- 配置验证通过后保存
- 主页链接保存到
config.json - 直播间链接保存到
config/URL_config.ini - 配置实时生效(S3 配置不受影响)
- 点击主窗口的"启动监控"按钮
- 应用会自动运行环境初始化脚本
- 然后启动监控服务
- 直播录制服务会自动开始检测直播间状态
在主窗口顶部的"📹 录制状态"区域可以实时查看:
- 统计信息:正在录制的直播间数量
- 详细信息:每个直播间的详细信息
- 🎬 主播名
- ⏱️ 录制时长(实时更新)
- 🔗 直播间URL(简短显示)
状态每2秒自动更新一次。
在"👤 主页监控状态"标签页,可以查看:
- 统计信息:正在监控的主页数量
- 详细信息:
- 昵称、用户ID
- 粉丝数、关注数(如平台支持)
- 最近一次抓取时间
- 主页短链接标识
- 支持手动点击"🔄 刷新"按钮立即更新状态
在"📹 作品监控状态"标签页,可以查看:
- 统计信息:
- 正在监控的用户数
- 汇总的作品总数
- 详细信息:
- 用户ID、主页短链接标识
- 最近一次抓取时间
- 作品总数
- 每个用户最新的若干条作品标题预览
- 支持手动点击"🔄 刷新"按钮立即更新状态
- 双击托盘图标:显示/隐藏窗口
- 右键菜单:可以退出应用
- 关闭窗口:会最小化到托盘(不会退出)
在"设置"菜单中可以选择是否启用开机自启功能。启用后,应用会在系统启动时自动运行。
在"日志"标签页可以实时查看监控服务的日志输出,包括:
- 文件检测信息
- 上传进度和结果
- 直播录制状态
- 录制数量统计(每60秒输出一次)
- 错误信息
日志文件位置:
- 开发环境:
logs/app.log - 打包环境:用户数据目录下的
logs/app.log
在"网络测试"标签页可以测试 S3 连接和上传速度:
- 点击"测试连接"按钮,快速验证 S3 配置是否正确
- 显示连接状态、延迟(毫秒)、区域和存储桶信息
- 如果连接失败,会显示详细的错误信息
- 选择测试文件大小(5MB/10MB/20MB/50MB)
- 点击"开始速度测试"按钮
- 实时查看上传进度和当前速度
- 测试完成后显示:
- 平均上传速度(MB/s 和 KB/s)
- 测试耗时
- 测试文件大小
注意事项:
- 上传速度测试会实际上传临时测试文件到 S3,测试后自动删除
- 测试文件上传到
s3_prefix/network_test/目录 - 测试可能产生少量 S3 存储费用(通常很小)
- 每5分钟(可配置)检查一次直播间状态
- 支持抖音、快手、小红书、视频号等平台
- 检测到开播后自动开始录制
- 检测到开播后自动开始录制
- 发送开播通知(如果配置)
- 使用 FFmpeg 录制直播流
- 支持分段录制(可配置分段时长)
- 自动转码为 MP4 格式(可选)
- 录制完成后自动停止
- 检测到关播后停止录制
- 发送关播通知(如果配置)
- 自动转码(如果启用)
在日志文件中会定期(每60秒)输出录制状态:
============================================================
正在录制 3 个直播:
• 主播名1 [直播间ID] - 录制时长: 0:15:30
• 主播名2 [直播间ID] - 录制时长: 0:08:45
• 主播名3 [直播间ID] - 录制时长: 0:22:10
============================================================
- 确认录制路径配置正确(自动从直播监控配置获取)
- 确认文件扩展名在支持列表中(.mkv, .mp4, .flv, .mov)
- 检查文件权限
- 使用"网络测试"功能测试 S3 连接和上传速度
- 检查 S3 配置是否正确(通过
scripts/encrypt_config.py配置) - 检查网络连接
- 查看日志文件获取详细错误信息
- 增加文件稳定时间的值(如果录制文件很大)
- 检查网络稳定性
- 检查直播间 URL 是否正确
- 检查 Cookie 是否有效(如果需要登录)
- 查看日志文件获取详细错误信息
- 检查 FFmpeg 是否已安装(打包版本已包含)
- 检查网络连接
- 检查保存路径是否有写入权限
- 查看日志文件获取详细错误信息
- 确认直播录制服务已启动
- 确认有正在录制的直播间
- 检查录制进程是否正常运行
- 检查认证配置是否正确
- 检查用户名和密码是否正确
- 查看日志文件获取详细错误信息
- 检查 LDAP 配置是否正确
- 检查网络连接
- 检查 LDAP 服务器是否可访问
- 检查许可证文件是否存在
- 检查硬件指纹是否匹配
- 联系技术支持获取新的许可证
- S3 配置通过加密文件管理,确保安全性
- 加密配置文件打包后为只读,不可修改
- 如需修改,需要重新运行加密脚本并重新打包
- 支持硬件指纹绑定,防止许可证被复制
- 许可证文件存储在用户数据目录
- 许可证验证失败时,应用会提示激活
- 支持本地认证和 LDAP 认证
- 密码使用加密存储
- 认证失败会记录日志
详细打包说明请参考 BUILD.md
打包后的可执行程序名称统一为:
- Windows/Linux:
multi-platform-media-monitor - macOS:
multi-platform-media-monitor.app
如有问题,请查看日志文件或联系技术支持:
- 联系方式:微信号: Lisir-Say-Hi
- ✅ 基础功能实现
- ✅ 多平台直播监控录制
- ✅ 主页和作品监控
- ✅ 自动上传到 S3
- ✅ 许可证和认证管理
- ✅ 跨平台支持
