---
name: shazam-clip
description: Identify any song from an audio file, video file, or YouTube/SoundCloud URL using Shazam's public API (via shazamio — no API key needed). Returns title, artist, album, year, Apple Music + Spotify + YouTube links, and cover art URL. Multi-section mode chops long files into chunks to catch mashups, medleys, or DJ sets. Use when the user asks "what song is this", "shazam this", "ID this track", "what's playing", or sends an audio/video clip and wants to know the source song.
---


# shazam-clip

Drop an audio or video file in, get the song. Uses [`shazamio`](https://github.com/dotX12/ShazamIO) — a clean wrapper over Shazam's public recognize endpoint. No API key, no signup.

## Single track

```bash
python3 ~/.claude/skills/shazam-clip/scripts/identify.py --input clip.mp3
```

## Video file

```bash
python3 ~/.claude/skills/shazam-clip/scripts/identify.py --input movie_scene.mp4
# auto-extracts audio with ffmpeg
```

## URL (YouTube, SoundCloud, etc — anything yt-dlp supports)

```bash
python3 ~/.claude/skills/shazam-clip/scripts/identify.py --input "https://youtu.be/VIDEO_ID"
```

## Multi-section mode (DJ sets / mashups)

```bash
python3 ~/.claude/skills/shazam-clip/scripts/identify.py --input set.mp3 --mode multi --chunk-seconds 30
# slices into 30s chunks, identifies each, dedupes results
```

## Output

Pretty-printed:
```
🎵 Title — Artist (2024)
   Album: ...
   🍎 Apple:   https://music.apple.com/...
   🎧 Spotify: https://open.spotify.com/...
   🎬 YouTube: https://youtube.com/watch?v=...
   🖼  Cover:   https://...
```

Plus a raw JSON dump next to the input: `<input>.shazam.json`.

## Flags

- `--input` — file path or URL
- `--mode` — `single` (default) or `multi`
- `--chunk-seconds` — chunk size for multi mode (default 20)
- `--json` — print raw JSON to stdout instead of pretty

## First-run install

Auto-installs `shazamio` and `yt-dlp`. ffmpeg expected on PATH.
