jcs / id3-go Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mikkyang/id3-go
ID3 library for Go
License: MIT License
This project forked from mikkyang/id3-go
ID3 library for Go
License: MIT License
ffmpeg -i
shows that now with a file that has chapters added with this. It doesn't seem to affect players I tested, but it's worth investigating.
Adding two chapters to an mp3 and diffing the output of exiftool -V3 -l
:
- + [ID3v2_3 directory, 968 bytes]
+ + [ID3v2_3 directory, 1097 bytes]
0000: 54 53 53 45 00 00 00 30 00 00 00 4c 41 4d 45 20 [TSSE...0...LAME ]
0010: 36 34 62 69 74 73 20 76 65 72 73 69 6f 6e 20 33 [64bits version 3]
0020: 2e 39 39 2e 35 20 28 68 74 74 70 3a 2f 2f 6c 61 [.99.5 (http://la]
@@ -54,10 +35,10 @@
0090: 62 00 61 00 67 00 65 00 20 00 50 00 6f 00 64 00 [b.a.g.e. .P.o.d.]
00a0: 63 00 61 00 73 00 74 00 54 59 45 52 00 00 00 0b [c.a.s.t.TYER....]
00b0: 00 00 01 ff fe 32 00 30 00 31 00 37 00 43 4f 4d [.....2.0.1.7.COM]
- 00c0: 4d 00 00 00 2c 00 00 01 58 58 58 00 00 ff fe 68 [M...,...XXX....h]
- 00d0: 00 74 00 74 00 70 00 3a 00 2f 00 2f 00 67 00 61 [.t.t.p.:././.g.a]
- 00e0: 00 72 00 62 00 61 00 67 00 65 00 2e 00 66 00 6d [.r.b.a.g.e...f.m]
- 00f0: 00 2f 00 54 4c 45 4e 00 00 00 08 00 00 00 33 34 [./.TLEN.......34]
+ 00c0: 4d 00 00 00 2c 00 00 01 58 58 58 ff fe 00 00 ff [M...,...XXX.....]
+ 00d0: fe 68 00 74 00 74 00 70 00 3a 00 2f 00 2f 00 67 [.h.t.t.p.:././.g]
+ 00e0: 00 61 00 72 00 62 00 61 00 67 00 65 00 2e 00 66 [.a.r.b.a.g.e...f]
+ 00f0: 00 6d 00 54 4c 45 4e 00 00 00 08 00 00 00 33 34 [.m.TLEN.......34]
0100: 39 32 33 33 36 41 50 49 43 00 00 02 b9 00 00 00 [92336APIC.......]
0110: 69 6d 61 67 65 2f 70 6e 67 00 00 00 89 50 4e 47 [image/png....PNG]
0120: 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 02 00 [........IHDR....]
@@ -102,7 +83,15 @@
0390: 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
03a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
03b0: 00 76 fb 02 22 2e 98 1e 42 f4 83 a5 00 00 00 00 [.v.."...B.......]
- 03c0: 49 45 4e 44 ae 42 60 82 [IEND.B`.]
+ 03c0: 49 45 4e 44 ae 42 60 82 43 48 41 50 00 00 00 26 [IEND.B`.CHAP...&]
+ 03d0: 00 00 63 68 70 30 00 00 00 00 00 00 00 03 e8 ff [..chp0..........]
+ 03e0: ff ff ff ff ff ff ff 54 49 54 32 00 00 00 06 00 [.......TIT2.....]
+ 03f0: 00 00 68 65 6c 6c 6f 00 43 48 41 50 00 00 00 2c [..hello.CHAP...,]
+ 0400: 00 00 63 68 70 31 00 00 00 03 e8 00 35 49 f0 ff [..chp1......5I..]
+ 0410: ff ff ff ff ff ff ff 54 49 54 32 00 00 00 0c 00 [.......TIT2.....]
+ 0420: 00 00 6a 75 73 74 20 61 20 74 65 73 74 00 43 54 [..just a test.CT]
+ 0430: 4f 43 00 00 00 11 00 00 74 6f 63 00 03 02 63 68 [OC......toc...ch]
+ 0440: 70 30 00 63 68 70 31 00 00 [p0.chp1..]
| EncoderSettings = LAME 64bits version 3.99.5 (http://lame.sf.net)
| - Tag 'TSSE' (48 bytes):
| 0014: 00 4c 41 4d 45 20 36 34 62 69 74 73 20 76 65 72 [.LAME 64bits ver]
@@ -122,11 +111,11 @@
| Year = 2017
| - Tag 'TYER' (11 bytes):
| 00bc: 01 ff fe 32 00 30 00 31 00 37 00 [...2.0.1.7.]
- | Comment-xxx = http://garbage.fm/
+ | Comment-xxx = http://garbage.fm
| - Tag 'COMM' (44 bytes):
- | 00d1: 01 58 58 58 00 00 ff fe 68 00 74 00 74 00 70 00 [.XXX....h.t.t.p.]
- | 00e1: 3a 00 2f 00 2f 00 67 00 61 00 72 00 62 00 61 00 [:././.g.a.r.b.a.]
- | 00f1: 67 00 65 00 2e 00 66 00 6d 00 2f 00 [g.e...f.m./.]
+ | 00d1: 01 58 58 58 ff fe 00 00 ff fe 68 00 74 00 74 00 [.XXX......h.t.t.]
+ | 00e1: 70 00 3a 00 2f 00 2f 00 67 00 61 00 72 00 62 00 [p.:././.g.a.r.b.]
+ | 00f1: 61 00 67 00 65 00 2e 00 66 00 6d 00 [a.g.e...f.m.]
| Length = 3492336
| - Tag 'TLEN' (8 bytes):
| 0107: 00 33 34 39 32 33 33 36 [.3492336]
@@ -141,6 +130,20 @@
| 0149: 00 2a 50 4c 54 45 c1 c1 c1 ff ff ff 33 33 33 99 [.*PLTE......333.]
| 0159: 99 99 92 92 92 a0 a0 a0 39 39 39 71 71 71 a4 a4 [........999qqq..]
| [snip 617 bytes]
+ | ID3_CHAP = chp0..........TIT2.hello
+ | - Tag 'CHAP' (38 bytes):
+ | 03dc: 63 68 70 30 00 00 00 00 00 00 00 03 e8 ff ff ff [chp0............]
+ | 03ec: ff ff ff ff ff 54 49 54 32 00 00 00 06 00 00 00 [.....TIT2.......]
+ | 03fc: 68 65 6c 6c 6f 00 [hello.]
+ | ID3_CHAP = chp1..5I.........TIT2.just a test
+ | - Tag 'CHAP' (44 bytes):
+ | 040c: 63 68 70 31 00 00 00 03 e8 00 35 49 f0 ff ff ff [chp1......5I....]
+ | 041c: ff ff ff ff ff 54 49 54 32 00 00 00 0c 00 00 00 [.....TIT2.......]
+ | 042c: 6a 75 73 74 20 61 20 74 65 73 74 00 [just a test.]
+ | ID3_CTOC = toc..chp0chp1
+ | - Tag 'CTOC' (17 bytes):
+ | 0442: 74 6f 63 00 03 02 63 68 70 30 00 63 68 70 31 00 [toc...chp0.chp1.]
+ | 0452: 00 [.]
ID3v1:
+ [BinaryData directory, 128 bytes]
| Title = Garbage Podcast: Episode 40
ffmpeg -i
on the modified file:
[mp3 @ 0x7fb6db000000] Skipping 174 bytes of junk at 1107.
[mp3 @ 0x7fb6db000000] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from '/Users/jcs/Desktop/garbage40.mp3':
Metadata:
encoder : LAME 64bits version 3.99.5 (http://lame.sf.net)
title : Garbage Podcast: Episode 40
artist : Garbage Podcast
TLEN : 3492336
comment : http://garbage.fm
date : 2017
Duration: 00:39:32.42, start: 0.000000, bitrate: 92 kb/s
Chapter #0:0: start 0.000000, end 1.000000
Metadata:
title : hello
Chapter #0:1: start 1.000000, end 3492.336000
Metadata:
title : just a test
Stream #0:0: Audio: mp3, 32000 Hz, stereo, s16p, 92 kb/s
Stream #0:1: Video: png, pal8(pc), 512x512 [SAR 2835:2835 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
Metadata:
comment : Other
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.