Files
MyTube/documents/zh/api-endpoints.md
2025-12-30 00:05:30 -05:00

111 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# API 端点
## 视频下载与搜索
- `GET /api/search` - 在线搜索视频 (YouTube)
- 查询参数: `query` (必需), `limit` (可选, 默认: 8), `offset` (可选, 默认: 1)
- `POST /api/download` - 从支持的平台下载视频
- 请求体: `{ url: string, ...options }`
- 支持: YouTube, Bilibili, MissAV 以及所有 yt-dlp 支持的网站
- `GET /api/check-video-download` - 检查视频是否已下载
- 查询参数: `url` (必需)
- 返回: `{ found: boolean, status: 'exists' | 'deleted', videoId?: string, ... }`
- `GET /api/check-bilibili-parts` - 检查 Bilibili 视频是否包含多个分P
- 查询参数: `url` (必需)
- `GET /api/check-bilibili-collection` - 检查 Bilibili URL 是否为合集/系列
- 查询参数: `url` (必需)
- `GET /api/check-playlist` - 检查 URL 是否为受支持的播放列表
- 查询参数: `url` (必需)
- `GET /api/download-status` - 获取活动下载的状态
- 返回: `{ active: [], queued: [] }`
## 视频管理
- `POST /api/upload` - 上传本地视频文件
- 多部分表单数据: `video` (文件)
- 自动生成缩略图
- `GET /api/videos` - 获取所有已下载的视频
- 查询参数: `page` (可选), `limit` (可选), `sortBy` (可选), `order` (可选), `search` (可选), `author` (可选), `tags` (可选)
- `GET /api/videos/:id` - 通过 ID 获取特定视频
- `PUT /api/videos/:id` - 更新视频详情
- 请求体: `{ title?, author?, tags?, rating?, ... }`
- `DELETE /api/videos/:id` - 删除视频及其文件
- `GET /api/videos/:id/comments` - 获取视频评论 (如果可用)
- `POST /api/videos/:id/rate` - 评价视频 (1-5 星)
- 请求体: `{ rating: number }`
- `POST /api/videos/:id/refresh-thumbnail` - 刷新视频缩略图
- `POST /api/videos/:id/view` - 增加观看次数
- `PUT /api/videos/:id/progress` - 更新播放进度
- 请求体: `{ progress: number }` (秒)
- `GET /api/videos/author-channel-url` - 获取视频的作者频道 URL
- 查询参数: `sourceUrl` (必需)
- 返回: `{ success: boolean, channelUrl: string | null }`
- 首先检查数据库,如果未找到则从 YouTube/Bilibili API 获取
## 下载管理
- `POST /api/downloads/cancel/:id` - 取消活动下载
- `DELETE /api/downloads/queue/:id` - 从队列中移除下载
- `DELETE /api/downloads/queue` - 清空整个下载队列
- `GET /api/downloads/history` - 获取下载历史
- 查询参数: `page` (可选), `limit` (可选)
- `DELETE /api/downloads/history/:id` - 从下载历史中移除项目
- `DELETE /api/downloads/history` - 清空整个下载历史
## 收藏夹
- `GET /api/collections` - 获取所有收藏夹
- `POST /api/collections` - 创建新收藏夹
- 请求体: `{ name: string, videoIds?: string[] }`
- `PUT /api/collections/:id` - 更新收藏夹 (添加/移除视频)
- 请求体: `{ name?: string, videoIds?: string[], action?: 'add' | 'remove' }`
- `DELETE /api/collections/:id` - 删除收藏夹
## 订阅
- `GET /api/subscriptions` - 获取所有订阅
- `POST /api/subscriptions` - 创建新订阅
- 请求体: `{ authorUrl: string, interval: number, platform?: string }`
- `interval`: 检查间隔(分钟)
- `platform`: 'YouTube' (默认) 或 'Bilibili'
- `DELETE /api/subscriptions/:id` - 删除订阅
## 持续下载任务 (订阅)
- `GET /api/subscriptions/tasks` - 获取所有持续下载任务
- 查询参数: `page` (可选), `limit` (可选)
- `POST /api/subscriptions/tasks/playlist` - 创建新的播放列表下载任务
- Body: `{ url: string, ...options }`
- `DELETE /api/subscriptions/tasks/:id` - 取消持续下载任务
- `DELETE /api/subscriptions/tasks/:id/delete` - 删除任务记录
- `DELETE /api/subscriptions/tasks/clear-finished` - 清除所有已完成的任务
## 设置与系统
- `GET /api/settings` - 获取应用设置
- `POST /api/settings` - 更新应用设置
- 请求体: `{ [key: string]: any }` - 设置对象
- 支持: `visitorMode`, `cloudDriveEnabled`, `openListApiUrl`, `openListToken`, `openListPublicUrl`, `cloudDrivePath` 及其他设置
- `GET /api/settings/cloudflared/status` - 获取 Cloudflare Tunnel 状态
- `GET /api/settings/password-enabled` - 检查是否启用了密码保护
- `POST /api/settings/verify-password` - 验证登录密码
- 请求体: `{ password: string }`
- `POST /api/settings/reset-password` - 重置登录密码
- 请求体: `{ oldPassword: string, newPassword: string }`
- `POST /api/settings/migrate` - 从 JSON 迁移数据到 SQLite
- `POST /api/settings/delete-legacy` - 删除旧的 JSON 数据文件
- `POST /api/settings/format-filenames` - 根据设置格式化视频文件名
- `POST /api/settings/upload-cookies` - 上传 cookies.txt 以供 yt-dlp 使用
- 多部分表单数据: `file` (cookies.txt)
- `POST /api/settings/delete-cookies` - 删除 cookies.txt
- `GET /api/settings/check-cookies` - 检查 cookies.txt 是否存在
- `GET /api/settings/export-database` - 导出数据库作为备份文件
- `POST /api/settings/import-database` - 从备份文件导入数据库
- 多部分表单数据: `file` (数据库备份文件)
- `GET /api/settings/last-backup-info` - 获取最后一个数据库备份的信息
- `POST /api/settings/restore-from-last-backup` - 从最后一个备份恢复数据库
- `POST /api/settings/cleanup-backup-databases` - 清理旧的备份数据库文件
## 文件管理
- `POST /api/scan-files` - 扫描上传目录中的现有视频文件
- `POST /api/cleanup-temp-files` - 清理临时下载文件
## 云存储
- `GET /cloud/videos/:filename` - 代理端点用于从云存储OpenList/Alist流式传输视频
- `GET /cloud/images/:filename` - 代理端点用于从云存储OpenList/Alist提供图像
- 注意:这些端点需要在设置中配置云存储