Skip to content

joeysaladino/seizui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                      /$$                     /$$
                     |__/                    |__/
   /$$$$$$$  /$$$$$$  /$$ /$$$$$$$$ /$$   /$$ /$$
  /$$_____/ /$$__  $$| $$|____ /$$/| $$  | $$| $$
 |  $$$$$$ | $$$$$$$$| $$   /$$$$/ | $$  | $$| $$
  \____  $$| $$_____/| $$  /$$__/  | $$  | $$| $$
  /$$$$$$$/|  $$$$$$$| $$ /$$$$$$$$|  $$$$$$/| $$
 |_______/  \_______/|__/|________/ \______/ |__/

What is it?

Important

First and foremost: it should be noted that this app was built with the assistance of AI tools such as ChatGPT and/or Claude. If you do not like this, please refrain from using the app. Thanks!

Seizui is an automatic music transcoder to make your music library more compact. The goal is to keep the original essence of the files, staying transparent the original quality while being significantly smaller.

In other words, it watches your FLAC library and transcodes everything to a destination into your format of choice.

The supported input formats are:

  • FLAC
  • ALAC/m4a
  • WAV

The supported output formats are:

  • Opus
  • AAC (m4a)
  • mp3 - not yet implemented

Seizui is meant to be a simple tool to help maintain a smaller music library for portable DAP devices. If you just want to load FLACS, you can skip this tool completely. I like to keep alternative formats on my portable DAPs so that I can load more music while still hearing every detail.

How to use it

Pull the source

Clone the git repo.

git clone https://git.saladino.dev/joey/seizui.git

Edit the compose file in your text editor of choice. Make sure to edit the environment and volumes sections.

cd seizui
nvim compose.yaml

Set environment vars

The container is configured using the following environment variables:

Variable Name Required Default Description
SRC_DIR No /music/flac Directory where source FLAC files are stored (in the container).
DST_DIR No /music/opus Directory where transcoded files will be written (in the container).
OUTPUT_FORMAT No opus Output audio format. Supported values: opus, aac, mp3 (future).
BITRATE No 160k Target bitrate for Opus or MP3 CBR mode (e.g. 128k, 160k, 192k). Only used when OUTPUT_FORMAT=opus.
AAC_VBR_QUALITY No 4 VBR quality level for AAC. Scale is 1-5 (1 = lower quality, 5 = higher quality). Only used when OUTPUT_FORMAT=aac.
MP3_VBR_QUALITY No 2 VBR quality level for MP3. Scale is 0-9 (9 = lower quality, 0 = higher quality). Only used when OUTPUT_FORMAT=mp3.
RESCAN_INTERVAL No 300 How often (in seconds) the input directory is scanned for new files.

Map the volumes

Also make sure to set your volume variables appropriately.

volumes:
    # mount your library as read only (hostPath:containerPath:read-only)
    - /mnt/media/music:/source:ro
    # where you want your output files to go (hostPath:containerPath)
    - /mnt/media/transcode/seizui:/transcodes

Build and run

Note

Please note: since we are using ffmpeg with the --enable-nonfree flag, we cannot redistribute the build image. Therefore, we will need to build the container from source every time.

Build the container.

docker compose build --no-cache

Run seizui.

docker compose up -d

Updating seizui

Use the following commands to update the image.

docker compose down
git pull
docker compose build --no-cache
docker compose up -d

About

An automatic music transcoder to make your music library more compact.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors