https://github.com/holzhaus/triseratops
https://github.com/holzhaus/triseratops
database dj parser rust-library serato tag
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/holzhaus/triseratops
- Owner: Holzhaus
- License: mpl-2.0
- Created: 2021-01-23T19:45:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T03:38:27.000Z (4 months ago)
- Last Synced: 2025-03-18T02:01:43.817Z (3 months ago)
- Topics: database, dj, parser, rust-library, serato, tag
- Language: Rust
- Homepage: https://holzhaus.github.io/triseratops/
- Size: 5.31 MB
- Stars: 15
- Watchers: 2
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# triseratops - The robust, in-depth Serato Parser & Serializer



*triseratops* is library to parse metadata and database files written by the Serato DJ software, written in Rust.
**Note:** This library is currently still under heavy development and might have breaking API changes in the future.
## FAQ
### Is this software affiliated with Serato Ltd. or its related companies?
No, this library has been written independently. All formats have been
[reverse-engineered](https://homepages.ruhr-uni-bochum.de/jan.holthuis/posts/reversing-seratos-geob-tags)
and the parsing code has been implemented from scratch.### Does this library read tag data from MP3/AIFF/MP4/FLAC/Ogg files?
It *parses* the Serato DJ metadata embedded in those files, but it can't read
directly from those file types. You need to use a separately library (e.g.
[`id3`](https://crates.io/crates/id3) for MP3/AIFF) to read the actual tag data
from media files.### What's the history behind this library?
Work on reversing the format and a corresponding parser was started in 2019.
The goal was to integrate such a parser into [Mixxx](https://mixxx.org), a free
and open-source DJ software to reduce vendor lock-in and allow former Serato
DJ users to migrate to Mixxx without losing their cue points, beatgrids, etc.Mixxx currently uses a different implementation (in C++) to parse those tags,
but since it will switch to [aoide](https://gitlab.com/uklotzde/aoide-rs) for
library management at some point in the future, it made sense to write a new
parser in Rust.## License
This software is licensed under the terms of the [Mozilla Public License
2.0](https://www.mozilla.org/en-US/MPL/2.0/). Please also have a look at the
[license FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/).