musicbrainz_importer

Solid

Look up and add music metadata on MusicBrainz. Use when asked to check if an artist, album, or release exists on MusicBrainz, find MusicBrainz entries linked to Spotify URLs, or add/edit releases, artists, or other entities on MusicBrainz. Triggers on mentions of MusicBrainz, MB, music database, adding releases, music metadata, or linking Spotify to MusicBrainz.

AI & Automation 3,964 stars 1088 forks Updated 2 months ago MIT

Install

View on GitHub

Quality Score: 91/100

Stars 20%
100
Recency 20%
75
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# MusicBrainz ## Browser Setup All browser work uses **Playwright** via a Node.js script. Install once per session: ```bash cd /tmp && npm ls playwright 2>/dev/null || npm install playwright ``` Launch pattern (use in every script): ```javascript import { chromium } from 'playwright'; import { execSync } from 'child_process'; // Detect Playwright's bundled Chromium path dynamically const chromiumPath = process.env.PLAYWRIGHT_CHROMIUM_PATH || execSync('find ~/.cache/ms-playwright -name chrome -path "*/chrome-linux*/chrome" 2>/dev/null | head -1', { encoding: 'utf-8' }).trim() || execSync('find ~/.cache/ms-playwright -name Chromium -path "*/Chromium.app/Contents/MacOS/Chromium" 2>/dev/null | head -1', { encoding: 'utf-8' }).trim(); if (!chromiumPath) throw new Error('Chromium not found. Run: npx playwright install chromium'); const browser = await chromium.launch({ executablePath: chromiumPath, headless: true, args: ['--no-sandbox'] }); const page = await browser.newPage(); ``` ## Architecture: Isolated Steps There are **four operations**. Each is a self-contained Playwright script. Never combine them into one script. Run them sequentially: 1. **Login** — authenticate the browser session 2. **Add Artist** — create a new artist entity 3. **Add Release** — create a release with tracks, metadata, and Spotify link 4. **Upload Cover Art** — attach album artwork to an existing release Between steps, **close the browser** (`await browser.close()`). Each script lau...

Details

Author
openclaw
Repository
openclaw/skills
Created
5 months ago
Last Updated
2 months ago
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category