The ID3 tags manager that you have been missing.
$ pipx install id3manager
$ id3manager get шопокоду-E01.mp3 > metadata.txt # get audio metadata
$ nvim metadata.txt # update the metadata
$ id3manager set шопокоду-E01.mp3 < metadata.txt # set audio metadata
$ id3manager edit шопокоду-E01.mp3 # to edit metadata interactively using $EDITOR
The metadata.txt
could look like this:
TIT2 = Обробка помилок
TDRC = 2022-11-27
TPE1 = Ігор, Роман
TRCK = 14/14
TALB = Шо по коду?
TCOP = Шо по коду?
TPUB = Шо по коду?
TENC = Шо по коду?
TCON = Podcast
TLAN = ukr
WORS = https://xn--d1allabd6a7a.xn--j1amh
00:00:00 Початок
00:02:00 Помилка на мільярд доларів
00:05:27 Як Meta бореться із NullPointerException в Java
00:09:10 Виключення як спосіб сигналізації помилок
00:14:00 Null-safety в Kotlin
00:18:40 Складність використання виключень в C++. Чому Joel Spolsky і Google їх не люблять
00:28:20 Коди помилок як альтернатива виключенням
00:37:30 Функціональний підхід
00:50:30 Особливості використання Result у Rust
01:00:45 Висновок
Alternative metadata formats can be selected by passing --format
(or -f
), e.g.:
$ id3manager --format toml get шопокоду-E01.mp3 > metadata.toml # get audio metadata as TOML
Which produces an output like:
[[TIT2]]
text = "Обробка помилок"
[[TPE1]]
text = "Ігор, Роман"
[[TRCK]]
text = "14/14"
[[TALB]]
text = "Шо по коду?"
[[TDRC]]
text = "2022-11-27"
[[TCON]]
text = "Podcast"
[[TSSE]]
text = "Lavf59.27.100"
[[CHAP]]
text = "Початок"
timestamp = "00:00:00"
Most commonly used ID3 frames are supported. The complete list of supported/unsupported frames could be found below.
- CHAP
- CTOC
- TBPM
- TBP
- TCMP
- TCP
- TDLY
- TDY
- TLEN
- TLE
- TORY
- TOR
- TSIZ
- TSI
- TYER
- TYE
- MVIN
- MVI
- TPOS
- TPA
- TRCK
- TRK
- TDEN
- TDOR
- TDRC
- TDRL
- TDTG
- TALB
- TAL
- TCOM
- TCM
- TCON
- TCO
- TCOP
- TCR
- TDAT
- TDA
- TDES
- TKWD
- TCAT
- MVNM
- MVN
- GRP1
- GP1
- TENC
- TEN
- TEXT
- TXT
- TFLT
- TFT
- TGID
- TIME
- TIM
- TIT1
- TT1
- TIT2
- TT2
- TIT3
- TT3
- TKEY
- TKE
- TLAN
- TLA
- TMED
- TMT
- TMOO
- TOAL
- TOT
- TOFN
- TOF
- TOLY
- TOL
- TOPE
- TOA
- TOWN
- TPE1
- TP1
- TPE2
- TP2
- TPE3
- TP3
- TPE4
- TP4
- TPRO
- TPUB
- TPB
- TRDA
- TRD
- TRSN
- TRSO
- TSO2
- TS2
- TSOA
- TSA
- TSOC
- TSC
- TSOP
- TSP
- TSOT
- TST
- TSRC
- TRC
- TSSE
- TSS
- TSST
- TXXX
- TXX
- COMM
- COM
- WCOM
- WCM
- WOAR
- WAR
- WCOP
- WCP
- WFED
- WOAF
- WAF
- WOAS
- WAS
- WORS
- WPAY
- WPUB
- WPB
- WXXX
- WXX
- TIPL
- IPLS
- IPL
- TMCL
- MCDI
- MCI
- ETCO
- ETC
- MLLT
- MLL
- SYTC
- STC
- USLT
- ULT
- SYLT
- SLT
- RVA2
- EQU2
- RVAD
- RVA
- RVRB
- REV
- APIC
- PIC
- PCNT
- CNT
- PCST
- POPM
- POP
- GEOB
- GEO
- RBUF
- BUF
- AENC
- CRA
- LINK
- LNK
- POSS
- UFID
- UFI
- USER
- OWNE
- COMR
- ENCR
- GRID
- PRIV
- SIGN
- SEEK
- ASPI
- CRM