Miyuki.py

---
markmap:
  height: 511
---

# 网站视频下载器

## 1 . **导入和设置**:
- 导入必要的库(`argparse`、`logging`、`os`、`re`、`requests` 等)。
- 配置日志以输出到控制台。

## 2 . **下载管理**:
- 定义各种常量,如 `magic_number` 和 `RECORD_FILE`。
- 准备路径和正则表达式模式以与视频 URL 交互并识别视频元数据(UUID、标题等)。

## 3 . **辅助函数**:
- **进度条**:在终端中直观地跟踪下载进度。
- **线程安全计数器**:确保正确计数并发下载。
- **请求重试**:实现使用 `requests` 下载视频片段的重试逻辑。
- **线程下载**:使用线程同时下载视频块。
- **视频文件管理**:处理将下载的块合并为最终视频文件,可以通过手动合并或使用 `ffmpeg` 获得更好的质量。

## 4 . **视频下载逻辑**:
- 视频下载首先验证视频是否已下载。
- 获取电影的唯一 UUID,然后检索视频的播放列表。
- 视频被分成块,下载在并行线程中进行。
- 最后,手动写入视频或使用 `ffmpeg` 处理视频以创建最终的 `.mp4` 文件。

## 5 . **CLI 参数**:
- 脚本使用 `argparse` 解析定义下载标准(URL、质量等)的命令行参数。
- 多个标志控制下载行为,例如启用重试、设置视频质量或选择是否添加封面作为预览。

## 6 . **执行**:
- 根据输入参数,脚本获取视频 URL、根据需要登录帐户并开始下载。
- 下载过程包括可选功能,例如设置封面图像、搜索特定视频或使用 `ffmpeg` 进行处理。

## 7 . **错误处理和日志记录**:
- 错误记录到控制台和文件中。
- 各种检查确保脚本使用有效输入运行(例如,有效的 URL、凭据、文件路径)。