Skip to main content

Modular audio library management system for playing, managing, and editing music files (requires FFmpeg, GStreamer, rsgain)

Project description

Walrio

Walrio is a modular library/set of files that let you play, manage, and edit music and music-related files. Every file should be usable via the terminal except documentation.

Contributing

For those interested in contributing code/documentation, please check the contribution guidelines. On top of these guidelines, this specific project requires a single comment at the top of each file explaining what it does so that help commands properlyload dynmically.

All current contributors are listed both in the sidebar and (optionally) in the AUTHORS file.

Licensing (USE IN OTHER PROJECTS)

Check out the LICENSE file to see what LICENSE this project uses and how you're allowed to use it. General rule of thumb is attribution (crediting) is required at a minimum.

Star History

Star History Chart

File Structure

Modules

The main folder with all the seperate walrio music modules you can use and walrio.py, the global file that lets you easily run any file without having the CD into each folder. ⚠️ Important: Most processing is done where the command is called in a subfolder called "output_dir". If this is a folder containing any sensitive data please considr renaming it/moving it while doing any file processing.

Addons

Files that are non-essential for playing music but are still very nice to have/relevant for maintaining a music library (converter files, replay gain, move files, etc.). Can require modules from the addons folder itself or the core modules.

Core

The core set of modules that are absolutely essential to playing your music files from your media library. Often required for addons/niche modules to function.

Database

Modules that require a SQLite database (walrio_library.db/database.py from the core section) to function. These provide advanced library management features like playback statistics, smart playlists, and database-powered queues. The database must be created first using the database module.

Niche

Very specific workflow related files or extremely niche functionality. Generally files combining multiple different core and addon modules together into a singular unified workflow or something to connect your music to external programs/hardware.

Installation

Quick Install (pip)

pip install walrio

⚠️ Important: Walrio requires system dependencies that pip cannot install:

  • FFmpeg
  • GStreamer
  • rsgain

After installing via pip, check for missing dependencies:

walrio dependency_checker --verbose

Then install any missing system packages (see System Requirements below).

If you have all the needed dependencies, you can get started using walrio with the help command (walrio --help).

System Requirements

Walrio requires the following non-Python tools to be installed on your system:

  • FFmpeg - Audio/video conversion and processing (also used for album art resizing)
  • GStreamer - Audio playback engine
  • rsgain - ReplayGain 2.0 loudness scanner

Installation by platform:

Fedora:

sudo dnf install gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly gstreamer1-tools ffmpeg rsgain

Ubuntu/Debian:

sudo apt install gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly ffmpeg
# rsgain: See https://github.com/complexlogic/rsgain

Arch Linux:

sudo pacman -S gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly ffmpeg
yay -S rsgain  # or use another AUR helper

macOS:

brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly ffmpeg rsgain

Development Setup

  1. Clone the repository

    git clone https://github.com/TAPSOSS/Walrio.git
    cd Walrio
    
  2. Install system dependencies (see System Requirements above)

  3. Install in editable mode

    # For development (includes testing/formatting tools)
    pip install -e .[dev]
    
    # Or for basic usage only
    pip install -e .
    
  4. Verify dependencies

    walrio dependency_checker --verbose
    
  5. Run Walrio

    walrio --help
    walrio player song.mp3
    

Third-Party Credits

Walrio uses/requires/bundles the following projects (and python):

Non-Python

Python/Pip-Installable

Check the requirements.txt file to see what to install with pip/python in order to use this library.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

walrio-1.3.2.tar.gz (232.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

walrio-1.3.2-py3-none-any.whl (147.5 kB view details)

Uploaded Python 3

File details

Details for the file walrio-1.3.2.tar.gz.

File metadata

  • Download URL: walrio-1.3.2.tar.gz
  • Upload date:
  • Size: 232.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for walrio-1.3.2.tar.gz
Algorithm Hash digest
SHA256 26014e2abc531614608df194c7bda0dde826b2c15269c16693005f75b82c52b1
MD5 a720f34dcab434818c222d65733e1393
BLAKE2b-256 5abca653f279e8ad4661293f433554776f2dffb04feeab7da25d0403813211fc

See more details on using hashes here.

File details

Details for the file walrio-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: walrio-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 147.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for walrio-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 61b879d33e73176388f6aa0135863673bb8c81e73d3d8d4ad2787f1e6d0c7758
MD5 b240ee3e3ed63bbca1ecda84ba3d1eee
BLAKE2b-256 62252dab42547d7545d2bcf69e4927b2e4b787f2987b584ca75bc3945082943f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page