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

5.7 KiB
Raw Blame History

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提供图像
    • 注意:这些端点需要在设置中配置云存储