Ogg Opus tags editor
Go to file
2023-02-21 16:02:22 +09:00
src Fix a rare error message in run_single() 2023-02-21 16:02:22 +09:00
t Parse continuation lines in --set-all 2023-02-10 15:21:07 +09:00
.editorconfig Add .editorconfig 2023-01-27 15:54:37 +09:00
.gitignore build the project with cmake 2018-10-30 19:14:34 -04:00
CHANGELOG.md Release 1.7.0 2023-02-13 11:25:37 +09:00
CMakeLists.txt Release 1.7.0 2023-02-13 11:25:37 +09:00
CONTRIBUTING.md Introduce --raw for disabling transcoding 2020-12-26 16:51:36 +01:00
LICENSE update the copyright notice 2018-10-27 20:36:18 -04:00
opustags.1 Release 1.7.0 2023-02-13 11:25:37 +09:00
README.md Upgrade to C++20 2023-01-27 15:37:03 +09:00

opustags

View and edit Ogg Opus comments.

opustags is designed to be fast and as conservative as possible, to the point that if you edit tags then edit them again to their previous values, you should get a bit-perfect copy of the original file. No under-the-cover operation like writing "edited with opustags" or timestamp tagging will ever be performed.

opustags is tag-agnostic: you can write arbitrary key-value tags, and none of them will be treated specially. After all, common tags like TITLE or ARTIST are nothing more than conventions.

It currently has the following limitations:

  • The total size of all tags cannot exceed 64 kB, the maximum size of one Ogg page.
  • Multiplexed streams are not supported.
  • Newlines inside tags are not supported by --set-all.

If you'd like one of these limitations lifted, please do open an issue explaining your use case. Feel free to ask for new features too.

Requirements

  • a POSIX-compliant system,
  • a C++20 compiler,
  • CMake ≥ 3.11,
  • libogg 1.3.3.

The version numbers are indicative, and it's very likely opustags will build and work fine with other versions too, as CMake and libogg are quite mature.

Installing

opustags is a commonplace CMake project.

Here's how to install it in your .local, under your home:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
make
make install

Note that you don't need to install opustags in order to run it, as the executable is standalone.

Documentation

Usage: opustags --help
       opustags [OPTIONS] FILE
       opustags OPTIONS -i FILE...
       opustags OPTIONS FILE -o FILE

Options:
  -h, --help                    print this help
  -o, --output FILE             specify the output file
  -i, --in-place                overwrite the input files
  -y, --overwrite               overwrite the output file if it already exists
  -a, --add FIELD=VALUE         add a comment
  -d, --delete FIELD[=VALUE]    delete previously existing comments
  -D, --delete-all              delete all the previously existing comments
  -s, --set FIELD=VALUE         replace a comment
  -S, --set-all                 import comments from standard input
  -e, --edit                    edit tags interactively in VISUAL/EDITOR
  --raw                         disable encoding conversion

See the man page, opustags.1, for extensive documentation.