Agent skill · Audited from source
Song Recognition Cli With Spotify Enrichment
skill · ECNU-ICALK/AutoSkillLicence not declaredAudited 14 Oct 2026 · source 04e912cff54b
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 04e912cff54b and found no filesystem, network or shell access and no hard-coded secrets. What it does: A Python CLI tool for song recognition (Microphone, Internal Sound, File) with advanced metadata enrichment. It features ACRCloud/Shazam fallback for live inputs and a robust pipeline for file inputs including Spotify…
Cite
Cite this page
ModelsAtlas. “Song Recognition Cli With Spotify Enrichment (ECNU-ICALK/AutoSkill)”. Retrieved 14 Oct 2026. https://modelsatlas.com/skills/ecnu-icalk/song-recognition-cli-with-spotify-enrichment
Trust audit
Audit 0.4.1 · source read 14 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha 04e912cff54b · 14 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- PublisherECNU-ICALK GitHub organizationOwner of the repository this skill is read from
- Source folderECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/song_recognition_cli_with_spotify_enrichmentThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdict04e912cff54bA new audit runs when the source changes
- Repository statusNot archivedLast push 157 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: A Python CLI tool for song recognition (Microphone, Internal Sound, File) with advanced metadata enrichment. It features ACRCloud/Shazam fallback for live inputs and a robust pipeline for file inputs including Spotify…
---
id: "936c7a9e-408b-406c-95b4-f379c389057c"
name: "song_recognition_cli_with_spotify_enrichment"
description: "A Python CLI tool for song recognition (Microphone, Internal Sound, File) with advanced metadata enrichment. It features ACRCloud/Shazam fallback for live inputs and a robust pipeline for file inputs including Spotify metadata fetching, custom ID3 tagging (TXXX frames), and structured renaming."
version: "0.1.3"
tags:
- "song recognition"
- "CLI workflow"
- "audio capture"
- "Spotify API"
- "id3-tagging"
- "Shazam"
- "ACRCloud"
- "metadata enrichment"
triggers:
- "implement song recognition workflow with microphone and internal sound"
- "process audio file with spotify metadata enrichment"
- "create a CLI menu for audio source selection"
- "tag mp3 with custom id3 frames and spotify data"
- "rename mp3 with isrc and index"
- "add fallback logic from ACRCloud to Shazam"
---
# song_recognition_cli_with_spotify_enrichment
A Python CLI tool for song recognition (Microphone, Internal Sound, File) with advanced metadata enrichment. It features ACRCloud/Shazam fallback for live inputs and a robust pipeline for file inputs including Spotify metadata fetching, custom ID3 tagging (TXXX frames), and structured renaming.
## Prompt
# Role & Objective
You are a Python CLI Developer and Audio Processing Expert. Your objective is to create a command-line interface that handles multiple audio input sources, manages configuration securely, and performs advanced post-recognition file management (Spotify metadata enrichment, custom ID3 tagging, and renaming) for file-based inputs.
# Configuration Management
- Implement a `load_config()` function that reads from a `config.json` file.
- The config structure must support both ACRCloud and Spotify:
```json
{
"ACR": {"HOST": "...", "ACCESS_KEY": "...", "ACCESS_SECRET": "..."},
"Spotify": {"CLIENT_ID": "...", "CLIENT_SECRET": "..."}
}
```
- Extract `ACR_HOST`, `ACR_ACCESS_KEY`, `ACR_ACCESS_SECRET`, `SPOTIFY_CLIENT_ID`, and `SPOTIFY_CLIENT_SECRET`.
- Initialize `ACRCloudRecognizer` only if ACR keys are present. If missing, print a message and set to `None`.
- The recognizer config dictionary must include `host`, `access_key`, `access_secret`, and `timeout` (default 10 seconds).
# User Interface (UI)
- Implement a `get_user_choice()` function with specific decoration:
- Header: `"=" * 50` followed by "Welcome to the Song Recognition Service!".
- Separator: `"-" * 50`.
- Input prompt: "Enter your choice (1, 2, or 3) and press Enter: ".
- Feedback: Print a visual "Processing" line (e.g., `"." * 25 + " Processing " + "." * 25`) after input.
# Operational Rules & Constraints
1. **Audio Source Selection:**
- Present a menu with three options:
1: Microphone - Live audio capture
2: Internal Sound - Detect sounds playing internally on the device
3: File - Detect through an internally saved file
- Capture the user's choice for the audio source.
2. **Recognition Service Logic:**
- **If the user selects Option 3 (File):**
- Prompt the user to select the recognition service:
1: Youtube-ACR - Fast and accurate music recognition
2: Shazam - Discover music, artists, and lyrics in seconds
- Execute recognition using the *user-selected* service.
- **If the user selects Option 1 (Microphone) or Option 2 (Internal Sound):**
- Do not prompt for a service selection.
- Attempt recognition using **ACRCloud first**.
- If ACRCloud returns no result or fails, **automatically fallback to Shazam**.
- For Microphone input, capture audio for recognition (do not permanently save unless necessary).
3. **Post-Recognition Processing (File Inputs Only):**
- **Spotify Authentication**: Implement Client Credentials flow using Base64 encoding of `CLIENT_ID:CLIENT_SECRET`.
- **Spotify Search**: Search for the track using the query `title artist:{artist_name}`.
- **Metadata Extraction**: Extract the following fields from the Spotify response using `.get()` with defaults:
- `album_name`, `album_url`, `track_number`, `release_date`
- `isrc`, `label`, `explicit`, `genres`, `author_url`, `spotify_url`
- **ID3 Tagging (Standard)**: Use `eyed3` to set `artist`, `album`, `album_artist`, `title`, and `recording_date`.
- **ID3 Tagging (Custom TXXX)**: Use a helper function to add or update custom text frames.
- The helper function must iterate through existing frames to find a match by description.
- If found, update the text. If not found, create a new `eyed3.id3.frames.UserTextFrame`.
- **CRITICAL**: Do NOT use the `encoding` keyword argument in `UserTextFrame`. Ensure the `text` argument is a string, not a list.
- Required custom tags: "Album URL", "Eurydice" (value "True"), "Compilation" (value "KK"), "Genre", "Author URL", "Label", "Explicit", "ISRC", "Spotify URL".
- **File Renaming**: Rename the file using the format `{index}_{artist}_{album}_{isrc}.mp3`.
- Sanitize strings using `re.sub(r'[/\\:*?"<>|]', '', string)`.
- Use `os.rename` to change the filename.
4. **Output Requirements (Live Inputs):**
- Upon successful recognition for Microphone or Internal Sound, print the song details in the format: `Artist: {artist_name}, Song: {song_title}, Album: {album_name}`.
- If Shazam is used as a fallback and requires additional data (like Album), fetch it (e.g., via Spotify) before printing.
5. **Internal Sound Implementation:**
- For Option 2 (Internal Sound), implement logic to capture system audio. This may require OS-specific configurations (e.g., VB-Audio Cable on Windows, BlackHole on macOS) or virtual device routing.
# Anti-Patterns
- Do not hardcode sensitive API keys in the script; always load from `config.json`.
- Do not proceed with ACRCloud recognition if the recognizer object is `None`.
- Do not omit the specific UI decorations requested (headers, separators, processing text).
- Do not harExcerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 04e912c
git clone https://github.com/ECNU-ICALK/AutoSkill git -C AutoSkill checkout 04e912cff54b
The author documents no install command, so this uses the repository directly. Our verdict covers commit 04e912cff54b only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
04e912cff54b
Similar skills
ECNU-ICALK/AutoSkill
Executes a 1-back test by comparing the current input to the immediately preceding input in a sequence, reporting the prior item and a match indicator.
ECNU-ICALK/AutoSkill
Identifies the critical 20% of a given topic that yields 80% of the results and creates a focused learning plan to master it.
ECNU-ICALK/AutoSkill
Act as a friendly English teacher for A1 students. Correct errors briefly, ask clarifying questions to maintain dialogue, and strictly limit responses to 100 words.
ECNU-ICALK/AutoSkill
运用理性情绪疗法ABC模型,按客观事实→情绪反应→自动想法→合理/不合理区分四步顺序,引导来访者辨析创伤相关歪曲信念,并通过挑战式提问促发认知重评。
ECNU-ICALK/AutoSkill
Generates academic content components (introductions, conclusions, titles, topics) and full expository essays. Includes specialized capabilities for refining research paper titles with specific constraints, emphasis,…
ECNU-ICALK/AutoSkill
Draft or improve emails to professors using simple vocabulary, friendly tone, and straightforward grammar.
Questions about Song Recognition Cli With Spotify Enrichment
What does the Song Recognition Cli With Spotify Enrichment skill do?
Is Song Recognition Cli With Spotify Enrichment safe to install?
What can Song Recognition Cli With Spotify Enrichment access on my machine?
How current is this page?
Sources
- github.com/ECNU-ICALK/AutoSkill/tree/main/SkillBank/ConvSkill/en — the audited source at commit 04e912cff54b and every finding aboveObserved · 14 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Song Recognition Cli With Spotify Enrichment skill do?
- Is Song Recognition Cli With Spotify Enrichment safe to install?
- What can Song Recognition Cli With Spotify Enrichment access on my machine?