Giter Club home page Giter Club logo

pineapple-chapter-tool's Introduction

Tool for adding chapter information to audio files.

Heads up! Before this becomes a serious project, the code could be very messy and the program can be pretty buggy.

What's this?

Some people may have a collection of concert music files or audiobooks, which may contain several parts, or say, several chapters, combined as a single audio file. These audio files may not come with chapter marker data that can be useful for skipping around between different chapters of the audio, and for these cases, this tool comes to the rescue!

This tool can be used to add chapter information to audio files. MP3, OGG, and M4A formats are supported. Once the chapter data added to the audio file, you can then use them in audio players [1] and get the benefit of these chapter data.

[1]: Currently, seems only mpv support all these formats mentioned above. VLC have partial support of MP3(ID3v2) chapter frame and I have plan to implement a fix and ensure it's upstreamable (edit: upstream merged my patch and now it's fixed) VLC 4.x development branch now have basic support of MP3(ID3v2) chapter markers. My own music player will also plan to support chapter data in all mentioned formats.

This tool can also be used to export existing chapter markers inside an audio file to some other common-used formats to work with other applications, currently supported formats are: .cue, .ogm.txt (OGG music metadata format plain text), .ytdl.json (json with the same struct as the one saved by youtube-dl)

Technology Details?

  • For MP3 files, the ID3v2 tag will be used, chapter data will be added via the ID3v2 Chapter Frame.
  • For OGG files, Chapter Extension inside Xiph Vorbis Comment will be used.
  • For M4A files, chapters will be saved into a chapter track.

For the players...

mp3 ogg(vorbis/opus) m4a
mpv Yes Yes Yes
VLC (PC) Partial [2] Yes Yes
PotPlayer Yes [3] Yes Yes
iTunes (Windows) No No Playback Support Yes [4]
Movist (macOS) Yes No Playback Support Yes
MPC-HC Yes [5] Yes Yes

[2]: VLC 3.x doesn't support it at all, VLC 4.x doesn't display MP3 chapter markers on timeline, but seems should be fixed before the initial VLC 4.x stable version release.

[3]: PotPlayer require MP3 file have at least one field not be empty in a general ID3v2 tag to display chapter frame correctly.

[4]: iTunes (Windows) doesn't display M4A chapter markers on timeline.

[5]: The original MPC-HC is not, this fork maintained by @clsid2 is supported.

CLA

By sending patches in GitHub Pull Request, Issues, email patch 
set, or any other form to this project, it is assumed that you
are offering the Pineapple Chapter Tools project and the original
project author (Gary Wang) unlimited, non-exclusive right to
reuse, modify, and relicense the code.

This is important because the inability to relicense code has caused devastating problems for other Free Software projects (such as KDE and NASM). Pineapple Chapter Tool will always be available in an OSI approved, DFSG-compatible license. If you wish to specify special license conditions of your contributions, just say so when you send them.

License

The source code of this project is licensed under GNU General Public License v2.0 only license. Individual files may have a different, but compatible license.

pineapple-chapter-tool's People

Contributors

blumia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.