Как добавить тег SYLT (синхронизированный текст) в mp3-файл ID3v2, используя python? - PullRequest
0 голосов
/ 30 января 2020

Я хочу добавить синхронизированные тексты из vtt в мой mp3-файл, используя python. Я пытался использовать модуль мутагена, но он не работал должным образом.

from mutagen.id3 import ID3, USLT, SLT
import sys
import webvtt

lyrics = webvtt.read(sys.argv[2])
lyri = []
lyr = []
for lyric in lyrics:
    times = [int(x) for x in lyric.start.replace(".", ":").split(":")]
    ms = times[-1]+1000*times[-2]+1000*60*times[-3]+1000*60*60*times[-4]
    lyri.append((lyric.text,ms))
    lyr.append(lyric.text)
fil = ID3(sys.argv[1])
tag = USLT(encoding=3, lang='kor', text="\n".join(lyr)) # this is unsynced lyrics
#tag = SLT(encoding=3, lang='kor', format=2, type=1, text=lyri) --- not working
print(tag)
fil.add(tag)
fil.save(v1=0)

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 12 апреля 2020

Я использую мутаген для анализа mp3-файла, который уже содержит данные SYLT, и обнаружил использование SYLT:

from mutagen.id3 import ID3, SYLT, Encoding

tag = ID3(mp3path)
sync_lrc = [("Do you know what's worth fighting for", 17640), 
            ("When it's not worth dying for?", 23640), ...]  # [(lrc, millisecond), ]
tag.setall("SYLT", [SYLT(encoding=Encoding.UTF8, lang='eng', format=2, type=1, text=sync_lrc)])
tag.save(v2_version=3)

Но я не могу понять, format=2, type=1 означает.

...