# 视频上传和定时发布功能使用说明 本文档介绍如何使用系统提供的视频上传和定时发布功能。 ## 前提条件 1. 已安装所有依赖包: ``` pip install -r requirements.txt ``` 2. 确保Redis服务已启动(用于Celery任务队列) ``` redis-server ``` 3. 启动Celery Worker(处理后台任务) ``` celery -A role_based_system worker -l info ``` 4. 启动Celery Beat(处理定时任务) ``` celery -A role_based_system beat -l info ``` ## 方法一:通过命令行测试 ### 准备平台账号 首先,确保系统中已存在至少一个平台账号。可以通过admin界面或API创建。 ### 上传视频并设置定时发布 使用以下命令上传视频并计划发布: ```bash python manage.py test_video_upload "D:\pythonproject\role_based\role_based_system\上传视频测试.mp4" 1 --title "测试视频标题" --desc "这是一个测试视频描述" --schedule "2023-08-10 15:30:00" ``` 参数说明: - 第一个参数:视频文件路径 - 第二个参数:平台账号ID - `--title`:视频标题(可选,默认使用文件名) - `--desc`:视频描述(可选) - `--schedule`:计划发布时间(可选,格式:YYYY-MM-DD HH:MM:SS) ### 手动发布视频 如果要立即发布视频,可以使用以下命令: ```bash python manage.py publish_video 1 ``` 参数说明: - 视频ID ## 方法二:通过API接口 ### 上传视频 使用POST请求上传视频: ``` POST /api/operation/videos/upload_video/ ``` 表单数据: - `video_file`:视频文件 - `platform_account`:平台账号ID - `title`:视频标题(可选) - `description`:视频描述(可选) - `scheduled_time`:计划发布时间(可选,ISO格式) - `tags`:标签(可选) ### 手动发布视频 使用POST请求立即发布视频: ``` POST /api/operation/videos/{video_id}/manual_publish/ ``` ## 如何验证视频是否成功发布 1. 检查视频记录状态: ``` python manage.py shell >>> from user_management.models import Video >>> Video.objects.get(id=1).status 'published' ``` 2. 查看日志记录: ``` tail -f debug.log ``` 3. 通过API查询视频状态: ``` GET /api/operation/videos/{video_id}/ ``` ## 注意事项 1. 视频文件会被保存在媒体目录(默认为 `media/videos/{platform_name}_{account_name}/`) 2. 定时发布功能依赖于Celery和Redis,确保这些服务正常运行 3. 本系统目前仅模拟视频发布过程,实际发布到各平台需要扩展相关API 4. 默认视频状态流转:draft(草稿)-> scheduled(已排期)-> published(已发布)或 failed(失败)