Skip to main content

Download, tag, and organize MP3 files from archive.org

Project description

🎧 Music Library BPM Orchestrator

Small CLI tool to download, analyze, tag and organize MP3 music files by BPM.
It integrates with Archive.org and provides a manual BPM tap interface using pygame.


✨ Features

  • 🔎 Search and download music from Archive.org
  • 🎵 Manual BPM tapping interface (keyboard or buttons)
  • 🏷️ Write BPM metadata into MP3 files (ID3 tag)
  • 🗂️ Automatically rename and organize files into BPM ranges
  • 📚 Process local folders of MP3 files
  • ⚡ CLI built with Click

🚀 Installation (local dev)

This project uses Poetry.

poetry install

Run commands inside the virtual environment:

poetry run music-tapper --help

🎛️ CLI Usage

  1. Download music from Archive.org

Supports filters:

  • --text
  • --artist
  • --genres
  • --subjects
  • --year-from
  • --year-to
poetry run music-tapper download \
    --text "swing jazz" \
    --artist "count basie" \
    --year-from 1930 \
    --year-to 1945
  1. Process local folder
poetry run music-tapper from-folder ./my_mp3s

This will:

  • Open BPM tap UI
  • Save BPM to MP3 metadata
  • Rename file to (BPM) Artist - Title.mp3
  • Move it into /library//

🎹 BPM Tap Controls

Inside the UI:

Key / Button Action
SPACE Tap BPM
ENTER Save BPM
ESC Exit
[> ] Play
[||] Stop
[R] Restart track
[>>] Skip track

📁 Output Structure

library/
├── 100-140/
├── 140-180/
├── 180-200/
└── 200-260/

Each file is renamed automatically using metadata.

🧠 Dependencies

  • pygame – playback & UI
  • mutagen – ID3 tagging
  • requests – Archive.org API
  • click – CLI

⚠️ Notes

  • Designed for educational and personal use
  • Be respectful with Archive.org bandwidth (the tool already throttles requests)
  • Metadata quality depends on source files

🛠️ Future Ideas

  • 🌐 Web UI (Flask + React)
  • 🔎 BPM database browser
  • 🤖 Automatic BPM detection
  • 🧾 Export to CSV / JSON

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

music_tapper-0.1.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

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

music_tapper-0.1.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file music_tapper-0.1.0.tar.gz.

File metadata

  • Download URL: music_tapper-0.1.0.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.5 Windows/11

File hashes

Hashes for music_tapper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 23c392c4d5b4c44b3840f269c0c8a10f3b15ab170286bb15751b34facc0c1f9d
MD5 0bea5072b6086cd4e44f66eceab24950
BLAKE2b-256 404099da9e2b915a05fb70138903b0aad637e7e714840e79891096be5829786d

See more details on using hashes here.

File details

Details for the file music_tapper-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: music_tapper-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.5 Windows/11

File hashes

Hashes for music_tapper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6b9365a0e01b64b63ed21431c047602ccaf58a3646a04647b76153e5e8ca781
MD5 f5dcce85ce18d51a3252107f4933a867
BLAKE2b-256 943125542e495e599683712148e291781f0bb54dc78f6783f41f17aef6af6217

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