NUC 发表于 2023-6-30 12:34:36

SubtitleRenamer - 又一个多平台的字幕重命名工具(Windows, macOS, Linux)

本帖最后由 NUC 于 2024-1-10 12:09 编辑

虽然论坛有不少字幕重命名的工具和方案了,但是用起来仍有许多不满意的地方
索性趁着上班摸鱼偷学 Python,根据我的痛点写了一个软件,分享给大家

https://github.com/nuthx/subtitle-renamer/raw/main/image/screenshot.png
主要特色如下:
1. 多平台支持:Windows,macOS 和 Lunux
2. 识别字幕语言为简体还是繁体,并可选增加后缀
3. 可选转换字幕至 UTF-8/UTF-8-SIG
4. 支持重命名后删除多余字幕
5. 支持移动字幕至视频文件夹

——————
百度云(版本较旧):
https://pan.baidu.com/s/1__Av8xQYzp12L2xVbBfeYg?pwd=vcbs

Github:
https://github.com/nuthx/subtitle-renamer
——————

顺便问问大家还有什么需求或改进意见,我看看能写出来的酌情增加
如果运行出错了,请回复留下能复现的步骤和操作系统,我在下个版本中修复

如果这个工具对你有用,还请点个 star 鼓励一下作者,十分感谢!

彩蛋:
动画文件夹重命名的工具已开发完成,数据来源为 bgm.tv
将下载的文件夹如 Tokyo Revengers [ x265-10Bit Ver. ] - TV + SP
命名成 东京复仇者/ 東京リベンジャーズ 聖夜決戦編 的形式
有需求欢迎关注:https://bbs.acgrip.com/thread-11277-1-2.html

天空龙 发表于 2023-6-30 16:00:44

想问下能不能实现对视频集数的命名
我用gpt让写了个powershell的,不知道能不能用到,有时候压完视频找对应比较麻烦,
# 获取拖放的视频文件
$videos = $args

<# # 检查ffmpeg是否存在,如果不存在则下载
if (-not (Test-Path "ffmpeg.exe")) {
    Invoke-WebRequest -Uri "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip" -OutFile "ffmpeg.zip"
    Expand-Archive -Path "ffmpeg.zip" -DestinationPath ".\"
    Rename-Item -Path ".\ffmpeg-release-essentials\bin\ffmpeg.exe" -NewName "ffmpeg.exe"
    Remove-Item -Path ".\ffmpeg-release-essentials" -Recurse
    Remove-Item -Path ".\ffmpeg.zip"
}
#>

# 对每个视频文件执行以下操作
foreach ($video in $videos) {
    # 获取视频文件名
    $videoName = Split-Path -Path $video -Leaf

    # 从文件名中截取“第”和“话”中间的两位数字
    if ($videoName -match "第(\d{2})話") {
      $episode = $Matches
    }
    else {
      Write-Error "无法从文件名中获取集数"
      continue
    }

    # 使用ffmpeg对视频隔3秒截图,输出文件名格式为集数_四位数字.png
    & ffmpeg.exe -i $video -vf "fps=1/3,scale=910:512" -ss 2:10 -to 00:21:00 `"F:\cocotemp1\new4\"$episode"_%04d.png`"
}

这个是可以运行的,至于集数标题,只能靠wiki了

苏辰汐 发表于 2023-6-30 16:41:12

本帖最后由 苏辰汐 于 2023-6-30 16:50 编辑

看上去不错,可以考虑添加“复制字幕到视频目录”和“转换字符编码至utf-8”的功能,比较实用
简繁转换还是交给更专业的繁化姬
https://u2.dmhy.org/attachments/202011/2020112912451571cc3ce30be19c0e14f1aa98991710b2.png

NUC 发表于 2023-6-30 16:55:06

天空龙 发表于 2023-6-30 16:00
想问下能不能实现对视频集数的命名
我用gpt让写了个powershell的,不知道能不能用到,有时候压完视频找对应 ...

这个工具只会对字幕进行更名,不会处理视频文件

我理解你的需求,只是这个功能与不是SubtitleRenamer该做的事情,所以没有计划加入{:5_106:}

NUC 发表于 2023-6-30 17:11:25

苏辰汐 发表于 2023-6-30 16:41
看上去不错,可以考虑添加“复制字幕到视频目录”和“转换字符编码至utf-8”的功能,比较实用
简繁转换还是 ...

目前重命名后是会复制字幕到视频目录的

转换字符编码至utf-8后面可以增加这个功能


可能我的描述有误,这个软件不会对字幕文件做更改
只是读取字幕文件的内容来确定这个是简体字幕还是繁体字幕
为下一步的命名操作做准备

苏辰汐 发表于 2023-6-30 17:15:33

NUC 发表于 2023-6-30 17:11
目前重命名后是会复制字幕到视频目录的

转换字符编码至utf-8后面可以增加这个功能

复制字幕到视频目录的功能建议设为可选项,有时候用户可能将字幕放入了视频目录下的sub之类的子文件夹中,重命名后不希望放入到视频根目录下

QS0x01 发表于 2023-6-30 17:25:34

本帖最后由 QS0x01 于 2023-6-30 17:31 编辑

一直很好奇这类程序是怎么处理以下情况的,虽说可以看代码,不过楼主能否简单解答下?

1. 字幕 PART2 01-25 对应视频 26-50
2. TV 01-12 和 OVA 01-03 被一次性输入
3. 16.5 总集篇、TV/BD 双版本,等其它情况造成的视频和字幕错位

特别是情况 3 比较麻烦,我预想的设计是
1. 程序猜测一个可能匹配的顺序。
2. 提示用户确认异常,并允许用户手动调整顺序/勾选视频(顺序错位/数量不符)。
3. 重命名字幕并保留原始副本。

sommio 发表于 2023-6-30 17:51:58

简繁转换要自动化得识别日语,不然会弄坏日语部分

NUC 发表于 2023-6-30 18:15:47

QS0x01 发表于 2023-6-30 17:25
一直很好奇这类程序是怎么处理以下情况的,虽说可以看代码,不过楼主能否简单解答下?

1. 字幕 PART2 01-2 ...


说实话没考虑那么多,简单粗暴的 sort() 来排序视频和字幕

1. 基本都可以通过排序匹配成功
2. 根据字幕和视频的命名,如果恰巧都是 TV 在前 OVA 在后就可以匹配成功,否则只能清空分两次命名
3. 视频部分可以利用 AnitomySharp 来确定集数和 BD/TV,但用户上传的字幕命名随机性太大,可能比较难匹配。考虑到双版本的番剧数量很少,遇到的时候就手动调整吧

手动调序和删除指定字幕/视频是我想在未来版本中增加的功能,这样就可以比较方便的解决乱序问题

马可solo 发表于 2023-7-1 15:17:32

43.6 MB没绷住,python果然体积杀手
页: [1] 2
查看完整版本: SubtitleRenamer - 又一个多平台的字幕重命名工具(Windows, macOS, Linux)