Skip to main content

Recognize and Visualize Songs in Your CLI

Project description


Pyzam logo Pyzam logo



https://pepy.tech/project/pyzam https://pepy.tech/project/pyzam

Pyzam is a free CLI music recognition tool for audio and mixtapes in Python.

Pyzam usage

Installation

Dependencies

Pyzam requires ffmpeg installed.

Installation

Using uv (recommended):

uv tool run pyzam --speaker

Using pip:

$ pip install pyzam

Using environment.yml with Conda (installs ffmpeg for you):

conda env create -n pyzam --file=environment.yml

conda activate pyzam

Usage

Using uv:

uv tool run pyzam --speaker

Using pip:

# Listen to speaker (5 seconds by default)
pyzam --speaker

# Listen to microphone
pyzam --microphone

# Listen to audio files
pyzam --input audio_file.mp3

# Listen to audio via URL
pyzam --url "https://archive.org/download/09-hold-me-in-your-arms/02%20-%20Never%20Gonna%20Give%20You%20Up.mp3"
# Loop the recognition continously and save the logs as CSV file
pyzam --speaker -d 10 --write --loop

# Listen to mixtapes and save the logs as CSV file
pyzam --input audio_file.mp3 --duration 12 --mixtape

See pyzam --help for more options.

Options

Argument name Description
--input Detects from the given audio input file.
--microphone, -m Listens to the microphone of your device.
--speaker, -s Listens to the speaker of your device (default).
--url, -u Detects from the given URL to an audio file.
--help, -h Show usage, options and exit.
--duration, -d Length of microphone or speaker recording. Max = 12 seconds.
--quiet, -q Supresses the operation messages (i.e. Recording speaker for X seconds...).
--loop, -l Loop the recognition process indefinitely.
--mixtape Detects every -d seconds for a given input file, only works with --input. --write is enabled automatically.
--json, -j Return the whole Shazamio output in JSON.
--write, -w Writes the output of as a CSV file.

Known Limitations

Shazam API Call Limit (Error 429)

Shazam allows up to 20 requests per minute. Hence, a proxy is recommended to speed up recognition when using --mixtape.

12 Second Duration Limit per request

The maximum sample duration that Shazam allows is 12 seconds. Any audio after 12 seconds will not be recieved by Shazam.

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

pyzam-0.13.1.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

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

pyzam-0.13.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file pyzam-0.13.1.tar.gz.

File metadata

  • Download URL: pyzam-0.13.1.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.13

File hashes

Hashes for pyzam-0.13.1.tar.gz
Algorithm Hash digest
SHA256 b9cf083e1a98a35d13a5096894f5ff1e2c02e6793d3359bf079d271a63bf2054
MD5 96763f07078df2ef75da8b3e0520e513
BLAKE2b-256 9058c26dfc5d0e0ab2c3fd47856b66fec6049f8e174f06519cf315d283ff9d0f

See more details on using hashes here.

File details

Details for the file pyzam-0.13.1-py3-none-any.whl.

File metadata

  • Download URL: pyzam-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.13

File hashes

Hashes for pyzam-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e6c6f1e048599322572838d1023630120caee0eb6cde7a565e2fbdc014ad4ab0
MD5 62410dd193cccb44aaef3d8b7371226c
BLAKE2b-256 46fefbeba8de1a09682a8eb922858ce75a0dcc60fe53be87069a2f1d293c96c7

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