Skip to content

SourceSeeker-SameOrigin/MultiMediaCrawler

Repository files navigation

multi-platform-media-monitor - 应用使用指南

📋 简介

multi-platform-media-monitor 是一个跨平台的直播与主页/作品监控客户端,支持 macOS、Windows 和 Linux 系统。提供直观的图形界面,方便配置和管理直播监控、录制、上传等功能。

✨ 功能特性

基础功能

  • 图形界面 - 直观易用的配置界面,基于 PyQt6
  • 自动监控 - 实时监控录制目录,自动检测文件完成
  • 自动上传 - 录制完成后自动上传到 AWS S3
  • 系统托盘 - 最小化到系统托盘,不占用任务栏
  • 开机自启 - 支持开机自动启动(跨平台)
  • 日志查看 - 实时查看监控日志,支持日志轮转
  • 配置管理 - 图形化配置管理,支持实时保存
  • 帮助文档 - 内置使用指南和常见问题

直播监控录制

  • 多平台支持 - 支持抖音、快手、小红书、微信视频号
  • 账号配置 - 每个平台独立配置账号ID、Cookie、主页链接、直播间链接
  • 自动录制 - 开播自动开始录制,关播自动停止
  • 录制状态 - 实时显示正在录制的直播间数量和详细信息
  • 自动转码 - 录制完成后自动转码为MP4格式(可选)
  • 通知功能 - 开播/关播时发送HTTP通知
  • 日志统计 - 定期在日志中输出录制状态统计
  • 分段录制 - 支持长直播分段录制(可配置)

主页监控

  • 多账号监控 - 支持同时监控多个账号主页
  • 实时状态展示 - 显示昵称、粉丝数、关注数等账号信息
  • 自动刷新 - 定期更新账号状态
  • 手动刷新 - 支持手动点击刷新按钮

作品监控

  • 作品汇总统计 - 按用户维度汇总作品数量
  • 最新作品预览 - 展示每个账号的最新作品概览
  • 更新追踪 - 便于快速了解内容更新情况

安全与认证

  • 许可证管理 - 支持硬件指纹绑定许可证验证
  • 本地认证 - 支持本地用户认证(用户名/密码)
  • LDAP 认证 - 支持企业级 LDAP 认证
  • 配置加密 - S3 等敏感配置支持加密存储

🏗️ 应用架构

架构概览

应用采用模块化设计,核心功能与 UI 分离:


architecture.png

核心模块说明

1. 配置管理 (app/core/config_manager.py)

  • 功能:统一管理应用配置
  • 支持格式:JSON、YAML、加密配置
  • 配置分层
    • 应用配置:config.json(平台设置、上传设置等)
    • 爬虫配置:config/*.yaml(各平台爬虫配置)
    • 加密配置:config.encrypted(S3 等敏感信息)

2. 监控服务 (app/core/monitor_service.py)

  • 功能:监控录制目录,检测文件完成
  • 技术:基于 watchdog 库实现文件系统监控
  • 特性
    • 文件大小稳定性检测
    • 自动上传触发
    • 上传进度跟踪

3. 直播录制服务 (app/core/live_recorder_service.py)

  • 功能:管理直播间的录制任务
  • 特性
    • 定时检测直播间状态
    • 开播自动开始录制
    • 关播自动停止录制
    • 录制状态实时更新

4. 网页爬虫监控服务 (app/core/web_crawler_monitor_service.py)

  • 功能:监控账号主页和作品
  • 特性
    • 主页信息抓取
    • 作品列表抓取
    • 状态实时更新

5. 认证管理 (app/core/auth_manager.py)

  • 功能:用户认证管理
  • 支持方式
    • 本地认证:用户名/密码
    • LDAP 认证:企业级认证

6. 许可证管理 (app/core/license_manager.py)

  • 功能:许可证验证和管理
  • 特性
    • 硬件指纹绑定
    • 许可证激活
    • 许可证验证

路径处理机制

应用使用 app/utils/path_utils.py 统一处理路径,自动区分开发环境和打包环境:

  • 开发环境:从项目根目录读取文件
  • 打包环境
    • macOS: 从 .app/Contents/Resources/ 读取资源
    • Windows: 从 _MEIPASS 临时目录读取(OneFile 模式)
    • Linux: 从 _internal/ 目录读取
  • 配置文件:首次运行从打包资源复制到用户数据目录
    • Windows: %APPDATA%\LiveFileMonitor\
    • macOS: ~/Library/Application Support/LiveFileMonitor/
    • Linux: ~/.config/LiveFileMonitor/

🚀 安装与运行

环境要求

  • Python 3.11+
  • 系统要求:
    • macOS 10.14+
    • Windows 10+
    • Linux (Ubuntu 20.04+, CentOS 7+)

安装依赖

pip install -r requirements.txt

运行应用

python run_app.py

或直接运行:

python app/main.py

📖 使用说明

首次配置

1. 配置 S3(必须先配置)

S3 配置通过加密文件管理,确保安全性:

python scripts/encrypt_config.py

按照提示输入:

  • AWS Access Key ID
  • AWS Secret Access Key
  • S3 Bucket 名称
  • S3 区域
  • S3 前缀(可选)

配置会加密保存到 config/config.encryptedconfig/config.password

注意

  • S3 配置打包后为只读,确保安全性
  • 如需修改,需要重新运行加密脚本并重新打包

2. 配置认证(可选)

如果需要启用认证功能:

python scripts/init_auth.py

可以配置:

  • 本地认证用户(用户名/密码)
  • LDAP 认证配置

3. 生成许可证(可选)

如果需要启用许可证验证:

python scripts/generate_license.py

按照提示输入硬件指纹和许可证信息。

应用内配置

1. 账号配置

在"配置"标签页中,为每个平台配置:

平台选择

  • 勾选平台前的复选框即可启用
  • 支持抖音、快手、小红书、微信视频号

配置项(根据平台不同,显示不同字段):

  • 账号ID(可选):用于标识账号
  • Cookie(可选):用于需要登录的直播间
    • 抖音/快手:支持 Cookie 配置
    • 小红书:不需要 Cookie
  • 主页链接(可选):用于监控账号主页
    • 支持添加/删除多个主页链接
    • 保存到 config.jsonplatforms.{platform}.home_urls
  • 直播间链接(必需):用于录制直播
    • 支持添加/删除多个直播间链接
    • 保存到 config/URL_config.ini
    • 格式:URL,主播: 主播名URL
    • 小红书:无需在此填写(由采集与共享内存驱动)

录制路径

  • 自动从直播监控配置获取
  • 路径位置:live_recording.recording.save_path
  • 默认:~/Downloads/LiveFileMonitor

2. 上传配置

在"配置"标签页的"上传设置"区域:

  • 文件稳定时间:文件大小保持不变的时长(秒),用于判断录制完成
  • 最大重试次数:上传失败时的重试次数
  • 上传后删除本地文件:是否在上传成功后删除本地文件

3. 通知配置

在"配置"标签页的"通知设置"区域:

  • 启用通知:是否启用上传完成通知
  • 通知URL:接收通知的服务器地址
  • 超时时间:请求超时时间(秒)
  • 最大重试次数:通知发送失败时的重试次数(1-10次)

4. 保存配置

  • 点击"保存配置"按钮
  • 配置验证通过后保存
  • 主页链接保存到 config.json
  • 直播间链接保存到 config/URL_config.ini
  • 配置实时生效(S3 配置不受影响)

启动监控

  1. 点击主窗口的"启动监控"按钮
  2. 应用会自动运行环境初始化脚本
  3. 然后启动监控服务
  4. 直播录制服务会自动开始检测直播间状态

查看状态

录制状态

在主窗口顶部的"📹 录制状态"区域可以实时查看:

  • 统计信息:正在录制的直播间数量
  • 详细信息:每个直播间的详细信息
    • 🎬 主播名
    • ⏱️ 录制时长(实时更新)
    • 🔗 直播间URL(简短显示)

状态每2秒自动更新一次。

主页监控状态

在"👤 主页监控状态"标签页,可以查看:

  • 统计信息:正在监控的主页数量
  • 详细信息
    • 昵称、用户ID
    • 粉丝数、关注数(如平台支持)
    • 最近一次抓取时间
    • 主页短链接标识
  • 支持手动点击"🔄 刷新"按钮立即更新状态

作品监控状态

在"📹 作品监控状态"标签页,可以查看:

  • 统计信息
    • 正在监控的用户数
    • 汇总的作品总数
  • 详细信息
    • 用户ID、主页短链接标识
    • 最近一次抓取时间
    • 作品总数
    • 每个用户最新的若干条作品标题预览
  • 支持手动点击"🔄 刷新"按钮立即更新状态

系统托盘

  • 双击托盘图标:显示/隐藏窗口
  • 右键菜单:可以退出应用
  • 关闭窗口:会最小化到托盘(不会退出)

开机自启

在"设置"菜单中可以选择是否启用开机自启功能。启用后,应用会在系统启动时自动运行。

日志查看

在"日志"标签页可以实时查看监控服务的日志输出,包括:

  • 文件检测信息
  • 上传进度和结果
  • 直播录制状态
  • 录制数量统计(每60秒输出一次)
  • 错误信息

日志文件位置:

  • 开发环境:logs/app.log
  • 打包环境:用户数据目录下的 logs/app.log

🔧 网络测试

在"网络测试"标签页可以测试 S3 连接和上传速度:

S3 连接测试

  • 点击"测试连接"按钮,快速验证 S3 配置是否正确
  • 显示连接状态、延迟(毫秒)、区域和存储桶信息
  • 如果连接失败,会显示详细的错误信息

上传速度测试

  • 选择测试文件大小(5MB/10MB/20MB/50MB)
  • 点击"开始速度测试"按钮
  • 实时查看上传进度和当前速度
  • 测试完成后显示:
    • 平均上传速度(MB/s 和 KB/s)
    • 测试耗时
    • 测试文件大小

注意事项

  • 上传速度测试会实际上传临时测试文件到 S3,测试后自动删除
  • 测试文件上传到 s3_prefix/network_test/ 目录
  • 测试可能产生少量 S3 存储费用(通常很小)

📝 自动录制流程

检测直播状态

  1. 每5分钟(可配置)检查一次直播间状态
  2. 支持抖音、快手、小红书、视频号等平台
  3. 检测到开播后自动开始录制

开播自动录制

  1. 检测到开播后自动开始录制
  2. 发送开播通知(如果配置)
  3. 使用 FFmpeg 录制直播流

录制管理

  1. 支持分段录制(可配置分段时长)
  2. 自动转码为 MP4 格式(可选)
  3. 录制完成后自动停止

关播处理

  1. 检测到关播后停止录制
  2. 发送关播通知(如果配置)
  3. 自动转码(如果启用)

日志输出

在日志文件中会定期(每60秒)输出录制状态:

============================================================
正在录制 3 个直播:
  • 主播名1 [直播间ID] - 录制时长: 0:15:30
  • 主播名2 [直播间ID] - 录制时长: 0:08:45
  • 主播名3 [直播间ID] - 录制时长: 0:22:10
============================================================

❓ 常见问题

1. 文件未检测到

  • 确认录制路径配置正确(自动从直播监控配置获取)
  • 确认文件扩展名在支持列表中(.mkv, .mp4, .flv, .mov)
  • 检查文件权限

2. 上传失败

  • 使用"网络测试"功能测试 S3 连接和上传速度
  • 检查 S3 配置是否正确(通过 scripts/encrypt_config.py 配置)
  • 检查网络连接
  • 查看日志文件获取详细错误信息

3. 文件上传但未完成

  • 增加文件稳定时间的值(如果录制文件很大)
  • 检查网络稳定性

4. 直播录制相关问题

无法检测到开播

  • 检查直播间 URL 是否正确
  • 检查 Cookie 是否有效(如果需要登录)
  • 查看日志文件获取详细错误信息

录制失败

  • 检查 FFmpeg 是否已安装(打包版本已包含)
  • 检查网络连接
  • 检查保存路径是否有写入权限
  • 查看日志文件获取详细错误信息

录制状态不显示

  • 确认直播录制服务已启动
  • 确认有正在录制的直播间
  • 检查录制进程是否正常运行

5. 认证相关问题

无法登录

  • 检查认证配置是否正确
  • 检查用户名和密码是否正确
  • 查看日志文件获取详细错误信息

LDAP 认证失败

  • 检查 LDAP 配置是否正确
  • 检查网络连接
  • 检查 LDAP 服务器是否可访问

6. 许可证相关问题

许可证验证失败

  • 检查许可证文件是否存在
  • 检查硬件指纹是否匹配
  • 联系技术支持获取新的许可证

🔒 安全说明

配置加密

  • S3 配置通过加密文件管理,确保安全性
  • 加密配置文件打包后为只读,不可修改
  • 如需修改,需要重新运行加密脚本并重新打包

许可证管理

  • 支持硬件指纹绑定,防止许可证被复制
  • 许可证文件存储在用户数据目录
  • 许可证验证失败时,应用会提示激活

认证机制

  • 支持本地认证和 LDAP 认证
  • 密码使用加密存储
  • 认证失败会记录日志

📦 打包说明

详细打包说明请参考 BUILD.md

打包后的可执行程序名称统一为:

  • Windows/Linux: multi-platform-media-monitor
  • macOS: multi-platform-media-monitor.app

🤝 技术支持

如有问题,请查看日志文件或联系技术支持:

  • 联系方式:微信号: Lisir-Say-Hi

📄 更新日志

v1.0.0

  • ✅ 基础功能实现
  • ✅ 多平台直播监控录制
  • ✅ 主页和作品监控
  • ✅ 自动上传到 S3
  • ✅ 许可证和认证管理
  • ✅ 跨平台支持

About

抖音、快手、小红书、视频号四大主流平台数据采集(主页、作品、直播监控)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors