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
- 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
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23c392c4d5b4c44b3840f269c0c8a10f3b15ab170286bb15751b34facc0c1f9d
|
|
| MD5 |
0bea5072b6086cd4e44f66eceab24950
|
|
| BLAKE2b-256 |
404099da9e2b915a05fb70138903b0aad637e7e714840e79891096be5829786d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6b9365a0e01b64b63ed21431c047602ccaf58a3646a04647b76153e5e8ca781
|
|
| MD5 |
f5dcce85ce18d51a3252107f4933a867
|
|
| BLAKE2b-256 |
943125542e495e599683712148e291781f0bb54dc78f6783f41f17aef6af6217
|