🎬 视频管理 API
通过 HTTP API 管理视频数据
视频管理 API 提供了完整的 CRUD 操作,允许您通过 HTTP 请求获取、创建、更新和删除视频数据。
📥 获取所有视频
GET
/api/videos响应:200 OK,返回视频数组
[
{
"id": "1767042792152n1yc9qrf3",
"resourceType": "movie",
"name": "视频名称",
"description": "视频描述",
"series": "系列名",
"tags": ["标签1", "标签2"],
"actors": ["演员1", "演员2"],
"resourcePath": "C:/Videos/video.mp4",
"thumbnail": "C:/Videos/Thumbnails/thumb.jpg",
"duration": 120,
"visitedSessions": [
"2025-12-29T22:05:34.528Z",
"2026-01-21T08:53:13.157Z"
],
"addedDate": "2025-12-29T21:13:12.152Z",
"rating": 5,
"comment": "很好看",
"isFavorite": true
}
]JavaScript
const res = await fetch('http://127.0.0.1:8765/api/videos')
const videos = await res.json()Python
import requests
response = requests.get('http://127.0.0.1:8765/api/videos')
videos = response.json()📥 获取单个视频
GET
/api/videos/:id参数:id - 视频ID
响应:200 OK 返回视频对象,不存在则 404
{
"id": "1767042792152n1yc9qrf3",
"resourceType": "movie",
"name": "视频名称",
"description": "视频描述",
"series": "系列名",
"tags": ["标签1", "标签2"],
"actors": ["演员1", "演员2"],
"resourcePath": "C:/Videos/video.mp4",
"thumbnail": "C:/Videos/Thumbnails/thumb.jpg",
"duration": 120,
"visitedSessions": [
"2025-12-29T22:05:34.528Z",
"2026-01-21T08:53:13.157Z"
],
"addedDate": "2025-12-29T21:13:12.152Z",
"rating": 5,
"comment": "很好看",
"isFavorite": true
}JavaScript
const res = await fetch('http://127.0.0.1:8765/api/videos/1234567890abc')
const video = await res.json()Python
import requests
response = requests.get('http://127.0.0.1:8765/api/videos/1234567890abc')
video = response.json()➕ 创建视频
POST
/api/videos请求体:
{
"name": "视频名称",
"description": "视频描述",
"series": "系列名",
"tags": ["标签1", "标签2"],
"actors": ["演员1", "演员2"],
"resourcePath": "C:/Videos/video.mp4",
"thumbnail": "C:/Videos/Thumbnails/thumb.jpg",
"duration": 120,
"visitedSessions": [],
"rating": 0,
"comment": "",
"isFavorite": false
}响应:201 Created,返回创建的视频对象
注意:ID 和 addedDate 会自动生成
JavaScript
const res = await fetch('http://127.0.0.1:8765/api/videos', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
name: '新视频',
series: '系列名',
resourcePath: 'C:/Videos/newvideo.mp4'
})
})
const createdVideo = await res.json()Python
import requests
new_video = {
'name': '新视频',
'series': '系列名',
'resourcePath': 'C:/Videos/newvideo.mp4'
}
response = requests.post('http://127.0.0.1:8765/api/videos', json=new_video)
created_video = response.json()✏️ 更新视频
PUT
/api/videos/:id参数:id - 视频ID
请求体:要更新的字段(JSON 对象,只需传要修改的字段)
{
"name": "更新后的视频名",
"description": "更新后的描述",
"rating": 5,
"tags": ["新标签1", "新标签2"],
"isFavorite": true
}响应:200 OK,返回更新后的视频对象
注意:ID 和 addedDate 字段不允许修改
JavaScript
const res = await fetch('http://127.0.0.1:8765/api/videos/1234567890abc', {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: '更新后的视频名' })
})
const updatedVideo = await res.json()Python
import requests
update_data = {'name': '更新后的视频名'}
response = requests.put('http://127.0.0.1:8765/api/videos/1234567890abc', json=update_data)
updated_video = response.json()🗑️ 删除视频
DELETE
/api/videos/:id参数:id - 视频ID
响应:204 No Content(成功)或 404 Not Found(不存在)
注意:删除操作不会删除本地视频文件,仅移除管理器中的引用
JavaScript
await fetch('http://127.0.0.1:8765/api/videos/1234567890abc', { method: 'DELETE' })
// 成功返回 204,无响应体Python
import requests
response = requests.delete('http://127.0.0.1:8765/api/videos/1234567890abc')
# 成功返回 204,无响应体📊 视频数据字段说明
视频对象包含以下字段:
id- 视频唯一标识符(自动生成,不可修改)resourceType- 资源类型,固定为 "movie"name- 视频名称(必需)description- 视频描述series- 系列名tags- 标签数组actors- 演员数组resourcePath- 视频文件路径thumbnail- 缩略图路径duration- 视频时长(分钟)visitedSessions- 访问会话时间数组(ISO 字符串数组,记录每次观看时间)addedDate- 添加日期(自动生成,不可修改)rating- 评分(1-5 或 0)comment- 备注isFavorite- 是否收藏
⚠️ 错误处理
API 使用标准的 HTTP 状态码:
- 200 OK:请求成功
- 201 Created:资源创建成功
- 204 No Content:删除成功(无响应体)
- 400 Bad Request:请求参数错误(如缺少必需字段)
- 404 Not Found:资源不存在
- 500 Internal Server Error:服务器内部错误
错误响应格式:
{
"error": "错误信息"
}