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

Install from pypi.org or pypi.org in your environment.

To test that it was installed properly run:

music-tapper

🚀 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.2.0.tar.gz (11.4 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.2.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: music_tapper-0.2.0.tar.gz
  • Upload date:
  • Size: 11.4 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.2.0.tar.gz
Algorithm Hash digest
SHA256 f549752acff770aa37bdcedbc210f006094552c8d0d806b150d80fd5ce3b1894
MD5 69254df3514495287bb970dbe8a7404b
BLAKE2b-256 6ef0c606cc0bdbcab40d57612161ef69953daf63ef5ef6fbb15de85803991892

See more details on using hashes here.

File details

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

File metadata

  • Download URL: music_tapper-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c48d5424584ae6b8f0bc63e0c4be3ad905358d2d250ba8783cc2f4144ca9cc54
MD5 cff13119f37d30d7f7dd1c15a00155f0
BLAKE2b-256 f70ce739634e652a22a03416be7931d7da708c19aae1195403c3f07a2f0c3504

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