blowup

Crates.ioblowup
lib.rsblowup
version0.1.1
created_at2025-08-13 08:14:34.797237+00
updated_at2025-08-18 07:44:16.791575+00
descriptionAll tools related to improving my movie-watching experience.
homepage
repositoryhttps://github.com/XuanLee-HEALER/hermes
max_upload_size
id1793412
size148,101
Mouse.Lee (XuanLee-HEALER)

documentation

README

blowup

维护状态 版本 License

blow-up [Michelangelo Antonioni]: A fashion photographer unknowingly captures a death on film after following two lovers in a park.

The best movie I've seen so far.

我认为的最好的电影,目前为止

解决在观影过程中遇到的一些技术性问题

我的观影流程

  1. 通过各种媒介(影评、豆瓣、抖音)了解到一部感兴趣的电影
  2. 在种子网站搜资源,例如 rarbg
  3. 下载资源
  4. 处理字幕,YTS资源通常带英文字幕
  5. 观看电影
  6. 电影的处理

目前遇到的问题

  1. 种子下载器,qBittorrent每次下电影需要手动修改tracker列表,我需要在github上将几个仓库的新的tracker文件打开拷贝,这个工作需要自动化
  2. 字幕处理,现在从字幕网下载的字幕基本都和YTS资源时间轴对不上,需要简单处理,我想直接从下载好的电影中把字幕流提取出来使用本地大模型翻译,试试提高翻译质量。提取工具使用ffmpeg

用法

CLI工具用法

cargo install blowup

# add blowup to your PATH if not

blowup --help

Usage: blowup <COMMAND>

Commands:
  tracker  handle all things about tracker list
  sub      subtitle file processing tools

blowup tracker --help

Usage: blowup tracker <COMMAND>

Commands:
  update  update the newest tracker list

blowup sub --help

Usage: blowup sub <COMMAND>

Commands:
  incr    Modify SRT time entries: add or subtract a millisecond offset
  export  Extract subtitle streams from the specified video container to a designated location
  list    List the number of subtitle streams in a video container

字幕

用法

需求:对于YTS源的电影,大部分格式是mkv或者mp4,并且都有内嵌字幕,所以需要根据英文字幕翻译中文字幕。有以下条件

  1. 电影文件,格式为mkv和mp4,可以直接使用ffmpeg导出字幕流为srt文件
  2. 然后将文件处理成”翻译段落“,如果是多行,就折叠成一行
  3. 将待翻译的句子传入大模型
  4. 处理输出的翻译结果
  5. 创建新的字幕文件

校对?

提取音频流 -> 音频转文字 -> 识别语种 直接翻译

提取字幕

直接使用 ffmpeg 工具来提取字幕

TODO:首先检测容器中是否有字幕流,有多个字幕流的情况(放到查询中),导出字幕流使用ID来标识

srt

实现一个srt文件的解析器,提供一些对外接口

功能列表:

  • 从 impl Read 中读取内容,解析成 SrtFile 类型
  • SrtFile 类型提供 Write 方法,写出到 impl Write 类型中
  • 可以修改条目的时间,比如向前或向后修改时间,还可以指定条目的范围进行修改
  • 每个字幕条目的持续时间
  • 获取某个条目的字符串,包括原始字符串、语义切分后的字符串等

翻译字幕

读取指定路径的srt字幕文件,根据指定的语言名称,将其翻译成中文,在同目录生成翻译好的中文字幕文件

翻译过程需要调用大模型接口(http)

  • 明确电影
  • 翻译要求

你是一个专业的电影字幕翻译专家。 你的任务是将电影对话从 [源语言,例如:英文] 翻译成 [目标语言,例如:简体中文]。

请严格遵循以下要求:

  1. 准确传达意义:忠实于原文的剧情、对话、情感和意图。确保所有专有名词(人名、地名、术语)翻译一致且准确。
  2. 自然流畅的中文:翻译结果必须符合中文的语法习惯和表达方式,避免生硬的直译。
  3. 简练易懂:译文应简洁明了,避免冗余,方便观众快速阅读和理解,不影响观影体验。
  4. 文化本地化:对于源语言中的习语、俚语、梗、双关语或文化特定内容,进行恰当的意译或本地化处理,确保目标受众能够理解其含义和幽默。
  5. 语境匹配:充分理解对话的上下文和影片整体语境,确保译文在不同场景下含义正确。
  6. 时间轴友好(可选,如果需要模型考虑):尽管模型不直接处理时间轴,但在翻译时请考虑字幕最终呈现的易读性,句子不宜过长,单句信息量适中,为后续的分行和时间轴同步预留空间。

提供影片类型、提供背景信息、要求解释特定词语

Commit count: 0

cargo fmt