【Python 軍火庫🧨 - PySubs2】原始碼深度解析 - 如何增加新的段落(append new sub)

2023/08/29閱讀時間約 3 分鐘
圖片來源

圖片來源


您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。


我們在「【Python 軍火庫 - PySubs2】 字幕檔提取工具的好幫手(ass、ssa、srt、vtt…)」有稍微跟大家介紹了字幕檔處理工具的基本用法,相信對於讀取字幕,更改文字內容應該是再容易不過的事了,咦…,但我們好像都沒有看到關於新增「段落」的資訊耶,不曉得是我沒有仔細尋找還是真的沒有相關文件,如果您有看到的話也歡迎補充在下方留言區,我們也會非常感謝您的。

好了進入正題,究竟應該要如何新增一個段落呢? 嗯…, 我們先來看看這張類別結構圖:

圖片來源

圖片來源

可以發現到在「SSAFile」這個類別裡面,有個「events」而它的結構是List的資料型態,每個元素的型態就是「SSAEvent」,既然類別的關係清楚了,那我們就來看看源碼怎麼寫的吧!

我們先帶您來看看「SSAFile」結構裡的重點,主要看到第42行的events。

https://github.com/tkarabela/pysubs2/blob/master/pysubs2/ssafile.py#L42

圖片來源

圖片來源


哦哦哦,原來List的子元素型態就是「SSAEvent」拉,那讓我們來看看究竟是何方神聖…

ssaevent.py#L11

圖片來源

圖片來源

OK,看到這裡相信聰明的你應該已經有些想法了吧…,不妨這裡停個3分鐘,讓您自個思索一番,到底應該怎麼做咧? 給你個💡提示: 想方設法建立一個「SSAEvent」並加入到「SSAFile」裡。

嗯…,相信您已經思索完畢了,那接下來就換阿Han講解一番,再看看是否與您心中的答案一致。

假設我們已經有一個字幕檔叫做「hahaha.srt」,那我們需要對它加入幾行神秘的字幕文字😈😈😈,那首先我們當然就是先讀入字幕準備加工拉!

import pysubs2

# 載入字幕
subs = pysubs2.load("hahaha.srt", encoding="utf-8")

# 增加一個段落
# 類別 = SSAEvent
# 9000毫秒 =9
start = 9000
# 10000毫秒 =9
end = 10000
sub = pysubs2.SSAEvent(start, end, '😈😈😈 你的小惡魔上線囉')

# 將該段落加入到字幕檔
subs.append(sub)

# 儲存成vtt格式
subs.save('hahaha.vtt')

這樣一來就大功告成拉,就是這樣一個關鍵的類別,我們就可以對字幕有靈活操作的可能性。

結語

在影音時代的來臨時,影片與字幕對我們來說非常的重要,不管是創作者又或者是軟體開發者皆是如此,如果我們能夠學會開源套件的使用方式,相信您也有能力親手打造一個字幕編輯系統(這讓阿Han後續實作在精華區給您玩玩),如此一來就可以省去購買編輯軟體的費用了,畢竟錢要花在刀口上嘛,當我們有能力動手時,何必徒增額外的費用呢?


是不是覺得pysubs2非常的便利呢? 您想不想親手打造這樣的套件給他人使用呢? 不妨來上個「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課」讓我們幫助您打包專屬的套件庫吧!


喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識!

91會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!