Name | id3manager JSON |
Version |
0.1.0
JSON |
| download |
home_page | |
Summary | The ID3 metadata manager for MP3 files. |
upload_time | 2023-06-26 22:28:47 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.7 |
license | |
keywords |
audio
id3
metadata
mp3
tags
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# id3manager
The ID3 tags manager that you have been missing.
```console
$ pipx install id3manager
```
## Usage
```console
$ 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:
```text
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.:
```console
$ id3manager --format toml get шопокоду-E01.mp3 > metadata.toml # get audio metadata as TOML
```
Which produces an output like:
```toml
[[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"
```
## Frames
Most commonly used ID3 frames are supported. The complete list of
supported/unsupported frames could be found below.
- [x] CHAP
- [x] CTOC
- [x] TBPM
- [x] TBP
- [x] TCMP
- [x] TCP
- [x] TDLY
- [x] TDY
- [x] TLEN
- [x] TLE
- [x] TORY
- [x] TOR
- [x] TSIZ
- [x] TSI
- [x] TYER
- [x] TYE
- [x] MVIN
- [x] MVI
- [x] TPOS
- [x] TPA
- [x] TRCK
- [x] TRK
- [x] TDEN
- [x] TDOR
- [x] TDRC
- [x] TDRL
- [x] TDTG
- [x] TALB
- [x] TAL
- [x] TCOM
- [x] TCM
- [x] TCON
- [x] TCO
- [x] TCOP
- [x] TCR
- [x] TDAT
- [x] TDA
- [x] TDES
- [x] TKWD
- [x] TCAT
- [x] MVNM
- [x] MVN
- [x] GRP1
- [x] GP1
- [x] TENC
- [x] TEN
- [x] TEXT
- [x] TXT
- [x] TFLT
- [x] TFT
- [x] TGID
- [x] TIME
- [x] TIM
- [x] TIT1
- [x] TT1
- [x] TIT2
- [x] TT2
- [x] TIT3
- [x] TT3
- [x] TKEY
- [x] TKE
- [x] TLAN
- [x] TLA
- [x] TMED
- [x] TMT
- [x] TMOO
- [x] TOAL
- [x] TOT
- [x] TOFN
- [x] TOF
- [x] TOLY
- [x] TOL
- [x] TOPE
- [x] TOA
- [x] TOWN
- [x] TPE1
- [x] TP1
- [x] TPE2
- [x] TP2
- [x] TPE3
- [x] TP3
- [x] TPE4
- [x] TP4
- [x] TPRO
- [x] TPUB
- [x] TPB
- [x] TRDA
- [x] TRD
- [x] TRSN
- [x] TRSO
- [x] TSO2
- [x] TS2
- [x] TSOA
- [x] TSA
- [x] TSOC
- [x] TSC
- [x] TSOP
- [x] TSP
- [x] TSOT
- [x] TST
- [x] TSRC
- [x] TRC
- [x] TSSE
- [x] TSS
- [x] TSST
- [x] TXXX
- [x] TXX
- [x] COMM
- [x] COM
- [x] WCOM
- [x] WCM
- [x] WOAR
- [x] WAR
- [x] WCOP
- [x] WCP
- [x] WFED
- [x] WOAF
- [x] WAF
- [x] WOAS
- [x] WAS
- [x] WORS
- [x] WPAY
- [x] WPUB
- [x] WPB
- [x] WXXX
- [x] 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
Raw data
{
"_id": null,
"home_page": "",
"name": "id3manager",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "audio,id3,metadata,mp3,tags",
"author": "",
"author_email": "Ihor Kalnytskyi <ihor@kalnytskyi.com>",
"download_url": "https://files.pythonhosted.org/packages/7b/63/91fa1afc56dc8be1a543964548281b979d8a74825aa7ab2ed5cf6327954a/id3manager-0.1.0.tar.gz",
"platform": null,
"description": "# id3manager\n\nThe ID3 tags manager that you have been missing.\n\n```console\n$ pipx install id3manager\n```\n\n## Usage\n\n```console\n$ id3manager get \u0448\u043e\u043f\u043e\u043a\u043e\u0434\u0443-E01.mp3 > metadata.txt # get audio metadata\n$ nvim metadata.txt # update the metadata\n$ id3manager set \u0448\u043e\u043f\u043e\u043a\u043e\u0434\u0443-E01.mp3 < metadata.txt # set audio metadata\n$ id3manager edit \u0448\u043e\u043f\u043e\u043a\u043e\u0434\u0443-E01.mp3 # to edit metadata interactively using $EDITOR\n```\n\nThe `metadata.txt` could look like this:\n\n```text\nTIT2 = \u041e\u0431\u0440\u043e\u0431\u043a\u0430 \u043f\u043e\u043c\u0438\u043b\u043e\u043a\nTDRC = 2022-11-27\nTPE1 = \u0406\u0433\u043e\u0440, \u0420\u043e\u043c\u0430\u043d\nTRCK = 14/14\nTALB = \u0428\u043e \u043f\u043e \u043a\u043e\u0434\u0443?\nTCOP = \u0428\u043e \u043f\u043e \u043a\u043e\u0434\u0443?\nTPUB = \u0428\u043e \u043f\u043e \u043a\u043e\u0434\u0443?\nTENC = \u0428\u043e \u043f\u043e \u043a\u043e\u0434\u0443?\nTCON = Podcast\nTLAN = ukr\nWORS = https://xn--d1allabd6a7a.xn--j1amh\n\n00:00:00 \u041f\u043e\u0447\u0430\u0442\u043e\u043a\n00:02:00 \u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043d\u0430 \u043c\u0456\u043b\u044c\u044f\u0440\u0434 \u0434\u043e\u043b\u0430\u0440\u0456\u0432\n00:05:27 \u042f\u043a Meta \u0431\u043e\u0440\u0435\u0442\u044c\u0441\u044f \u0456\u0437 NullPointerException \u0432 Java\n00:09:10 \u0412\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f \u044f\u043a \u0441\u043f\u043e\u0441\u0456\u0431 \u0441\u0438\u0433\u043d\u0430\u043b\u0456\u0437\u0430\u0446\u0456\u0457 \u043f\u043e\u043c\u0438\u043b\u043e\u043a\n00:14:00 Null-safety \u0432 Kotlin\n00:18:40 \u0421\u043a\u043b\u0430\u0434\u043d\u0456\u0441\u0442\u044c \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f \u0432\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u044c \u0432 C++. \u0427\u043e\u043c\u0443 Joel Spolsky \u0456 Google \u0457\u0445 \u043d\u0435 \u043b\u044e\u0431\u043b\u044f\u0442\u044c\n00:28:20 \u041a\u043e\u0434\u0438 \u043f\u043e\u043c\u0438\u043b\u043e\u043a \u044f\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u0432\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f\u043c\n00:37:30 \u0424\u0443\u043d\u043a\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0438\u0439 \u043f\u0456\u0434\u0445\u0456\u0434\n00:50:30 \u041e\u0441\u043e\u0431\u043b\u0438\u0432\u043e\u0441\u0442\u0456 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f Result \u0443 Rust\n01:00:45 \u0412\u0438\u0441\u043d\u043e\u0432\u043e\u043a\n```\n\nAlternative metadata formats can be selected by passing `--format` (or `-f`), e.g.:\n\n```console\n$ id3manager --format toml get \u0448\u043e\u043f\u043e\u043a\u043e\u0434\u0443-E01.mp3 > metadata.toml # get audio metadata as TOML\n```\n\nWhich produces an output like:\n\n```toml\n[[TIT2]]\ntext = \"\u041e\u0431\u0440\u043e\u0431\u043a\u0430 \u043f\u043e\u043c\u0438\u043b\u043e\u043a\"\n\n[[TPE1]]\ntext = \"\u0406\u0433\u043e\u0440, \u0420\u043e\u043c\u0430\u043d\"\n\n[[TRCK]]\ntext = \"14/14\"\n\n[[TALB]]\ntext = \"\u0428\u043e \u043f\u043e \u043a\u043e\u0434\u0443?\"\n\n[[TDRC]]\ntext = \"2022-11-27\"\n\n[[TCON]]\ntext = \"Podcast\"\n\n[[TSSE]]\ntext = \"Lavf59.27.100\"\n\n[[CHAP]]\ntext = \"\u041f\u043e\u0447\u0430\u0442\u043e\u043a\"\ntimestamp = \"00:00:00\"\n```\n\n## Frames\n\nMost commonly used ID3 frames are supported. The complete list of\nsupported/unsupported frames could be found below.\n\n- [x] CHAP\n- [x] CTOC\n- [x] TBPM\n- [x] TBP\n- [x] TCMP\n- [x] TCP\n- [x] TDLY\n- [x] TDY\n- [x] TLEN\n- [x] TLE\n- [x] TORY\n- [x] TOR\n- [x] TSIZ\n- [x] TSI\n- [x] TYER\n- [x] TYE\n- [x] MVIN\n- [x] MVI\n- [x] TPOS\n- [x] TPA\n- [x] TRCK\n- [x] TRK\n- [x] TDEN\n- [x] TDOR\n- [x] TDRC\n- [x] TDRL\n- [x] TDTG\n- [x] TALB\n- [x] TAL\n- [x] TCOM\n- [x] TCM\n- [x] TCON\n- [x] TCO\n- [x] TCOP\n- [x] TCR\n- [x] TDAT\n- [x] TDA\n- [x] TDES\n- [x] TKWD\n- [x] TCAT\n- [x] MVNM\n- [x] MVN\n- [x] GRP1\n- [x] GP1\n- [x] TENC\n- [x] TEN\n- [x] TEXT\n- [x] TXT\n- [x] TFLT\n- [x] TFT\n- [x] TGID\n- [x] TIME\n- [x] TIM\n- [x] TIT1\n- [x] TT1\n- [x] TIT2\n- [x] TT2\n- [x] TIT3\n- [x] TT3\n- [x] TKEY\n- [x] TKE\n- [x] TLAN\n- [x] TLA\n- [x] TMED\n- [x] TMT\n- [x] TMOO\n- [x] TOAL\n- [x] TOT\n- [x] TOFN\n- [x] TOF\n- [x] TOLY\n- [x] TOL\n- [x] TOPE\n- [x] TOA\n- [x] TOWN\n- [x] TPE1\n- [x] TP1\n- [x] TPE2\n- [x] TP2\n- [x] TPE3\n- [x] TP3\n- [x] TPE4\n- [x] TP4\n- [x] TPRO\n- [x] TPUB\n- [x] TPB\n- [x] TRDA\n- [x] TRD\n- [x] TRSN\n- [x] TRSO\n- [x] TSO2\n- [x] TS2\n- [x] TSOA\n- [x] TSA\n- [x] TSOC\n- [x] TSC\n- [x] TSOP\n- [x] TSP\n- [x] TSOT\n- [x] TST\n- [x] TSRC\n- [x] TRC\n- [x] TSSE\n- [x] TSS\n- [x] TSST\n- [x] TXXX\n- [x] TXX\n- [x] COMM\n- [x] COM\n- [x] WCOM\n- [x] WCM\n- [x] WOAR\n- [x] WAR\n- [x] WCOP\n- [x] WCP\n- [x] WFED\n- [x] WOAF\n- [x] WAF\n- [x] WOAS\n- [x] WAS\n- [x] WORS\n- [x] WPAY\n- [x] WPUB\n- [x] WPB\n- [x] WXXX\n- [x] WXX\n- [ ] TIPL\n- [ ] IPLS\n- [ ] IPL\n- [ ] TMCL\n- [ ] MCDI\n- [ ] MCI\n- [ ] ETCO\n- [ ] ETC\n- [ ] MLLT\n- [ ] MLL\n- [ ] SYTC\n- [ ] STC\n- [ ] USLT\n- [ ] ULT\n- [ ] SYLT\n- [ ] SLT\n- [ ] RVA2\n- [ ] EQU2\n- [ ] RVAD\n- [ ] RVA\n- [ ] RVRB\n- [ ] REV\n- [ ] APIC\n- [ ] PIC\n- [ ] PCNT\n- [ ] CNT\n- [ ] PCST\n- [ ] POPM\n- [ ] POP\n- [ ] GEOB\n- [ ] GEO\n- [ ] RBUF\n- [ ] BUF\n- [ ] AENC\n- [ ] CRA\n- [ ] LINK\n- [ ] LNK\n- [ ] POSS\n- [ ] UFID\n- [ ] UFI\n- [ ] USER\n- [ ] OWNE\n- [ ] COMR\n- [ ] ENCR\n- [ ] GRID\n- [ ] PRIV\n- [ ] SIGN\n- [ ] SEEK\n- [ ] ASPI\n- [ ] CRM\n",
"bugtrack_url": null,
"license": "",
"summary": "The ID3 metadata manager for MP3 files.",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://github.com/ikalnytskyi/id3manager#readme",
"Issues": "https://github.com/ikalnytskyi/id3manager/issues",
"Source": "https://github.com/ikalnytskyi/id3manager"
},
"split_keywords": [
"audio",
"id3",
"metadata",
"mp3",
"tags"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d08d8c4a10d97a333fd6fba411b079fd5a5c0e42905ac96f80be113a7c28e1e1",
"md5": "bb4784d94dbca636ca757b394ae82625",
"sha256": "d82437dd3590262179aa9323ace699619137dd21c4e840156e9ed4fa6f775fc5"
},
"downloads": -1,
"filename": "id3manager-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb4784d94dbca636ca757b394ae82625",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 9727,
"upload_time": "2023-06-26T22:28:45",
"upload_time_iso_8601": "2023-06-26T22:28:45.302183Z",
"url": "https://files.pythonhosted.org/packages/d0/8d/8c4a10d97a333fd6fba411b079fd5a5c0e42905ac96f80be113a7c28e1e1/id3manager-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7b6391fa1afc56dc8be1a543964548281b979d8a74825aa7ab2ed5cf6327954a",
"md5": "19663dd0363060cae2589b2882dc3345",
"sha256": "7b5056349f994456900b900bec20928790c44b75ba8e16de49ee7c76061ed1a0"
},
"downloads": -1,
"filename": "id3manager-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "19663dd0363060cae2589b2882dc3345",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 90358,
"upload_time": "2023-06-26T22:28:47",
"upload_time_iso_8601": "2023-06-26T22:28:47.019460Z",
"url": "https://files.pythonhosted.org/packages/7b/63/91fa1afc56dc8be1a543964548281b979d8a74825aa7ab2ed5cf6327954a/id3manager-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-26 22:28:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ikalnytskyi",
"github_project": "id3manager#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "id3manager"
}