
Qiaomu Suno Master
- 42 installs
- 66 repo stars
- Updated June 7, 2026
- joeseesun/qiaomu-suno-master
Generate AI music from lyrics or descriptions using Suno API v3 with lyric creation and token management.
About
Suno API integration skill for music generation from text prompts. Includes automatic lyric creation, model selection, and token refresh workflows.
- AI lyric generation and Suno V3 music synthesis with auto-download
- Automatic JWT token refresh from Chrome and manual token updates
Qiaomu Suno Master by the numbers
- 42 all-time installs (skills.sh)
- +2 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #916 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joeseesun/qiaomu-suno-master --skill qiaomu-suno-masterAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 42 |
|---|---|
| repo stars | ★ 66 |
| Last updated | June 7, 2026 |
| Repository | joeseesun/qiaomu-suno-master ↗ |
What it does
Generate AI music from lyrics or descriptions using Suno API v3 with lyric creation and token management.
Files
Qiaomu Suno Master
Create commercial-grade Suno lyrics, then use the selected Suno execution lane to generate and optionally download the music. It also includes a local music genre finder so vague moods can become precise Suno style tags.
Suno login state is short-lived. Treat Chrome's logged-in Suno web session as the source of truth, and treat the CLI as the fast path only. If the CLI reports auth_expired, JWT expired, 401, 403, captcha failures, or cannot find a browser session, immediately use the Suno web UI fallback instead of retrying the same CLI request.
Style Tag Selection Contract
When the user asks for Suno style tags, genre combinations, genre discovery, or style sharpening, treat the local genre finder as mandatory evidence, not an optional helper.
1. Read references/genre-selection.md before answering. 2. Run python3 scripts/find_music_genres.py from the skill directory. For style-only requests or broad briefs, run at least three focused queries that sample different axes of the brief: the user's original phrase, one or more adjacent genre families, and one or more production/texture/rhythm angles. A single query is acceptable only when the user gives a very narrow style and asks for minimal output. 3. Build a candidate palette from the database results first. Prefer genre tags that appeared in the finder output or are direct, obvious parents/children of those results. 4. Compose each Suno style string as 1-3 genre tags plus 2-5 vocal, instrument, tempo, production, or mood tags. Do not answer from taste alone, and do not dump a long related-genre list into one prompt. 5. For style-only requests, do not write lyrics or run Suno generation unless the user explicitly asks. Return useful combinations, the best starters, and exclude_styles when helpful. 6. If the finder fails or the database is unavailable, say that clearly and continue with a best-effort fallback instead of implying the tags were database-backed.
Generation Execution Contract
This skill must prefer a deterministic lane over open-ended exploration.
0. Honor explicit lane requests as a hard lock.
- If the user explicitly asks for Computer Use, the whole generation task
stays on the Computer Use lane from form submission through visible link capture and browser download attempts. Do not switch to CLI, CDP, Browser plugin, raw API calls, or captcha-assisted CLI generation to "make progress".
- Treat "全程用 Computer Use", "直接用 Computer use", "用电脑操作", and
follow-up corrections about route mixing as a Computer Use hard lock. Once this lock is active, every Suno-facing action for that request must happen through the visible Suno UI controlled by Computer Use.
- In a Computer Use-locked task, shell commands may prepare lyrics,
manifests, inspect files, move browser-downloaded files, resolve captured share links, and validate assets. They must not submit Suno generation, refresh generation auth, run suno generate, or drive CDP/CLI captcha helpers.
- In a Computer Use-locked task, do not run CDP preflights, launch a
CDP-enabled Chrome, call the Browser plugin, or use download_clips.sh as a hidden fallback. If visible UI download fails, report the blocker with the captured links instead of switching lanes.
- If Computer Use cannot proceed because the user is actively using the same
browser, the page requires login/security/captcha action, or the desktop UI is unavailable, stop at that state and ask for that blocker to be cleared. Do not silently fall back to another generation lane.
- The same lock-in rule applies to any other lane the user explicitly names:
use that lane end to end, or stop and report the blocker.
1. Make the CLI path work first. Use this only when the user did not explicitly request another lane.
- Ensure the installed
sunoCLI exists and runsuno config check. - Refresh auth from the real Chrome Suno session; if refresh fails, run
suno auth --login --quiet.
- Run
scripts/generate_with_suno.shonce with the default captcha-backed
path.
- Retry CLI at most one more time only for the narrow hCaptcha/CDP-launch
failure class, using either --no-captcha or a user-provided --token "$HCAPTCHA_TOKEN". 2. If CLI generation is blocked, Codex controls the browser. Use this only when the task is not locked to a different lane.
- Use the Codex Browser plugin when available. If it is not exposed in the
current session, use Chrome/Computer Use against the logged-in Suno page.
- Open
https://suno.com/create, fill title, lyrics, styles, model, and
options from the prepared local files, click Create, wait for the generated rows, and capture song IDs/links.
- Only ask the user to intervene for actions automation cannot legally or
reliably complete, such as human login, account security checks, or a live captcha challenge. 3. Stop forbidden exploration.
- Do not hand-craft Suno generate POST requests, inject copied browser cookies
into throwaway profiles, replay captured payloads, or repeatedly test captcha variants unless the user explicitly asks to debug Suno itself.
- If the user provides existing Suno song URLs or clip IDs, skip generation
and continue the stable download and LRC validation path.
- If the user asks to upload or publish to Qiaomu Music, delegate that
publishing step to qiaomu-music-publisher; do not implement Qiaomu Music upload inside this skill.
- Never report generation success until real Suno song links or clip IDs have
been captured.
When To Use
Use this skill when the user wants:
- A new song from a theme, article, story, mood, or keywords
- Suno-ready lyrics with sections such as
[Verse],[Chorus], and[Bridge] - Music generated through the local Rust
sunoCLI, with web UI fallback - A completed song file downloaded locally
- Existing Suno clip IDs exported as audio, video/MTV, timed LRC, SRT, clean SRT, or Markdown lyrics
- Music genre/style recommendations before lyric writing or generation
- Timestamped
.lrclyrics for any song that will be uploaded to a music player or published as a playable web track
Do not use this skill for pure music theory, ordinary poetry not intended for Suno, or non-Suno audio editing. Do not use this skill for Qiaomu Music upload execution; use qiaomu-music-publisher after MP3/LRC assets are ready.
Inputs To Resolve
Infer these from the user request when possible:
title: short, memorable song titlelyrics: complete Suno-ready lyrics with structural tagslrc_required: default yes when generating/downloading music for upload, publishing, or a music-player websitestyle_description: comma-separated Suno style tagsexclude_styles: comma-separated styles, instruments, or moods to avoidgenre_candidates: optional recommended genres fromscripts/find_music_genres.pytitle_options: three concise title candidates before choosing the final titlemodel: defaultv5.5vocal: optionalmaleorfemaleoutput_dir: default to~/Documents/Suno/<song-title>/unless the user gives a foldersong_manifest: default to$OUTPUT_DIR/song.manifest.jsongenerate: whether to run Suno immediately; default yes when the user asks to generate music
If the user only asks for lyrics, produce the requested creative output without running suno.
Workflow
1. Analyze the song brief: theme, audience, language, mood, style, vocal, tempo, and any forbidden elements. 2. If style is missing, vague, worth sharpening, or the user specifically asks for style/tag recommendations, follow the Style Tag Selection Contract. 3. Choose 1-3 fitting genre tags plus a small set of vocal, instrument, tempo, and mood tags. Keep style_description focused. 4. For style-only requests, stop after delivering style combinations and any useful exclude_styles; do not continue to lyrics or generation unless asked. 5. Read references/lyric-craft.md and apply the lyric quality rules. 6. Produce:
title_options- selected
title - optional
genre_candidates style_descriptionexclude_styleslyrics
7. Treat Suno-ready lyrics and LRC as separate deliverables:
lyricsis the creative input sent to Suno and may use[Verse],[Chorus],[Bridge], etc..lrcis the timed output fetched after generation from Suno aligned lyrics.- Never upload or publish plain Suno lyrics as music-player synced lyrics.
- Music-player cover art is a separate generated design asset, not the Suno source cover.
8. Save lyrics to $OUTPUT_DIR/lyrics.txt when generating. Prefer a file over shell-quoting long multiline lyrics. Unless the user explicitly gives a folder, $OUTPUT_DIR must be ~/Documents/Suno/<song-title>/. Do not use the current repo/workspace directory as the default output location. For a Computer Use-locked task, this same directory is also the final place for browser-downloaded MP3 files after they are moved out of ~/Downloads. 9. Use the manifest-first workflow for generation, download, LRC validation, and later publishing handoff. Read references/manifest-workflow.md when creating or updating a song manifest:
python3 scripts/run_workflow.py init \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--title "$TITLE" \
--style "$STYLE_DESCRIPTION" \
--exclude "$EXCLUDE_STYLES" \
--lyrics-file "$LYRICS_FILE" \
--output-dir "$OUTPUT_DIR"If the user provides existing Suno clip IDs or song URLs, include them with --ids during init and skip generation. For this existing-clip path, style and lyrics file may be omitted.
For a Computer Use-locked task, use init only to create durable local metadata and then immediately follow references/computer-use-workflow.md. Skip run_workflow.py generate, run_workflow.py download, CDP session checks, CLI auth refresh, CLI generation, and CLI/browser-helper downloads unless the user explicitly approves leaving Computer Use.
10. Before any generation or download step, run the non-destructive preflight:
python3 scripts/suno_doctor.py --output-dir "$OUTPUT_DIR"For a Computer Use-locked task, this is the only preflight allowed by default. Do not run the CDP/Chrome session checks below for that locked task.
Before submitting generation, verify that a real Chrome Suno web session exists:
bash scripts/ensure_suno_chrome_session.sh --timeout 12If no CDP endpoint exists and Chrome is not already running, launch a CDP-enabled Chrome session:
bash scripts/launch_suno_cdp_chrome.shIf Chrome is already running without remote debugging, quit it fully before relaunching with CDP flags, or use --dedicated-profile and log into Suno once there. If Chrome shows a native debugging confirmation, pause for the user to accept it once. Do not assume page-level CDP injection can dismiss native Chrome security UI. Do not keep retrying the CLI against an expired JWT.
11. Before any CLI step, ensure the Rust CLI exists:
bash scripts/ensure_suno_cli.shAuth is handled automatically by both generate_with_suno.sh and download_clips.sh when the CLI accepts Chrome's session. Only call manually for export_suno_assets.py:
suno auth --refresh --quiet 2>/dev/null || suno auth --login --quiet12. Generate/download/LRC default path:
python3 scripts/run_workflow.py generate \
--manifest "$OUTPUT_DIR/song.manifest.json"This wrapper writes suno-meta.env, preserves generate.result.json, extracts clip IDs, downloads MP3s, fetches LRC, validates LRC, updates song.manifest.json, and writes workflow.log.
This default path is forbidden for Computer Use-locked tasks. For those tasks, Computer Use must fill the Suno form, click Create, capture share links, use the visible row menu to choose Download -> MP3 Audio, and only then use shell commands to move the browser-downloaded files into ~/Documents/Suno/<song-title>/.
Use dry-run when preparing or debugging without consuming Suno credits:
python3 scripts/run_workflow.py generate \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--dry-runIf the manifest status becomes generation_blocked, or the wrapper emits GENERATION_BLOCKED, follow references/browser-fallback.md as the Codex browser-generation lane. Do not attempt raw Suno API calls after a blocked generation.
13. Existing-ID download path:
python3 scripts/run_workflow.py download \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--ids "ID1 ID2"For any song that will be uploaded to a music player, a website, or any user-facing playable catalog, LRC is mandatory and run_workflow.py requires it by default. If LRC is pending, do not upload/publish the track yet. Retry later:
python3 scripts/run_workflow.py validate-lrc \
--manifest "$OUTPUT_DIR/song.manifest.json"14. Low-level debug commands:
Keep the separate generate_with_suno.sh, generate_download_lrc.sh, and download_clips.sh commands for debugging, browser-fallback recovery, or partial retries. These commands are not allowed during a Computer Use-locked task unless the user explicitly approves leaving the Computer Use lane.
Generation only, returning JSON with clip IDs:
bash scripts/generate_with_suno.sh --meta-file "$META_FILE" --output-dir "$OUTPUT_DIR"End-to-end shell wrapper:
bash scripts/generate_download_lrc.sh --meta-file "$META_FILE" --output-dir "$OUTPUT_DIR"Download fast path with browser-first downloader:
bash scripts/download_clips.sh --ids "ID1 ID2" --output-dir "$OUTPUT_DIR"For any song that will be uploaded to a music player, a website, or any user-facing playable catalog, LRC is mandatory. Request and validate LRC at download time:
bash scripts/download_clips.sh --ids "ID1 ID2" --output-dir "$OUTPUT_DIR" \
--lyrics --lyrics-format lrc --require-lrcOr pipe directly from generate:
bash scripts/generate_with_suno.sh --meta-file "$META_FILE" --output-dir "$OUTPUT_DIR" \
| bash scripts/download_clips.sh --output-dir "$OUTPUT_DIR" \
--lyrics --lyrics-format lrc --require-lrcIf --require-lrc fails, do not upload/publish the track yet. Retry aligned lyrics after Suno finishes processing:
python3 scripts/export_suno_assets.py ID1 ID2 --format lrc --output "$OUTPUT_DIR"
python3 scripts/validate_lrc.py "$OUTPUT_DIR"download_clips.sh features:
- Waits 5s for CDN propagation before first attempt
- Retries up to 3 times with 10s delay between attempts
- Auto-refreshes auth from Chrome
- Uses Chrome/CDP browser download first when
websocket-clientis available,
otherwise skips that attempt and goes straight to suno download
- Can fetch timestamped
.lrclyrics throughsuno timed-lyrics --require-lrcfails the workflow unless a real timestamped.lrcis present- Accepts IDs via
--idsflag or piped JSON from generate
15. LRC gate before upload/publish:
Before uploading to music.qiaomu.ai or any music player, verify the .lrc file exists and contains real [mm:ss.xx] timestamps:
python3 scripts/validate_lrc.py "$OUTPUT_DIR"Use the validated .lrc file as the track lyrics payload. Do not use the original .txt Suno prompt lyrics unless the destination explicitly asks for unsynced plain lyrics.
16. Publishing handoff:
If the destination is Qiaomu Music (music.qiaomu.ai, qiaomu-music-player-web, "乔木音乐", "上传到乔木音乐", or "发布到乔木音乐"), handoff to qiaomu-music-publisher after MP3 and timestamped LRC are ready:
python3 ~/.agents/skills/qiaomu-music-publisher/scripts/publish_suno_to_qiaomu_music.py \
--ids "ID1 ID2" \
--output-dir "$OUTPUT_DIR"qiaomu-music-publisher owns site-specific login, cover handling, multipart upload, and publication status. Keep this Suno skill focused on creation, download, and LRC validation. Use song.manifest.json as the source of truth for IDs, asset paths, and LRC status even if the publisher still takes explicit CLI arguments.
17. Generic music-player cover gate before upload/publish:
For non-Qiaomu music-player uploads, generate a fresh square album cover with qiaomu-image-generator from the song title, style, and validated lyrics unless the destination explicitly wants the Suno source cover.
Use the album_cover template with:
style:album-mondo-coverby default, ornegative-space-posterfor sparse/ambient/psychological songsaspect_ratio:1:1description: one symbolic visual distilled from the lyrics, with Mondo-style limited palette, single focal point, andno textfilename: a stable slug ending in-cover.png
Minimum generation shape:
{
"template": "album_cover",
"cover": {
"enabled": true,
"filename": "song-slug-cover.png",
"style": "album-mondo-cover",
"aspect_ratio": "1:1",
"description": "1:1 square album cover, no text. ... distilled lyric imagery ..."
},
"defaults": {
"provider": "jimeng",
"style": "album-mondo-cover",
"aspect_ratio": "1:1"
}
}Generate with:
python3 ~/.agents/skills/qiaomu-image-generator/scripts/generate.py "$VISUAL_CONFIG" \
--workers 1 --no-insert --output "$OUTPUT_DIR/cover.result.json"Verify the cover before upload:
file "$OUTPUT_DIR"/*-cover.png
sips -g pixelWidth -g pixelHeight "$OUTPUT_DIR"/*-cover.pngThe cover must be square and must be uploaded as the cover multipart field together with the MP3 and validated LRC.
18. Codex browser generation lane:
Read references/browser-fallback.md and use it when:
- the user explicitly asks for reliable Suno generation
- the CLI auth has expired or is rejected
- captcha automation stalls
- a generated clip is visible in the Suno web list but CLI download fails
- the user explicitly asks to use Computer Use
If the user explicitly asks for Computer Use, the Computer Use lane lock applies to generation and browser download attempts. Do not use CLI/CDP generation or CLI/browser download helpers unless the user explicitly approves leaving that lane.
This is not a passive handoff. Codex should control the browser:
1. Open https://suno.com/create in the logged-in Chrome profile. 2. Switch to Advanced mode and model v5.5 unless the user requested another model. 3. Fill Lyrics, Styles, and Song Title from the local files/meta. 4. Click Create, wait for the two generated rows to appear, and record both song links. 5. When rows become playable, click each row's menu/download controls in the web UI. For non-locked browser fallback only, download_clips.sh --ids ... --browser is allowed if IDs are visible.
If browser automation cannot complete login, captcha, or Create submission because the page requires a human security action, pause at that exact browser state and ask the user to complete only that action. After it is complete, Codex continues capturing IDs, downloading, validating LRC, and handing off any site-specific publishing step to the appropriate publisher skill.
For direct Computer Use generation and download, read references/computer-use-workflow.md. This lane should open Suno Create, submit through the visible web UI, copy share links from the generated rows, resolve share links to clip IDs, download audio through the visible Suno web UI when possible, then use local post-processing only for file organization, timed-lyrics export, LRC validation, and manifest updates. Do not run run_workflow.py generate, run_workflow.py download, suno generate, or CDP/captcha helpers in a Computer Use-locked task unless the user explicitly approves switching lanes.
19. Send to Feishu (only in bridge context with chat_id):
cd "$OUTPUT_DIR"
lark-cli config bind --source lark-channel --identity bot-only
for f in *.mp3; do
lark-cli im +messages-send --as bot --chat-id "$CHAT_ID" --file "./$f"
done20. Report the output directory, manifest path, downloaded file paths, LRC validation status, generated cover path, published track URL, and/or Suno song links.
Never save generated songs, subtitles, videos, or exported lyric files inside the skill directory or incidental current repo. Use ~/Documents/Suno/<song-title>/ by default.
CLI Notes
- The upstream CLI is
paperfoot/suno-cli, installed as thesunocommand. - If
sunois missing, runbash scripts/ensure_suno_cli.shbefore continuing. The script installs from the upstream project, tries Homebrew first, and falls back to Cargo if Homebrew fails. - Verify with
suno --versionafter install. - Prefer
python3 scripts/run_workflow.py generate --manifest "$OUTPUT_DIR/song.manifest.json"for ordinary generation tasks. It wraps generation, download, LRC validation, asset discovery, and status tracking. - Run
python3 scripts/suno_doctor.py --output-dir "$OUTPUT_DIR"before generation to check local prerequisites without spending credits. - Auth is synced from Chrome's logged-in Suno session (
suno auth --refreshorsuno auth --login), but Suno can reject the CLI JWT even when the web UI remains logged in. In that case the web UI is authoritative. - Prefer
bash scripts/generate_with_suno.shfor generation only as the fast path. It auto-refreshes auth and defaults to the captcha-backed submit path, but must not be retried repeatedly after auth/captcha rejection. - CLI retry budget is two total generation attempts: default captcha-backed once, then one targeted retry only for hCaptcha/CDP launch failure with
--no-captchaor a provided--token. - Latest verified path on 2026-05-25:
suno 0.5.7default captcha-backed
generation solved hCaptcha, submitted v5.5, returned two complete IDs, then download_clips.sh --require-lrc downloaded MP3 and validated LRC. Do not add --no-captcha by default.
- IMPORTANT: Do NOT use
--downloadon generate. CDN needs time to propagate. Always use the separatedownload_clips.shafter generation completes. - Use
scripts/download_clips.shfor ordinary CLI/non-locked browser fallback
downloads — it handles retry logic and CDN delay. In Computer Use-locked tasks, attempt browser UI downloads first and do not switch to CLI download without explicit user approval.
- For generated songs that will be uploaded or published through the
ordinary CLI/non-locked fallback path, always add --lyrics --lyrics-format lrc --require-lrc to download_clips.sh.
- For songs uploaded to Qiaomu Music, invoke
qiaomu-music-publisherafter MP3
and LRC are ready. Site-specific login/upload logic belongs there.
- If clip IDs are visible in the web list during a non-locked fallback task,
download_clips.sh --ids "ID1 ID2" --browser is the preferred download retry because it asks Chrome to fetch the audio through the browser pipeline first.
- Use
scripts/export_suno_assets.pywhen the user wants SRT/LRC/timed lyrics, clean MTV subtitles, audio download, or video/MTV download from existing clip IDs. - Use
scripts/validate_lrc.py "$OUTPUT_DIR"before any music-player upload. A file with only[Verse]/[Chorus]markers is plain lyrics, not LRC. - Use
scripts/clean_srt_for_mtv.pyto remove Suno structural markers such as[Verse]and[Chorus]from subtitle files. - If Suno's captcha solver is flaky in a given browser session, fall back to
--no-captchaonly when you have another valid submission path or a manual--token.
Genre Finder
This skill vendors joeseesun/music-genre-finder data in references/genre-finder/.
Use:
python3 scripts/find_music_genres.py "深夜 空灵 梦幻" --limit 5
python3 scripts/find_music_genres.py "raw energetic punk" --limit 5
python3 scripts/find_music_genres.py "世界音乐 鼓 长笛" --jsonFor Suno, convert recommendations into concise style tags. Prefer 1-3 genre tags plus vocal, instrument, tempo, and mood tags. Avoid dumping many related subgenres into one prompt. For style-only or broad recommendation requests, run multiple focused finder queries and synthesize from the returned palette before answering.
Asset Export
For existing clip IDs:
python3 scripts/export_suno_assets.py <clip-id> --format lyrics --clean-srtWithout --output, assets are saved under ~/Documents/Suno/<clip-title>/.
Useful formats:
audio: download MP3/audiovideo: download Suno video/MTV asset when availablejson: save timed lyrics JSONlrc: save music-player lyricssrt: save subtitle filemd: save AI-readable timestamped lyrics Markdownlyrics: shortcut forjson,lrc,srt,mdall: shortcut foraudio,video,json,lrc,srt,md
To retry timed lyrics from existing clip IDs, use the Rust suno CLI export path:
python3 scripts/export_suno_assets.py <clip-id> --format lrc --output "$OUTPUT_DIR"
python3 scripts/export_suno_assets.py <clip-id1> <clip-id2> --format lyrics --output "$OUTPUT_DIR"For MTV:
python3 scripts/export_suno_assets.py <clip-id> --output "$OUTPUT_DIR" --format video,lyrics --clean-srtChrome CDP Auth Assist
This skill vendors a lightweight Chrome DevTools Protocol helper from pasky/chrome-cdp-skill as scripts/cdp.mjs.
Use it only when the user wants to reuse an existing Chrome login or debug Suno browser state. Chrome must have remote debugging enabled. If CDP is unavailable, fall back to suno auth --login or the browser-generation lane. Keep all CDP checks bounded with --timeout; a native Chrome debugging confirmation can otherwise stall automation before page scripts run.
To start a CDP-enabled Chrome session:
bash scripts/launch_suno_cdp_chrome.shUseful environment knobs:
SUNO_CDP_TIMEOUT=12bounds the pre-generation CDP probe.SUNO_SKIP_CHROME_SESSION_CHECK=1skips the pre-generation CDP probe when it
is known to trigger a native Chrome confirmation.
SUNO_CDP_PORT=9222controls the Chrome remote debugging port.
This machine has liaocaoxuezhe/chrome-devtools-auto-allow installed at /Users/joetech/.local/share/chrome-devtools-auto-allow. Its LaunchAgent is com.local.cdp-auto-allow, app path is /Users/joetech/.local/share/chrome-devtools-auto-allow/CDP Auto Allow.app, and logs are written to /tmp/cdp-auto-allow.debug.log. If the log says 不允许辅助访问, the user must enable the app in macOS Accessibility settings.
Known issue: the upstream suno CLI captcha auto-solver may open a piloted Chrome and fail with CDP Runtime.evaluate ws err: Connection reset.... Another common failure is auth_expired even after suno auth --login succeeds. When either happens, switch to references/browser-fallback.md immediately.
Output Style
For lyrics-only requests where the user asks to use this creator prompt, output only Markdown code blocks in this order:
...
style-description-tags
exclude-style-tags
1. ... 2. ... 3. ...
For generated music, keep the final response brief:
- mention that generation completed or where it stopped
- include the output folder
- include the next command only if the user needs to authenticate or retry
interface:
display_name: "Qiaomu Suno Master"
short_description: "Recommend genres, write Suno-ready lyrics, generate songs, and track MP3/LRC assets through a manifest-first Suno workflow"
default_prompt: "Use $qiaomu-suno-master to recommend fitting Suno style tags, write polished lyrics from my idea, then create a song manifest, generate, download, and validate timestamped LRC for the song with the local suno CLI."
compatibility:
canonical_format: "agent-skills"
adapter_targets:
- "openai"
- "claude"
- "generic"
activation:
mode: "explicit_or_description"
paths: []
execution:
context: "inline"
shell: "bash"
trust:
source_tier: "local"
remote_inline_execution: "forbid"
remote_metadata_policy: "allow-metadata-only"
degradation:
openai: "Use the SKILL.md workflow and shell script when local shell access is available."
claude: "Use the SKILL.md workflow; run the local suno CLI only with user-approved local execution."
generic: "Generate title, tags, and lyrics even when CLI execution is unavailable."
summary: "Suno song creation from genre recommendation and lyric writing to generated audio plus validated timestamped LRC, tracked through a durable song manifest using local Rust suno CLI."
inputs:
- name: brief
type: string
required: true
description: "Song idea, story, article, keywords, mood, or existing lyric draft."
- name: output_dir
type: path
required: false
description: "Directory where generated songs should be downloaded. Defaults to ~/Documents/Suno/<song-title>/; do not use the current repo/workspace unless explicitly requested."
- name: song_manifest
type: path
required: false
description: "Durable song manifest JSON used to track prompt metadata, clip IDs, assets, and LRC validation."
- name: style_hint
type: string
required: false
description: "Optional genre, mood, scene, or sonic keywords used to find style candidates."
- name: generate
type: boolean
required: false
default: true
description: "Whether to run suno generate after writing lyrics."
outputs:
- name: genre_candidates
type: list
description: "Recommended music genres and Suno tags when style needs to be selected or sharpened."
- name: title
type: string
description: "Selected song title."
- name: title_options
type: list
description: "Three creative title options."
- name: style_description
type: string
description: "Comma-separated Suno style tags."
- name: exclude_styles
type: string
description: "Comma-separated styles, instruments, or moods to avoid."
- name: lyrics
type: markdown
description: "Suno-ready lyrics with section markers."
- name: files
type: list
description: "Generated, downloaded, subtitle, timed LRC, lyric, or video files."
- name: song_manifest
type: path
description: "Updated manifest containing generation status, clip IDs, file paths, and validation results."
requires:
bins:
- suno
- node
side_effects:
- "May install the upstream paperfoot/suno-cli executable as `suno` when missing."
- "May connect to a local Chrome session through CDP when the user wants to reuse browser login."
- "May authenticate through Suno with `suno auth --login`."
- "May create lyric temp files and downloaded audio files."
- "May download Suno video/MTV files and timed lyric/subtitle files."
- "May operate the logged-in Suno web UI through Computer Use when CLI/CDP generation stalls."
exclusions:
- "General poetry not intended for Suno."
- "Audio/video editing after generation."
- "Non-Suno music APIs."
positive:
- "帮我用 Suno 写一首关于深夜写代码的歌并生成音乐"
- "/suno 创作一首赛博朋克风格的中文歌"
- "把这篇文章改成适合 Suno 的歌词,生成 mp3"
- "写一首 indie pop,女声,关于雨夜散步"
- "帮我把这个 Suno clip ID 的 SRT 字幕和 LRC 歌词导出来"
- "下载这个 Suno 歌曲的 MTV 视频并清理字幕"
- "我不知道用什么风格,先推荐几个适合深夜空灵的 Suno tags 再写歌"
- "用 qiaomu-suno-master 帮我选世界音乐风格,然后生成一首歌"
negative:
- "解释一下五声音阶是什么"
- "帮我剪辑这段音频"
- "写一首不需要生成音乐的古体诗"
- "推荐几个 Spotify 歌单"
MIT License
Copyright (c) 2026 Joe / Qiaomu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
"name": "qiaomu-suno-master",
"version": "1.1.1",
"owner": "Joe / Qiaomu",
"updated_at": "2026-06-07",
"status": "active",
"maturity_tier": "scaffold",
"lifecycle_stage": "personal",
"context_budget_tier": "scaffold",
"review_cadence": "as-needed",
"category": "music-generation",
"complexity_tier": "simple",
"target_platforms": [
"openai",
"claude",
"generic",
"agent-skills-compatible"
],
"factory_components": [
"references",
"scripts"
],
"requires": {
"bins": [
"suno",
"node"
]
}
}
qiaomu-suno-master
把一句想法变成 Suno 可唱歌词、风格提示词,并直接生成下载歌曲。
Turn a rough song idea into Suno-ready lyrics, style prompts, and downloaded music.
[中文](#中文) | [English](#english)
---
<a name="中文"></a>
中文
你想让 AI 写歌,最麻烦的通常不是一句歌词,而是整套可用于 Suno 的结构:Hook、段落标记、风格标签、排除风格、登录态、下载路径。
qiaomu-suno-master 把这些揉成一个 Agent Skill:先按专业歌曲结构写歌词,再调用本地 Rust suno CLI 生成并下载音乐。
你会得到什么
- Suno-ready 歌词:
[Verse]、[Chorus]、[Bridge]、[Hook]等结构完整 - Style Description:例如
punk-rock, male-vocals, distorted-guitars, fast-tempo - Exclude Styles:避免不想要的风格,例如
auto-tune, trap, overly-polished - 三个歌名候选
- 不确定风格时,可先从 5000+ 音乐流派中推荐适合的 Suno tags
- 可选:直接生成并下载 MP3
- 面向音乐播放器/网站发布时,必须同时下载并校验带时间戳的
.lrc - Manifest-first 工作流:用
song.manifest.json记录标题、风格、clip IDs、MP3、LRC、封面和状态 suno_doctor.py预检本地 CLI、Node、Chrome/CDP 辅助和输出目录- 从已有 Suno Clip ID 导出 MP3、视频/MTV、LRC、SRT、干净字幕、Markdown 歌词
- Chrome CDP 辅助:复用已登录 Chrome/Suno 会话
- Computer Use 网页生成路径:当 CLI/CDP 卡住时,直接操作 Suno Web UI,复制分享链接,再下载 MP3/LRC
安装
npx skills add joeseesun/qiaomu-suno-master验证:
ls ~/.agents/skills/qiaomu-suno-master前置条件
- [ ] 已安装 Rust
sunoCLI,或允许 skill 自动安装
cargo install suno --locked
suno --version- [ ] 已登录 Suno
suno auth --login
suno auth- [ ] 如果要复用 Chrome 登录态,Chrome 已开启远程调试
打开:
chrome://inspect/#remote-debugging勾选 Allow remote debugging for this browser instance。
自然语言用法
用 qiaomu-suno-master 写一首朋克歌,主题是把音量打满把这篇文章改成一首中文民谣,并生成 Suno 歌曲生成一首世界音乐,女声男声合唱,鼓和长笛,下载到默认 Suno 文稿目录我只有“深夜、空灵、梦幻”这几个感觉,先帮我选几个 Suno 风格再写歌选择音乐风格
Skill 内置了 `joeseesun/music-genre-finder` 的风格数据库,可在写歌前把模糊情绪转成更精确的 Suno 风格标签:
~/.agents/skills/qiaomu-suno-master/scripts/find_music_genres.py \
"深夜 空灵 梦幻" \
--limit 5也可以输出 JSON,方便后续自动生成 tags:
~/.agents/skills/qiaomu-suno-master/scripts/find_music_genres.py \
"raw energetic punk" \
--json推荐做法:选 1-3 个主风格,再加人声、乐器、速度和情绪标签,例如:
garage-punk, punk-rock, raw-male-vocals, distorted-guitars, fast-tempo, anthemicCLI 生成
推荐先创建 manifest,再让统一工作流生成、下载、拉取 LRC 并回写状态:
python3 ~/.agents/skills/qiaomu-suno-master/scripts/run_workflow.py init \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--title "把音量打满" \
--style "punk-rock, male-vocals, distorted-guitars, fast-tempo" \
--exclude "auto-tune, trap, overly-polished" \
--lyrics-file ./lyrics.txt \
--output-dir "$OUTPUT_DIR"
python3 ~/.agents/skills/qiaomu-suno-master/scripts/suno_doctor.py \
--output-dir "$OUTPUT_DIR"
python3 ~/.agents/skills/qiaomu-suno-master/scripts/run_workflow.py generate \
--manifest "$OUTPUT_DIR/song.manifest.json"Dry-run 不会消耗 Suno 额度:
python3 ~/.agents/skills/qiaomu-suno-master/scripts/run_workflow.py generate \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--dry-run底层封装脚本仍可用于调试:
~/.agents/skills/qiaomu-suno-master/scripts/generate_with_suno.sh \
--title "把音量打满" \
--tags "punk-rock, male-vocals, distorted-guitars, fast-tempo" \
--exclude "auto-tune, trap, overly-polished" \
--lyrics-file ./lyrics.txt默认输出到:
~/Documents/Suno/<歌曲名>/除非你明确指定 --output-dir,不要把歌曲、字幕、LRC 或视频保存到当前项目目录。Agent 的当前工作目录通常只是执行上下文,不应该被当成音乐素材库。
默认会走 --captcha,优先使用上游 suno CLI 的 hCaptcha CDP solver 把请求真正提交到 Suno。
生成后下载到音乐播放器或网站发布目录时,不要只保存普通歌词。必须请求并校验 LRC:
~/.agents/skills/qiaomu-suno-master/scripts/download_clips.sh \
--ids "<clip-id>" \
--output-dir ./output \
--lyrics \
--lyrics-format lrc \
--require-lrc如果 --require-lrc 失败,说明 Suno 还没有返回真实对齐歌词,或下载到的是普通歌词。此时不要上传发布,稍后重试:
~/.agents/skills/qiaomu-suno-master/scripts/export_suno_assets.py \
<clip-id> \
--format lrc \
--output ./output
~/.agents/skills/qiaomu-suno-master/scripts/validate_lrc.py ./output如果这条路径在你的 Chrome 会话里报:
CDP Runtime.evaluate ws err: Connection reset...如果你的会话里 captcha solver 不稳定,或你明确要跳过它:
~/.agents/skills/qiaomu-suno-master/scripts/generate_with_suno.sh ... --no-captcha或传入 token:
~/.agents/skills/qiaomu-suno-master/scripts/generate_with_suno.sh ... --token "$HCAPTCHA_TOKEN"Computer Use 网页生成路径
当 CLI 提交卡住、CDP 确认弹窗不稳定,或你明确要求使用 Computer Use 时,走网页路径:
1. 打开 https://suno.com/create 2. 选择 Advanced 模式和目标模型 3. 填入 lyrics.txt、style tags、标题 4. 点击 Create,等待两条新歌曲出现在列表顶部 5. 逐条点击 Share,复制 Suno 分享链接 6. 解析分享链接里的真实 clip ID 7. 运行 manifest 下载流程:
python3 ~/.agents/skills/qiaomu-suno-master/scripts/run_workflow.py download \
--manifest "$HOME/Documents/Suno/<歌曲名>/song.manifest.json" \
--ids "ID1 ID2"完整操作细节见:
references/computer-use-workflow.md导出 SRT/LRC/MTV 素材
如果你已经有 Suno clip ID,可以直接导出字幕和素材:
~/.agents/skills/qiaomu-suno-master/scripts/export_suno_assets.py \
<clip-id> \
--format lyrics \
--clean-srt导出音频 + 视频/MTV + 全部歌词格式:
~/.agents/skills/qiaomu-suno-master/scripts/export_suno_assets.py \
<clip-id> \
--format all \
--clean-srt默认会按歌曲标题创建目录:
~/Documents/Suno/<歌曲名>/格式说明:
audio:下载音频video:下载 Suno 视频/MTV 文件(如果该 clip 可用)json:保存 timed lyrics 原始 JSONlrc:音乐播放器歌词srt:字幕文件md:带时间戳 Markdown 歌词,方便 AI/剪辑流程读取lyrics:等于json,lrc,srt,mdall:等于audio,video,json,lrc,srt,md
清理已有 SRT:
~/.agents/skills/qiaomu-suno-master/scripts/clean_srt_for_mtv.py input.srtTroubleshooting
| 问题 | 解决 |
|---|---|
suno: command not found | 运行 cargo install suno --locked,或执行 scripts/ensure_suno_cli.sh |
JWT expired | 运行 suno auth 或 suno auth --login |
CDP Runtime.evaluate ws err | 显式加 --no-captcha,或改用手动 --token |
| Chrome 反复弹调试确认 | 复用同一个 Suno 标签页,避免反复新开 tab;Chrome CDP 权限很高,这是安全确认 |
| 找不到 Suno 标签页 | 运行 scripts/ensure_suno_chrome_session.sh |
| 需要 SRT/MTV | 用 scripts/export_suno_assets.py <clip-id> --format all --clean-srt |
| LRC 对不上或只有段落标记 | 用 download_clips.sh --lyrics --lyrics-format lrc --require-lrc 重新获取;发布前必须跑 scripts/validate_lrc.py |
致谢
- `paperfoot/suno-cli`:本 skill 使用的 Rust Suno CLI
- `pasky/chrome-cdp-skill`:本 skill vendored 的轻量 CDP helper
- `joeseesun/suno-music-creator`:歌词创作提示词来源之一
- `joeseesun/music-genre-finder`:音乐流派检索与推荐数据来源
风险和限制
- 生成音乐会消耗 Suno 账号额度。
- Chrome CDP 可以控制本地浏览器标签页,只在可信本机环境使用。
- Suno API 和网页流程可能变化;如失败,先运行
suno update --check和suno update。 - 视频/MTV 下载取决于 Suno 是否为该 clip 提供 video asset。
- 风格推荐来自流派数据库与关键词匹配,最终仍需按歌曲主题做审美取舍。
---
<a name="english"></a>
English
qiaomu-suno-master is an Agent Skill for turning a song brief into Suno-ready lyrics, style prompts, exclude tags, and generated audio through the local Rust suno CLI.
Install
npx skills add joeseesun/qiaomu-suno-masterRequirements
- [ ] Install the upstream
sunoCLI:
cargo install suno --locked
suno --version- [ ] Authenticate Suno:
suno auth --login
suno auth- [ ] Optional Chrome CDP login reuse:
Open chrome://inspect/#remote-debugging and enable Allow remote debugging for this browser instance.
Example Prompts
Use qiaomu-suno-master to write a punk song about turning the volume all the way up.Turn this article into a Chinese folk song and generate it with Suno.Generate a world music track with duet vocals, hand drums, flute, and cinematic energy.I only know the mood: late-night, ethereal, dreamy. Pick a few Suno styles first, then write the song.Genre Finder
The skill includes genre data from `joeseesun/music-genre-finder`. Use it before writing lyrics when the style is vague:
~/.agents/skills/qiaomu-suno-master/scripts/find_music_genres.py \
"late night ethereal dreamy" \
--limit 5CLI Wrapper
~/.agents/skills/qiaomu-suno-master/scripts/generate_with_suno.sh \
--title "Turn It Up" \
--tags "punk-rock, male-vocals, distorted-guitars, fast-tempo" \
--exclude "auto-tune, trap, overly-polished" \
--lyrics-file ./lyrics.txtThe wrapper defaults to --no-captcha because the upstream CDP hCaptcha solver can be flaky in some Chrome sessions.
Default output:
~/Documents/Suno/<song-title>/When the generated song will be uploaded to a music player or website, plain Suno prompt lyrics are not enough. Download and validate timestamped LRC:
~/.agents/skills/qiaomu-suno-master/scripts/download_clips.sh \
--ids "<clip-id>" \
--output-dir ./output \
--lyrics \
--lyrics-format lrc \
--require-lrcIf the gate fails, retry aligned lyrics later and validate before publishing:
~/.agents/skills/qiaomu-suno-master/scripts/export_suno_assets.py \
<clip-id> \
--format lrc \
--output ./output
~/.agents/skills/qiaomu-suno-master/scripts/validate_lrc.py ./outputFor music.qiaomu.ai, do not publish Suno's original cover. Generate a fresh 1:1 album cover from the validated lyrics with qiaomu-image-generator:
python3 ~/.agents/skills/qiaomu-image-generator/scripts/generate.py \
./cover.visual_config.json \
--workers 1 \
--no-insert \
--output ./cover.result.jsonUse the album_cover template, album-mondo-cover style, a stable *-cover.png filename, and a lyric-derived symbolic visual description with no text. Upload that PNG as the track cover.
Export Assets
~/.agents/skills/qiaomu-suno-master/scripts/export_suno_assets.py \
<clip-id> \
--format all \
--clean-srtThis can export audio, video/MTV assets, timed lyrics JSON, LRC, SRT, clean SRT, and Markdown lyrics. Without --output, exported files are saved to ~/Documents/Suno/<clip-title>/.
Credits
Suno Codex Browser Generation
Use this path whenever the CLI cannot generate reliably after the allowed CLI repair attempts. Suno's web session often remains valid after the CLI JWT is rejected, so the browser UI is the authoritative generation lane.
Trigger Conditions
Switch to browser fallback immediately if any of these appear:
auth_expiredJWT expiredJWT expired or rejected by Suno401or403schema_drifttoken_validation_failed"status": "error"in CLI JSON outputNo Suno session found- captcha never loads or never completes
- generated songs are visible on suno.com but CLI download fails
Before switching here, make one real CLI repair pass: verify suno config check, sync auth from Chrome with suno auth --refresh or suno auth --login --quiet, then run the wrapper. A second CLI attempt is allowed only for a narrow hCaptcha/CDP launch failure, using --no-captcha or a user-provided token.
Do not keep retrying suno generate after these errors unless the user provides a new token or explicitly asks to debug the CLI. Do not explore raw Suno generation endpoints, copied cookies, throwaway Chrome profiles, or captured web payloads during ordinary song generation work.
Browser Control Policy
This is an agent-controlled browser lane, not a user handoff:
- Prefer the Codex Browser plugin when available.
- If the Browser plugin is not exposed, use Chrome or Computer Use to operate
the logged-in Suno page.
- If the user explicitly asks for Computer Use, or Chrome/CDP/CLI has just
stalled, follow references/computer-use-workflow.md.
- If the user explicitly asked for Computer Use, treat that document's Lane Lock
as authoritative: do not leave Computer Use for generation or download without the user's explicit approval.
- If using Chrome CDP, first run
scripts/ensure_suno_chrome_session.sh --timeout 12. If no endpoint is available and Chrome is not already running, run scripts/launch_suno_cdp_chrome.sh. If Chrome shows a native debugging confirmation, pause for the user to accept it once instead of trying to dismiss native Chrome UI through page-level JavaScript.
- Codex must fill the form, click Create, monitor generation, extract IDs/links,
and continue download/publish work.
- Ask the user to act only when the page requires a human security step that the
agent cannot complete, such as login confirmation, account challenge, or a live captcha.
- Existing-ID path: if the request already includes Suno IDs or song URLs,
skip generation entirely and only perform export/download/publish steps.
Generation Procedure
1. Open https://suno.com/create using the Codex Browser plugin if available; otherwise use Chrome/Computer Use. 2. Confirm the left sidebar shows the logged-in Suno account and plan, not Log in or Join Suno. 3. Select Advanced mode. 4. Confirm model v5.5 unless the user requested another model. 5. Fill the Lyrics textarea from LYRICS_FILE. 6. Fill Styles with:
STYLE_DESCRIPTION, -excluded style one, -excluded style two7. Expand More Options and fill Song Title with TITLE. 8. Click Create. 9. Wait until two new rows with the title appear in the workspace list. 10. Record both https://suno.com/song/<id> links from the rows.
If any step is blocked by login, captcha, or UI controls that require a human security action, stop at that browser state and ask the user to complete only that step. Then continue this procedure. Keep these details available:
- the exact prepared title
- the style string
- the lyrics file path
- the output directory
Download Procedure
If the task is Computer Use-locked, use the Computer Use download procedure in references/computer-use-workflow.md instead of the order below.
Prefer this order:
1. If song links or clip IDs are visible, run:
bash scripts/download_clips.sh --ids "ID1 ID2" --output-dir "$OUTPUT_DIR" --browser2. If the script cannot connect to CDP but the Suno rows are visible, use the web UI controls directly:
- open the row's More options menu
- choose Download
- choose Audio / MP3 when offered
- save or move the browser-downloaded file to
OUTPUT_DIR
3. If neither path downloads, leave the Suno song links in the final response and state that browser download controls were unavailable.
Agent Behavior
- Keep local lyric/meta files even when using the browser UI.
- Report both generated versions because Suno usually creates two clips per
Create click.
- If the user asked for "generate music", web UI submission counts as successful
generation once the new song rows and links appear.
- If MP3 files were not downloaded, say that clearly and include the song links.
- Never claim generation success from a CLI JSON error, a visible form, or a
partially filled browser page. Success requires captured Suno song links or clip IDs.
Chrome CDP Auth Assist
This skill includes scripts/cdp.mjs from pasky/chrome-cdp-skill.
Purpose:
- Reuse a Chrome profile that is already logged into Suno.
- Open or inspect
https://suno.com/createthrough Chrome DevTools Protocol. - Reduce repeated login prompts caused by detached browser sessions.
Limits:
- CDP does not magically bypass authentication.
- Chrome must expose a DevTools endpoint through remote debugging.
- Chrome's native "Allow debugging" confirmation may appear before page-level
CDP commands can run. Do not rely on Browser.setPermission or injected page JavaScript to dismiss that native Chrome UI. Keep CDP probes timed and fall back cleanly when the user must accept it once.
- The upstream
sunoCLI still owns generation and token refresh. - If Suno invalidates a session, the user still needs to log in again.
- The upstream hCaptcha auto-solver may fail independently of login state; prefer
--no-captchawhen auth is already valid.
Recommended flow:
1. Run scripts/ensure_suno_chrome_session.sh --timeout 12. 2. If it finds a Suno tab, use that logged-in profile. 3. If no CDP endpoint exists and Chrome is not already running, launch Chrome with scripts/launch_suno_cdp_chrome.sh. 4. If it opens a new Suno tab, ask the user to log in once. 5. Run suno auth or suno generate again.
Generation recommendation:
scripts/generate_with_suno.sh ... --no-captchaUse --captcha only when you want the upstream solver, or --token when you have an hCaptcha token.
Manual setup hints:
scripts/launch_suno_cdp_chrome.sh
scripts/ensure_suno_chrome_session.sh --launch --timeout 12If Chrome is already running without remote debugging, macOS usually ignores new --remote-debugging-port flags for that app instance. Fully quit Chrome and relaunch it with scripts/launch_suno_cdp_chrome.sh, or use an isolated profile:
scripts/launch_suno_cdp_chrome.sh --dedicated-profileEnvironment knobs:
SUNO_CDP_TIMEOUT=12: seconds each CDP probe may wait.SUNO_SKIP_CHROME_SESSION_CHECK=1: skip the pre-generation CDP probe when it
is known to trigger an unavoidable native confirmation.
SUNO_CDP_PORT=9222: CDP port for the launcher.
Installed auto-allow helper on this machine:
- Repo:
/Users/joetech/.local/share/chrome-devtools-auto-allow - App:
/Users/joetech/.local/share/chrome-devtools-auto-allow/CDP Auto Allow.app - Bundle ID:
com.local.CDPAutoAllow - LaunchAgent:
~/Library/LaunchAgents/com.local.cdp-auto-allow.plist - Log:
/tmp/cdp-auto-allow.debug.log
If logs contain 不允许辅助访问 or not allowed assistive access, enable the app in System Settings > Privacy & Security > Accessibility. The installer cannot grant this TCC permission programmatically.
Security:
- CDP can inspect and control tabs.
- Use only for local, user-approved Suno browser state.
- Do not export cookies or tokens into shared logs.
Suno Computer Use Workflow
Use this lane when the CLI submit path hangs, the Codex Browser plugin is not available, Chrome CDP prompts are unreliable, or the user explicitly asks to use Computer Use.
Computer Use owns browser clicks, visible-page state, generation submission, link capture, and visible download attempts. The local manifest workflow still owns durable metadata, file organization, LRC validation, and later publishing handoff.
This workflow is intentionally boring: once selected, every Suno-facing action stays in the same visible browser route. Do not "help" by mixing in CDP, CLI, a browser plugin, or raw requests after the user asked for Computer Use.
Lane Lock
If the user explicitly asks to use Computer Use, this workflow is a hard lock for the whole task.
- Do not switch to CLI generation, Chrome CDP, the Codex Browser plugin, raw
Suno API calls, or captcha-assisted CLI generation after selecting this lane.
- Do not run
suno generate,run_workflow.py generate,
generate_with_suno.sh, or CDP captcha helpers during a Computer Use-locked generation task.
- Shell commands are allowed only for local preparation and post-processing:
reading lyrics/manifests, copying prepared text to the clipboard, moving files downloaded by the browser UI, resolving share links after Computer Use copied them, exporting timed lyrics for captured IDs, validating LRC, and updating the manifest.
- Shell commands must not click, submit, generate, refresh Suno auth, solve
captcha, fetch hidden audio URLs, or download MP3s directly in a locked task. The MP3 source must be Chrome's visible Suno UI download.
- If Chrome is being actively used by the user, Computer Use cannot acquire the
app, Suno requires login/security/captcha action, or a visible download control is unavailable, stop and report that blocker. Do not silently fall back to another lane.
- A partially completed non-Computer-Use attempt does not satisfy a
Computer Use-locked request. Treat it as out of scope, clean up any stale background process, and restart the requested item through Computer Use.
Output Directory Policy
Unless the user explicitly gives a folder, always create and use:
~/Documents/Suno/<song-title>/Do not use the current repo/workspace directory as the default output location. The current working directory is often incidental to the agent session and is not a music asset library.
Preparation
1. Finalize TITLE, STYLE_DESCRIPTION, EXCLUDE_STYLES, and LYRICS_FILE. 2. If no manifest exists, create it with the default output directory:
OUTPUT_DIR="$HOME/Documents/Suno/$TITLE"
python3 scripts/run_workflow.py init \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--title "$TITLE" \
--style "$STYLE_DESCRIPTION" \
--exclude "$EXCLUDE_STYLES" \
--lyrics-file "$LYRICS_FILE" \
--output-dir "$OUTPUT_DIR"3. Run only the non-destructive local preflight:
python3 scripts/suno_doctor.py --output-dir "$OUTPUT_DIR"Do not run ensure_suno_chrome_session.sh, launch_suno_cdp_chrome.sh, suno auth, run_workflow.py generate, run_workflow.py download, generate_with_suno.sh, download_clips.sh, or any CDP helper unless the user explicitly approves leaving Computer Use.
Computer Use Generation
1. Call get_app_state for Google Chrome before any Computer Use action. 2. Open https://suno.com/create. 3. Confirm the visible account is logged in and has credits. If the page shows a login or security challenge, stop at that state and ask the user to complete only that action. 4. Select Advanced mode. 5. Confirm model v5.5 unless the user requested another model. 6. Fill the lyrics textarea from LYRICS_FILE. 7. Fill styles with:
STYLE_DESCRIPTION, -excluded style one, -excluded style two8. Fill song title with TITLE. 9. Click Create. 10. Wait until the two newest rows with the title are visible and playable. Do not report success before visible rows or links exist.
If there is a stale CLI/browser-helper process from an earlier non-locked attempt, stop it before proceeding. Do not let that process complete the task for a Computer Use request.
Link Capture
For each generated row:
1. Click the row's Share clip button. 2. If Suno exposes a Share menu, click the copy-link action. If the row's Share clip button copies directly, confirm the toast says the song link was copied. 3. Read the clipboard:
pbpasteSuno may copy a short share URL such as:
https://suno.com/s/<share-id>Resolve each share URL to a real clip ID:
curl -L -s "$SHARE_URL" \
| rg -o 'suno.com/song/[A-Za-z0-9_-]+|cdn1\.suno\.ai/[A-Za-z0-9_-]+\.mp3' \
| headPrefer the UUID from suno.com/song/<clip-id>. If only the CDN URL is visible, use the UUID in cdn1.suno.ai/<clip-id>.mp3.
Keep the raw share URLs in the manifest/report even when canonical IDs are not resolved yet. A copied Suno share link is valid evidence that generation completed through the UI.
Download And LRC
When the task is Computer Use-locked, attempt audio download through the Suno web UI first:
1. In the visible row list, open the target row's More options menu. 2. Choose Download. 3. Choose MP3 Audio when present. If Suno labels the same control as Audio or MP3, choose that visible MP3/audio option. 4. Wait for Chrome's download shelf/popover or ~/Downloads to show the MP3 as complete. Do not use a hidden URL downloader. 5. Repeat for each generated row or for one representative version per style if the user's task asks for several styles rather than every generated take. 6. Move the browser-downloaded MP3 into OUTPUT_DIR.
Use this organization command shape after Chrome's UI download is complete:
mkdir -p "$OUTPUT_DIR"
mv -f "$HOME/Downloads/$TITLE.mp3" "$OUTPUT_DIR/$TITLE.mp3"If Chrome creates duplicate names such as $TITLE (1).mp3, preserve both files with clear names such as $TITLE v2.mp3 instead of overwriting or deleting a take.
For a multi-song request, use one directory per title:
~/Documents/Suno/<song-title>/<song-title>.mp3Check the final placement with:
find "$HOME/Documents/Suno" -maxdepth 2 -type f -name '*.mp3' -print | sortAfter the browser UI download attempt, use local tools only for post-processing captured IDs and downloaded files:
python3 scripts/export_suno_assets.py ID1 ID2 --format lrc --output "$OUTPUT_DIR"
python3 scripts/validate_lrc.py "$OUTPUT_DIR"If the browser UI cannot expose a download control but the song links or clip IDs were captured, report the generated links and the download blocker. Do not switch to CLI download unless the user explicitly approves leaving the Computer Use lane.
For non-locked browser fallback tasks, the manifest-first download path remains allowed after capturing both clip IDs:
python3 scripts/run_workflow.py download \
--manifest "$OUTPUT_DIR/song.manifest.json" \
--ids "ID1 ID2"Do not publish or upload a track to a music player until validate_lrc.py passes with real [mm:ss.xx] timestamped lines.
Completion Report
Report:
- Suno share links and/or canonical
https://suno.com/song/<id>links OUTPUT_DIR- MP3 files
- LRC files
- manifest status and LRC validation result
{
"total_main_genres": 49,
"genres": [
{
"name": "ASMR",
"description": "Recordings intended to induce a pleasurable tingling sensation in the listener.",
"url": "https://rateyourmusic.com/genre/asmr/"
},
{
"name": "Ambient",
"description": "Emphasizes texture and tone over traditional musical structure, aimed at evoking a particular atmosphere or mood.",
"url": "https://rateyourmusic.com/genre/ambient/"
},
{
"name": "Ambient Pop",
"description": "Emphasizes texture and atmosphere with a degree of structural experimentation, drawing on Dream Pop, Neo-Psychedelia, and Post-Rock while tending towards more minimal, repetitive arrangements which may incorporate elements of Electronic or Krautrock.",
"url": "https://rateyourmusic.com/genre/ambient-pop/"
},
{
"name": "Audio Documentary",
"description": "Form of documentary that uses audio to document or explore a subject or theme.",
"url": "https://rateyourmusic.com/genre/audio-documentary/"
},
{
"name": "Beatboxing",
"description": "Form of vocal percussion developed during the 1980s, primarily involving the art of producing drum beats, rhythm, and musical sounds using one's mouth, lips, tongue, voice, and more.",
"url": "https://rateyourmusic.com/genre/beatboxing/"
},
{
"name": "Blues",
"description": "Originated toward the end of the 19th century in African American communities in the United States, particularly the Deep South; drew on traditional Spirituals and Work Song; highly influential to the whole of Western popular music.",
"url": "https://rateyourmusic.com/genre/blues/"
},
{
"name": "Bugle Call",
"description": "Short tunes played on a bugle; used in militaries for communication.",
"url": "https://rateyourmusic.com/genre/bugle-call/"
},
{
"name": "Children's Music",
"description": "Recorded for an intended audience of children.",
"url": "https://rateyourmusic.com/genre/childrens-music/"
},
{
"name": "Classical Music",
"description": "Part of a broad generalization about the structure and function of music throughout history across the globe, describing traditions distinct from Traditional Folk Music and popular music.",
"url": "https://rateyourmusic.com/genre/classical-music/"
},
{
"name": "Comedy",
"description": "Range of styles, both musical and non-musical, that always set out to make the listener laugh through humor.",
"url": "https://rateyourmusic.com/genre/comedy/"
},
{
"name": "Country",
"description": "American genre derived from Southern and Appalachian forms of American Folk Music and later Rock and Pop influences, with a focus on the life and culture of rural America.",
"url": "https://rateyourmusic.com/genre/country/"
},
{
"name": "Dance",
"description": "Rooted in Disco and developed largely within Electronic Dance Music; emphasizes rhythm and is generally produced for play by DJs at clubs, parties, or festivals.",
"url": "https://rateyourmusic.com/genre/dance/"
},
{
"name": "Dark Cabaret",
"description": "Dark, moody style incorporating elements of Cabaret in a modern context, with varied instrumentation.",
"url": "https://rateyourmusic.com/genre/dark-cabaret/"
},
{
"name": "Darkwave",
"description": "Expands on the dark, introspective and sorrowful atmosphere of Gothic Rock; borrowing aspects from Electronic and other non-Rock influences.",
"url": "https://rateyourmusic.com/genre/darkwave/"
},
{
"name": "Easy Listening",
"description": "Typically instrumental, including lush arrangements and melodies played by orchestras or big bands aiming for light entertainment.",
"url": "https://rateyourmusic.com/genre/easy-listening/"
},
{
"name": "Electronic",
"description": "Uses non-traditional electronic instrumentation and sound manipulation technology as the primary backbone of a composition.",
"url": "https://rateyourmusic.com/genre/electronic/"
},
{
"name": "Experimental",
"description": "Most radical approaches throughout history, featuring non-traditional production methods resulting in sounds and styles that go largely beyond traditional boundaries.",
"url": "https://rateyourmusic.com/genre/experimental/"
},
{
"name": "Field Recordings",
"description": "Material recorded outside of a recording studio for the purpose of capturing the audible illustration of an environment.",
"url": "https://rateyourmusic.com/genre/field-recordings/"
},
{
"name": "Folk",
"description": "Rooted in mostly oral traditions of the peoples of the world, encompassing international Traditional Folk Music as well as Western Contemporary Folk which arose in the 1940s.",
"url": "https://rateyourmusic.com/genre/folk/"
},
{
"name": "Gospel",
"description": "Arising from vocal Christian tradition often featuring emotive performances, layered accompaniments, and themes of faith and salvation.",
"url": "https://rateyourmusic.com/genre/gospel/"
},
{
"name": "Hanmai",
"description": "Chinese performance style featuring a performer shouting lyrics over an upbeat backing track.",
"url": "https://rateyourmusic.com/genre/hanmai/"
},
{
"name": "Hip Hop",
"description": "Emerged primarily on the United States East Coast in African-American communities in the late 1970s; emphasizes rhythmic beat patterns and a type of spoken vocal delivery known as rapping.",
"url": "https://rateyourmusic.com/genre/hip-hop/"
},
{
"name": "Hymns",
"description": "Performed and written with the purpose of praise, adoration, and prayer, often addressed to deities or other cultural figures.",
"url": "https://rateyourmusic.com/genre/hymns/"
},
{
"name": "Industrial & Noise",
"description": "Umbrella encompassing Noise and Industrial, as well as later derivatives that combine the latter aesthetics with other styles and in more accessible directions which fall under Post-Industrial.",
"url": "https://rateyourmusic.com/genre/industrial-and-noise/"
},
{
"name": "Jazz",
"description": "Originating in African American communities in the Southern United States around the turn of the 20th century, building on New Orleans Brass Band ensemble and influences from Ragtime and Blues to become a very popular style by the emergence of Swing in the 1930s.",
"url": "https://rateyourmusic.com/genre/jazz/"
},
{
"name": "Jingles",
"description": "Short, melodic phrases, traditionally used in advertisements, and later in ringtones and video games.",
"url": "https://rateyourmusic.com/genre/jingles/"
},
{
"name": "Mantra",
"description": "Sounds, words or phrases, often repeatedly chanted, used in religions originating in the Indian subcontinent, and spiritual practices influenced by them.",
"url": "https://rateyourmusic.com/genre/mantra/"
},
{
"name": "March",
"description": "Strong and regular rhythm originally written to walk in step easier or to back events like parades or marches.",
"url": "https://rateyourmusic.com/genre/march/"
},
{
"name": "Marching Band",
"description": "Covering the music of Western-derived marching bands, primarily used for entertainment, competition, military, and parade settings, typically involving large-scale orchestras featuring a variety of instruments.",
"url": "https://rateyourmusic.com/genre/marching-band/"
},
{
"name": "Mashup",
"description": "Songs created by mixing parts of two or more recordings together.",
"url": "https://rateyourmusic.com/genre/mashup/"
},
{
"name": "Mechanical Music",
"description": "Generated by self-playing devices, which read and reproduce music through purely mechanical means with no major electronically controlled elements.",
"url": "https://rateyourmusic.com/genre/mechanical-music/"
},
{
"name": "Metal",
"description": "Driving and distorted riffs, aggressive drumming, vigorous vocals, and an all-around show of brute force in its early days, since branching into dozens of subgenres.",
"url": "https://rateyourmusic.com/genre/metal/"
},
{
"name": "Musical Theatre and Entertainment",
"description": "Range of styles of theatre individually popular in the United States or in various countries in Europe, mostly from the 19th century to the mid-20th century.",
"url": "https://rateyourmusic.com/genre/musical-theatre-and-entertainment/"
},
{
"name": "New Age",
"description": "Broad genre centered on peaceful, meditative melodies, using a wide variety of instrumentation.",
"url": "https://rateyourmusic.com/genre/new-age/"
},
{
"name": "Parlour Music",
"description": "Early form of light, sentimental popular music; popular in USA and Europe from the late 1700s to the 1870s.",
"url": "https://rateyourmusic.com/genre/parlour-music/"
},
{
"name": "Pop",
"description": "Umbrella of popular styles closely tied to mass production and mass marketing, focusing on catchiness and accessibility through melody, rhythm, lyrics, and hooks.",
"url": "https://rateyourmusic.com/genre/pop/"
},
{
"name": "Psychedelia",
"description": "Umbrella of styles intended to replicate or enhance the altered state of consciousness brought on by the use of psychedelic drugs, originating in the 1960s.",
"url": "https://rateyourmusic.com/genre/psychedelia/"
},
{
"name": "Punk",
"description": "Musical and cultural product of Punk Rock known for its simplistic, brash playstyle and anti-establishment themes.",
"url": "https://rateyourmusic.com/genre/punk/"
},
{
"name": "R&B",
"description": "Umbrella of styles covering the most popular forms of Black American music from the late 1940s, when the term Rhythm & Blues first appeared; includes the developments of Soul and Funk in the '60s and '70s, and the Contemporary R&B of the 1980s onward.",
"url": "https://rateyourmusic.com/genre/randb/"
},
{
"name": "Reggae / Ska / Dancehall",
"description": "Umbrella for related forms of Jamaican Music which have grown beyond their regional roots to become global phenomena.",
"url": "https://rateyourmusic.com/genre/reggae-ska-dancehall/"
},
{
"name": "Regional Music",
"description": "Music of regional cultural traditions, that is or was predominantly played and produced in these regions.",
"url": "https://rateyourmusic.com/genre/regional-music/"
},
{
"name": "Rock",
"description": "Typically uses a verse-chorus structure with a backbeat rhythm and the electric guitar at the forefront; generally heavier and/or faster than its predecessors.",
"url": "https://rateyourmusic.com/genre/rock/"
},
{
"name": "Sacred Singing Circle",
"description": "Phenomenon that originally began in hippie gatherings, notably beginning with the counter-culture Rainbow Gatherings of the 1970s, features loose musical jams with varied and spontaneous performances.",
"url": "https://rateyourmusic.com/genre/sacred-singing-circle/"
},
{
"name": "Scenes & Movements",
"description": "",
"url": "https://rateyourmusic.com/genre/scenes-and-movements/"
},
{
"name": "Singer-Songwriter",
"description": "Heavily focused on lyrics and songwriting, with musical accompaniment tending to take lower precedence.",
"url": "https://rateyourmusic.com/genre/singer-songwriter/"
},
{
"name": "Sound Effects",
"description": "Non-musical audio works, including recorded sounds and sounds recreated synthetically or by other means, which are either sounds of known objects or abstract noise manifestations.",
"url": "https://rateyourmusic.com/genre/sound-effects/"
},
{
"name": "Spoken Word",
"description": "Usually unaccompanied vocal readings.",
"url": "https://rateyourmusic.com/genre/spoken-word/"
},
{
"name": "Toypop",
"description": "Avant-garde, naive, and child-like; explores the sonic capabilities of toy instruments.",
"url": "https://rateyourmusic.com/genre/toypop/"
},
{
"name": "Worldbeat",
"description": "Pairs elements from diverse sources from across the globe with contemporary, uplifting Westernised production, created primarily for a Western audience.",
"url": "https://rateyourmusic.com/genre/worldbeat/"
}
]
}{
"total_genres": 5947,
"main_genres": 49,
"sub_genres": 737,
"detailed_genres": 5161,
"last_updated": "2026-01-31 19:32:04",
"source": "https://rateyourmusic.com/genres/",
"usage": {
"step1": "读取 _index.json 查看所有主分类",
"step2": "读取 main/{genre-name}.json 查看直接子分类",
"step3": "读取 detailed/{subgenre-name}.json 查看更深层级"
}
}{
"name": "Aboio",
"description": "Cattle-herding songs originating in rural Northeastern Brazil.",
"url": "https://rateyourmusic.com/genre/aboio/",
"parent": "Brazilian Folk Music",
"level": "sub-3",
"children_count": 6,
"children": [
{
"name": "Aboio cantado",
"url": "https://rateyourmusic.com/genre/aboio-cantado/",
"description": "Aboio that features rhyming verses.",
"level": "sub-4",
"parent": "Aboio"
},
{
"name": "Aboio cantado",
"url": "https://rateyourmusic.com/genre/aboio-cantado/",
"description": "Aboio that features rhyming verses.",
"level": "sub-4",
"parent": "Aboio"
},
{
"name": "Aboio cantado",
"url": "https://rateyourmusic.com/genre/aboio-cantado/",
"description": "Aboio that features rhyming verses.",
"level": "sub-5",
"parent": "Aboio"
},
{
"name": "Aboio cantado",
"url": "https://rateyourmusic.com/genre/aboio-cantado/",
"description": "Aboio that features rhyming verses.",
"level": "sub-5",
"parent": "Aboio"
},
{
"name": "Aboio cantado",
"url": "https://rateyourmusic.com/genre/aboio-cantado/",
"description": "Aboio that features rhyming verses.",
"level": "sub-4",
"parent": "Aboio"
},
{
"name": "Aboio cantado",
"url": "https://rateyourmusic.com/genre/aboio-cantado/",
"description": "Aboio that features rhyming verses.",
"level": "sub-4",
"parent": "Aboio"
}
]
}{
"name": "Acholi Music",
"description": "Music of the Acholi people, who inhabit a region known as “Acholiland,” spanning parts of northern Uganda and southern South Sudan.",
"url": "https://rateyourmusic.com/genre/acholi-music/",
"parent": "East African Music",
"level": "sub-3",
"children_count": 1,
"children": [
{
"name": "Acholitronix",
"url": "https://rateyourmusic.com/genre/acholitronix/",
"description": "Fusion of traditional Acholi rhythms and melodies with Electronic production, originating in the city of Gulu.",
"level": "sub-4",
"parent": "Acholi Music"
}
]
}{
"name": "Acoustic Blues",
"description": "Developed out of Work Song and Spirituals to become the most prominent early form of Blues.",
"url": "https://rateyourmusic.com/genre/acoustic-blues/",
"parent": "Blues",
"level": "sub",
"children_count": 4,
"children": [
{
"name": "Acoustic Chicago Blues",
"url": "https://rateyourmusic.com/genre/acoustic-chicago-blues/",
"description": "Unplugged Blues made in the Chicago region, primarily during the 1930s and 1940s.",
"level": "sub-2",
"parent": "Acoustic Blues"
},
{
"name": "Acoustic Texas Blues",
"url": "https://rateyourmusic.com/genre/acoustic-texas-blues/",
"description": "Laid-back swing rhythms and guitar ornamentation, including solos.",
"level": "sub-2",
"parent": "Acoustic Blues"
},
{
"name": "Jug Band",
"url": "https://rateyourmusic.com/genre/jug-band/",
"description": "Usually features a jug as the bass instrument as well as other homemade (or easily affordable) instruments, such as kazoos and washboards.",
"level": "sub-2",
"parent": "Acoustic Blues"
},
{
"name": "Piedmont Blues",
"url": "https://rateyourmusic.com/genre/piedmont-blues/",
"description": "Developed in the early 20th century in the southern Appalachian foothills and characterized by a syncopated but melodic Ragtime-based finger-picking acoustic guitar style.",
"level": "sub-2",
"parent": "Acoustic Blues"
}
]
}{
"name": "African Folk Music",
"description": "Indigenous music of Africa that is passed down orally from generation to generation, the authors of the songs are usually unknown.",
"url": "https://rateyourmusic.com/genre/african-folk-music/",
"parent": "Traditional Folk Music",
"level": "sub-2",
"children_count": 48,
"children": [
{
"name": "Ambasse bey",
"url": "https://rateyourmusic.com/genre/ambasse-bey/",
"description": "African Folk Music developed by the Yabassi people of Cameroon.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Ambasse bey",
"url": "https://rateyourmusic.com/genre/ambasse-bey/",
"description": "African Folk Music developed by the Yabassi people of Cameroon.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Ambasse bey",
"url": "https://rateyourmusic.com/genre/ambasse-bey/",
"description": "African Folk Music developed by the Yabassi people of Cameroon.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Apala",
"url": "https://rateyourmusic.com/genre/apala/",
"description": "Yoruba Music developed by Muslims during the late 1930s and early 1940s in the Ijebu region of Yorubaland, the current Ogun state.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Apala",
"url": "https://rateyourmusic.com/genre/apala/",
"description": "Yoruba Music developed by Muslims during the late 1930s and early 1940s in the Ijebu region of Yorubaland, the current Ogun state.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Apala",
"url": "https://rateyourmusic.com/genre/apala/",
"description": "Yoruba Music developed by Muslims during the late 1930s and early 1940s in the Ijebu region of Yorubaland, the current Ogun state.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Batuque",
"url": "https://rateyourmusic.com/genre/batuque/",
"description": "Tradition from Cape Verde, unusual among the islands' music due to its lack of polyphonic singing and its usage of polyrhythms.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Batuque",
"url": "https://rateyourmusic.com/genre/batuque/",
"description": "Tradition from Cape Verde, unusual among the islands' music due to its lack of polyphonic singing and its usage of polyrhythms.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Batuque",
"url": "https://rateyourmusic.com/genre/batuque/",
"description": "Tradition from Cape Verde, unusual among the islands' music due to its lack of polyphonic singing and its usage of polyrhythms.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Dagomba Music",
"url": "https://rateyourmusic.com/genre/dagomba-music/",
"description": "Music of the Dagomba people of northern Ghana.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Dagomba Music",
"url": "https://rateyourmusic.com/genre/dagomba-music/",
"description": "Music of the Dagomba people of northern Ghana.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Dagomba Music",
"url": "https://rateyourmusic.com/genre/dagomba-music/",
"description": "Music of the Dagomba people of northern Ghana.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Gnawa",
"url": "https://rateyourmusic.com/genre/gnawa/",
"description": "A mystical musical tradition centred around the qraqab castanets and guembri bass lute, named after its originators, the Afro-Maghrebi Gnawa people.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Gnawa",
"url": "https://rateyourmusic.com/genre/gnawa/",
"description": "A mystical musical tradition centred around the qraqab castanets and guembri bass lute, named after its originators, the Afro-Maghrebi Gnawa people.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Gnawa",
"url": "https://rateyourmusic.com/genre/gnawa/",
"description": "A mystical musical tradition centred around the qraqab castanets and guembri bass lute, named after its originators, the Afro-Maghrebi Gnawa people.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Kabye Folk Music",
"url": "https://rateyourmusic.com/genre/kabye-folk-music/",
"description": "Traditional Folk Music of the Kabye people of northern Togo, including some of the most singular styles that can be found in West Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Kabye Folk Music",
"url": "https://rateyourmusic.com/genre/kabye-folk-music/",
"description": "Traditional Folk Music of the Kabye people of northern Togo, including some of the most singular styles that can be found in West Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Kabye Folk Music",
"url": "https://rateyourmusic.com/genre/kabye-folk-music/",
"description": "Traditional Folk Music of the Kabye people of northern Togo, including some of the most singular styles that can be found in West Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Kilapanga",
"url": "https://rateyourmusic.com/genre/kilapanga/",
"description": "Tradition of the Bakongo people from Angola and Congo that has influenced contemporary styles such as Kuduro.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Kilapanga",
"url": "https://rateyourmusic.com/genre/kilapanga/",
"description": "Tradition of the Bakongo people from Angola and Congo that has influenced contemporary styles such as Kuduro.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Kilapanga",
"url": "https://rateyourmusic.com/genre/kilapanga/",
"description": "Tradition of the Bakongo people from Angola and Congo that has influenced contemporary styles such as Kuduro.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Malagasy Folk Music",
"url": "https://rateyourmusic.com/genre/malagasy-folk-music/",
"description": "Melodic, chordophone-dominated sound; based on the Austronesian Music of the first settlers that arrived on the island from Borneo.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Malagasy Folk Music",
"url": "https://rateyourmusic.com/genre/malagasy-folk-music/",
"description": "Melodic, chordophone-dominated sound; based on the Austronesian Music of the first settlers that arrived on the island from Borneo.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Malagasy Folk Music",
"url": "https://rateyourmusic.com/genre/malagasy-folk-music/",
"description": "Melodic, chordophone-dominated sound; based on the Austronesian Music of the first settlers that arrived on the island from Borneo.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Mbenga-Mbuti Music",
"url": "https://rateyourmusic.com/genre/mbenga-mbuti-music/",
"description": "Music of the Mbenga and Mbuti people, Pygmy ethnic groups in Central Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Mbenga-Mbuti Music",
"url": "https://rateyourmusic.com/genre/mbenga-mbuti-music/",
"description": "Music of the Mbenga and Mbuti people, Pygmy ethnic groups in Central Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Mbenga-Mbuti Music",
"url": "https://rateyourmusic.com/genre/mbenga-mbuti-music/",
"description": "Music of the Mbenga and Mbuti people, Pygmy ethnic groups in Central Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Moutya",
"url": "https://rateyourmusic.com/genre/moutya/",
"description": "Tradition that originated in Seychelles among Creole slaves, similar to Séga, although rawer and played only on large flat drums made from goatskin.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Moutya",
"url": "https://rateyourmusic.com/genre/moutya/",
"description": "Tradition that originated in Seychelles among Creole slaves, similar to Séga, although rawer and played only on large flat drums made from goatskin.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Moutya",
"url": "https://rateyourmusic.com/genre/moutya/",
"description": "Tradition that originated in Seychelles among Creole slaves, similar to Séga, although rawer and played only on large flat drums made from goatskin.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Ngoma",
"url": "https://rateyourmusic.com/genre/ngoma/",
"description": "Played in Swahili-speaking African countries; primarily focused on rhythm.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Ngoma",
"url": "https://rateyourmusic.com/genre/ngoma/",
"description": "Played in Swahili-speaking African countries; primarily focused on rhythm.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Ngoma",
"url": "https://rateyourmusic.com/genre/ngoma/",
"description": "Played in Swahili-speaking African countries; primarily focused on rhythm.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Southern African Folk Music",
"url": "https://rateyourmusic.com/genre/southern-african-folk-music/",
"description": "Traditional Folk Music of southern Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Southern African Folk Music",
"url": "https://rateyourmusic.com/genre/southern-african-folk-music/",
"description": "Traditional Folk Music of southern Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Southern African Folk Music",
"url": "https://rateyourmusic.com/genre/southern-african-folk-music/",
"description": "Traditional Folk Music of southern Africa.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Tchinkoumé",
"url": "https://rateyourmusic.com/genre/tchinkoume/",
"description": "Tradition from the central region of Benin around Savalou, played with water percussion.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Tchinkoumé",
"url": "https://rateyourmusic.com/genre/tchinkoume/",
"description": "Tradition from the central region of Benin around Savalou, played with water percussion.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Tchinkoumé",
"url": "https://rateyourmusic.com/genre/tchinkoume/",
"description": "Tradition from the central region of Benin around Savalou, played with water percussion.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Traditional Maloya",
"url": "https://rateyourmusic.com/genre/traditional-maloya/",
"description": "Derived from Traditional Séga, this is the original dance music of La Réunion.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Traditional Maloya",
"url": "https://rateyourmusic.com/genre/traditional-maloya/",
"description": "Derived from Traditional Séga, this is the original dance music of La Réunion.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Traditional Maloya",
"url": "https://rateyourmusic.com/genre/traditional-maloya/",
"description": "Derived from Traditional Séga, this is the original dance music of La Réunion.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Traditional Séga",
"url": "https://rateyourmusic.com/genre/traditional-sega/",
"description": "Séga dance music born in the 18th century, before its later adoption of Western pop elements.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Traditional Séga",
"url": "https://rateyourmusic.com/genre/traditional-sega/",
"description": "Séga dance music born in the 18th century, before its later adoption of Western pop elements.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Traditional Séga",
"url": "https://rateyourmusic.com/genre/traditional-sega/",
"description": "Séga dance music born in the 18th century, before its later adoption of Western pop elements.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Zinli",
"url": "https://rateyourmusic.com/genre/zinli/",
"description": "Traditional rhythmic chanting and percussion adapted to multiple West African contexts in the 20th century.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Zinli",
"url": "https://rateyourmusic.com/genre/zinli/",
"description": "Traditional rhythmic chanting and percussion adapted to multiple West African contexts in the 20th century.",
"level": "sub-3",
"parent": "African Folk Music"
},
{
"name": "Zinli",
"url": "https://rateyourmusic.com/genre/zinli/",
"description": "Traditional rhythmic chanting and percussion adapted to multiple West African contexts in the 20th century.",
"level": "sub-3",
"parent": "African Folk Music"
}
]
}{
"name": "African Music",
"description": "All forms with roots in Africa.",
"url": "https://rateyourmusic.com/genre/african-music/",
"parent": "Regional Music",
"level": "sub",
"children_count": 11,
"children": [
{
"name": "African Folk Music",
"url": "https://rateyourmusic.com/genre/african-folk-music/",
"description": "Indigenous music of Africa that is passed down orally from generation to generation, the authors of the songs are usually unknown.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Afro-Jazz",
"url": "https://rateyourmusic.com/genre/afro-jazz/",
"description": "African-styled percussion and rhythms.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Cape Verdean Music",
"url": "https://rateyourmusic.com/genre/cape-verdean-music/",
"description": "Music developed in the archipelago of Cape Verde.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Central African Music",
"url": "https://rateyourmusic.com/genre/central-african-music/",
"description": "Music of the areas speaking Adamawa-Eastern languages and many Bantu languages, through most of the Democratic Republic of the Congo, all of Gabon, Equatorial Guinea, the islands of São Tomé and Príncipe, Republic of the Congo, most of the Central African Republic, and large parts of Cameroon, Angola, and the northern parts of Zambia.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "East African Music",
"url": "https://rateyourmusic.com/genre/east-african-music/",
"description": "Traditions which originate from the eastern subregion of the African continent, encompassing a wide variety of cultures and styles.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Malagasy Music",
"url": "https://rateyourmusic.com/genre/malagasy-music/",
"description": "Music of the Malagasy peoples.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "North African Music",
"url": "https://rateyourmusic.com/genre/north-african-music/",
"description": "Music of North Africa.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Northeastern African Music",
"url": "https://rateyourmusic.com/genre/northeastern-african-music/",
"description": "Music of Northeastern Africa.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Seychelles & Mascarene Islands Music",
"url": "https://rateyourmusic.com/genre/seychelles-and-mascarene-islands-music/",
"description": "Styles from La Réunion, Mauritius, Rodrigues, and Seychelles.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "Southern African Music",
"url": "https://rateyourmusic.com/genre/southern-african-music/",
"description": "Encompasses Southern African Folk Music and more modern genres, consisting in a specific style of a worldwide popular genre mixed with or rooted in a local traditional folk genre, through South Africa, Lesotho, Botswana, Eswatini, Namibia, southern Angola, and Matabeleland region in southern Zimbabwe.",
"level": "sub-2",
"parent": "African Music"
},
{
"name": "West African Music",
"url": "https://rateyourmusic.com/genre/west-african-music/",
"description": "Traditional and regional popular music from the Western portion of Sub-Saharan Africa.",
"level": "sub-2",
"parent": "African Music"
}
]
}{
"name": "Afro House",
"description": "Emerged by fusing Deep House with Southern African Music, characterized by hypnotizing drum patterns of shakers and congas, often sampled African vocals or soulful original features, and spiritual, organic, melodic atmosphere.",
"url": "https://rateyourmusic.com/genre/afro-house/",
"parent": "House",
"level": "sub-3",
"children_count": 2,
"children": [
{
"name": "3-Step",
"url": "https://rateyourmusic.com/genre/3-step/",
"description": "Distinct three-kick-drum rhythm, blends influences from Amapiano and Broken Beat, resulting in relaxed, freeform, playful, Jazz-like feel.",
"level": "sub-4",
"parent": "Afro House"
},
{
"name": "3-Step",
"url": "https://rateyourmusic.com/genre/3-step/",
"description": "Distinct three-kick-drum rhythm, blends influences from Amapiano and Broken Beat, resulting in relaxed, freeform, playful, Jazz-like feel.",
"level": "sub-4",
"parent": "Afro House"
}
]
}{
"name": "Afrobeats",
"description": "Originated in West Africa during the early 2010s and includes elements from Pop Rap, Contemporary R&B, and Dancehall.",
"url": "https://rateyourmusic.com/genre/afrobeats/",
"parent": "Pop",
"level": "sub",
"children_count": 2,
"children": [
{
"name": "Afropiano",
"url": "https://rateyourmusic.com/genre/afropiano/",
"description": "Blends the easy-going, poppy, and melodic Afrobeats sound and rhythms with major Amapiano elements, like lush, jazzy, and laid-back atmospheres often featuring light piano chords.",
"level": "sub-2",
"parent": "Afrobeats"
},
{
"name": "Alté",
"url": "https://rateyourmusic.com/genre/alte/",
"description": "More subdued, atmospheric, minimalist, and eclectic production and vocal styles compared to earlier styles, as well as more socially conscious lyrics.",
"level": "sub-2",
"parent": "Afrobeats"
}
]
}{
"name": "Ainu Music",
"description": "Music of the Ainu people from Hokkaidō, the Kuril Islands, and part of Sakhalin.",
"url": "https://rateyourmusic.com/genre/ainu-music/",
"parent": "East Asian Music",
"level": "sub-3",
"children_count": 4,
"children": [
{
"name": "Upopo",
"url": "https://rateyourmusic.com/genre/upopo/",
"description": "Ainu everyday traditional song (as opposed to Yukar's sacred leanings).",
"level": "sub-4",
"parent": "Ainu Music"
},
{
"name": "Upopo",
"url": "https://rateyourmusic.com/genre/upopo/",
"description": "Ainu everyday traditional song (as opposed to Yukar's sacred leanings).",
"level": "sub-4",
"parent": "Ainu Music"
},
{
"name": "Yukar",
"url": "https://rateyourmusic.com/genre/yukar/",
"description": "Oral literature pertaining to Ainu culture and mythology.",
"level": "sub-4",
"parent": "Ainu Music"
},
{
"name": "Yukar",
"url": "https://rateyourmusic.com/genre/yukar/",
"description": "Oral literature pertaining to Ainu culture and mythology.",
"level": "sub-4",
"parent": "Ainu Music"
}
]
}{
"name": "Akan Music",
"description": "Music of the Akan people of Ghana and Côte d'Ivoire, including a variety of traditional and neo-traditional styles which are based on some of the oldest traditions in West Africa.",
"url": "https://rateyourmusic.com/genre/akan-music/",
"parent": "West African Music",
"level": "sub-3",
"children_count": 2,
"children": [
{
"name": "Kete",
"url": "https://rateyourmusic.com/genre/kete/",
"description": "Traditional percussive style played at special occasions in the courts of high ranking Asante chieftains.",
"level": "sub-4",
"parent": "Akan Music"
},
{
"name": "Zoblazo",
"url": "https://rateyourmusic.com/genre/zoblazo/",
"description": "Ivorian dance music combining traditional instruments and synthesizers that emerged in the late 1980s.",
"level": "sub-4",
"parent": "Akan Music"
}
]
}{
"name": "Alpine Folk Music",
"description": "Traditional Folk Music of the Alps, including parts of Germany, Austria, Slovenia, Switzerland, and Italy.",
"url": "https://rateyourmusic.com/genre/alpine-folk-music/",
"parent": "European Folk Music",
"level": "sub-3",
"children_count": 12,
"children": [
{
"name": "Canto degli Alpini",
"url": "https://rateyourmusic.com/genre/canto-degli-alpini/",
"description": "Created and traditionally sung by choirs formed from the Italian army's Alpine mountain infantry corps, mainly dating back to WWI.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Canto degli Alpini",
"url": "https://rateyourmusic.com/genre/canto-degli-alpini/",
"description": "Created and traditionally sung by choirs formed from the Italian army's Alpine mountain infantry corps, mainly dating back to WWI.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Canto degli Alpini",
"url": "https://rateyourmusic.com/genre/canto-degli-alpini/",
"description": "Created and traditionally sung by choirs formed from the Italian army's Alpine mountain infantry corps, mainly dating back to WWI.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Ländler",
"url": "https://rateyourmusic.com/genre/landler/",
"description": "Swiss-German dance band music based on the accordion, combining traditional Alpine Folk Music with elements from Schlager and Jazz.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Ländler",
"url": "https://rateyourmusic.com/genre/landler/",
"description": "Swiss-German dance band music based on the accordion, combining traditional Alpine Folk Music with elements from Schlager and Jazz.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Ländler",
"url": "https://rateyourmusic.com/genre/landler/",
"description": "Swiss-German dance band music based on the accordion, combining traditional Alpine Folk Music with elements from Schlager and Jazz.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Narodno zabavna glasba",
"url": "https://rateyourmusic.com/genre/narodno-zabavna-glasba/",
"description": "Modernised form of Slovenian Folk Music from the Alpine region of Upper Carniola (Oberkrain).",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Narodno zabavna glasba",
"url": "https://rateyourmusic.com/genre/narodno-zabavna-glasba/",
"description": "Modernised form of Slovenian Folk Music from the Alpine region of Upper Carniola (Oberkrain).",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Narodno zabavna glasba",
"url": "https://rateyourmusic.com/genre/narodno-zabavna-glasba/",
"description": "Modernised form of Slovenian Folk Music from the Alpine region of Upper Carniola (Oberkrain).",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Naturjodel",
"url": "https://rateyourmusic.com/genre/naturjodel/",
"description": "Originated in Toggenburg and Appenzell in Switzerland; deep vocal range, relaxed voice, free tempo, polyphony, elongated notes, improvisation, glissando, and use of syllabic sounds.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Naturjodel",
"url": "https://rateyourmusic.com/genre/naturjodel/",
"description": "Originated in Toggenburg and Appenzell in Switzerland; deep vocal range, relaxed voice, free tempo, polyphony, elongated notes, improvisation, glissando, and use of syllabic sounds.",
"level": "sub-4",
"parent": "Alpine Folk Music"
},
{
"name": "Naturjodel",
"url": "https://rateyourmusic.com/genre/naturjodel/",
"description": "Originated in Toggenburg and Appenzell in Switzerland; deep vocal range, relaxed voice, free tempo, polyphony, elongated notes, improvisation, glissando, and use of syllabic sounds.",
"level": "sub-4",
"parent": "Alpine Folk Music"
}
]
}{
"name": "Alt-Country",
"description": "Arose in the 1980s and 1990s, performed by artists with roots in Alternative Rock and Indie Rock who were disconnected from the mainstream Country industry.",
"url": "https://rateyourmusic.com/genre/alt-country/",
"parent": "Country",
"level": "sub",
"children_count": 2,
"children": [
{
"name": "Gothic Country",
"url": "https://rateyourmusic.com/genre/gothic-country/",
"description": "Evokes the Southern Gothic literary genre through morbid lyrical themes and melancholic sounds that emphasize its American Folk Music and Post-Punk influences.",
"level": "sub-2",
"parent": "Alt-Country"
},
{
"name": "Gothic Country",
"url": "https://rateyourmusic.com/genre/gothic-country/",
"description": "Evokes the Southern Gothic literary genre through morbid lyrical themes and melancholic sounds that emphasize its American Folk Music and Post-Punk influences.",
"level": "sub-4",
"parent": "Alt-Country"
}
]
}{
"name": "Alternative Dance",
"description": "Incorporates rhythms and synthesizers from Electronic Dance Music within the context of Alternative Rock and related styles; predominantly popular in the 1990s.",
"url": "https://rateyourmusic.com/genre/alternative-dance/",
"parent": "Dance",
"level": "sub",
"children_count": 4,
"children": [
{
"name": "Grebo",
"url": "https://rateyourmusic.com/genre/grebo/",
"description": "Short-lived English subculture and associated music; raw, futuristic, sample-heavy form of Alternative Dance with a dirty guitar sound.",
"level": "sub-2",
"parent": "Alternative Dance"
},
{
"name": "Grebo",
"url": "https://rateyourmusic.com/genre/grebo/",
"description": "Short-lived English subculture and associated music; raw, futuristic, sample-heavy form of Alternative Dance with a dirty guitar sound.",
"level": "sub-3",
"parent": "Alternative Dance"
},
{
"name": "New Rave",
"url": "https://rateyourmusic.com/genre/new-rave/",
"description": "High energy mid-2000s style combining the tight and punchy grooves of Dance-Punk Revival with synths and four-on-the-floor rhythms from genres like Electroclash and Electro House.",
"level": "sub-2",
"parent": "Alternative Dance"
},
{
"name": "New Rave",
"url": "https://rateyourmusic.com/genre/new-rave/",
"description": "High energy mid-2000s style combining the tight and punchy grooves of Dance-Punk Revival with synths and four-on-the-floor rhythms from genres like Electroclash and Electro House.",
"level": "sub-3",
"parent": "Alternative Dance"
}
]
}{
"name": "Alternative Metal",
"description": "Mid-tempo style emphasizing melodicism and rhythmic heaviness; branches outside of the stylistic conventions of Metal.",
"url": "https://rateyourmusic.com/genre/alternative-metal/",
"parent": "Metal",
"level": "sub",
"children_count": 8,
"children": [
{
"name": "Funk Metal",
"url": "https://rateyourmusic.com/genre/funk-metal/",
"description": "Melds Funk Rock grooves with slap basslines and metallic guitarwork.",
"level": "sub-2",
"parent": "Alternative Metal"
},
{
"name": "Funk Metal",
"url": "https://rateyourmusic.com/genre/funk-metal/",
"description": "Melds Funk Rock grooves with slap basslines and metallic guitarwork.",
"level": "sub-3",
"parent": "Alternative Metal"
},
{
"name": "Neue Deutsche Härte",
"url": "https://rateyourmusic.com/genre/neue-deutsche-harte/",
"description": "Alternative Metal and Industrial Metal that incorporates various aspects of electronic music, specifically Electronic Dance Music.",
"level": "sub-2",
"parent": "Alternative Metal"
},
{
"name": "Neue Deutsche Härte",
"url": "https://rateyourmusic.com/genre/neue-deutsche-harte/",
"description": "Alternative Metal and Industrial Metal that incorporates various aspects of electronic music, specifically Electronic Dance Music.",
"level": "sub-3",
"parent": "Alternative Metal"
},
{
"name": "Nu Metal",
"url": "https://rateyourmusic.com/genre/nu-metal/",
"description": "Emphasizes bouncy, drop-tuned riffs, alternating vocal styles, and genre-bending, often incorporating Hip Hop and Funk Metal elements.",
"level": "sub-2",
"parent": "Alternative Metal"
},
{
"name": "Nu Metal",
"url": "https://rateyourmusic.com/genre/nu-metal/",
"description": "Emphasizes bouncy, drop-tuned riffs, alternating vocal styles, and genre-bending, often incorporating Hip Hop and Funk Metal elements.",
"level": "sub-3",
"parent": "Alternative Metal"
},
{
"name": "Rap Metal",
"url": "https://rateyourmusic.com/genre/rap-metal/",
"description": "Features rapped vocals, typically formed around heavy, mid-tempo, and groove-oriented playing in addition to elements of Hip Hop beats such as record scratching.",
"level": "sub-2",
"parent": "Alternative Metal"
},
{
"name": "Rap Metal",
"url": "https://rateyourmusic.com/genre/rap-metal/",
"description": "Features rapped vocals, typically formed around heavy, mid-tempo, and groove-oriented playing in addition to elements of Hip Hop beats such as record scratching.",
"level": "sub-3",
"parent": "Alternative Metal"
}
]
}{
"name": "Alternative Rock",
"description": "Performed with a less commercial sensibility, utilizing more eccentric, Punk-influenced sounds, moodier or quirkier lyricism, and sometimes ample amounts of distortion, often paired with Pop-influenced songwriting.",
"url": "https://rateyourmusic.com/genre/alternative-rock/",
"parent": "Rock",
"level": "sub",
"children_count": 13,
"children": [
{
"name": "Alternative Dance",
"url": "https://rateyourmusic.com/genre/alternative-dance/",
"description": "Incorporates rhythms and synthesizers from Electronic Dance Music within the context of Alternative Rock and related styles; predominantly popular in the 1990s.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Britpop",
"url": "https://rateyourmusic.com/genre/britpop/",
"description": "Emerged in the United Kingdom in the early 1990s, with a style hearkening back to the traditional guitar-driven songs and melodic hooks found in the British Pop Rock of the 1960s.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Dream Pop",
"url": "https://rateyourmusic.com/genre/dream-pop/",
"description": "Reverberated guitars, effects-laden vocals, and dense productions, creating a psychedelic, spacious, and dreamlike sound.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Emo-Pop",
"url": "https://rateyourmusic.com/genre/emo-pop/",
"description": "Mainstream derivative of Emo, puts more emphasis on the poppy sensibilities of Alternative Rock and Pop Punk.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Geek Rock",
"url": "https://rateyourmusic.com/genre/geek-rock/",
"description": "Emphasizes a nerdy aesthetic, incorporating synthesizers and other instrumentation less common in Alternative Rock alongside quirky Pop-oriented songwriting and dense, witty lyricism on unconventional topics.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Grunge",
"url": "https://rateyourmusic.com/genre/grunge/",
"description": "Mixes Punk and Metal sensibilities into a mid-tempo approach featuring a heavy, \"sludgy\" guitar sound, \"raspy\" vocals and angsty lyricism.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Indie Rock",
"url": "https://rateyourmusic.com/genre/indie-rock/",
"description": "Associated with a less mainstream-oriented and a DIY approach while often dabbling in Pop-informed melodic songwriting, eclecticism, and adopting an \"authentic\" or raw style.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Jangle Pop",
"url": "https://rateyourmusic.com/genre/jangle-pop/",
"description": "Treble-heavy guitars with arpeggiated melodies, distinct basslines, and often propulsive, repetitive strum-rhythms; frequently influenced by Post-Punk.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Mall Screamo",
"url": "https://rateyourmusic.com/genre/mall-screamo/",
"description": "Heavy instrumentation, melodic verse-chorus songwriting, and expressive singing contrasted with screaming vocals.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Post-Britpop",
"url": "https://rateyourmusic.com/genre/post-britpop/",
"description": "Emerged in the late 1990s as a Britpop expansion mainly characterized by acoustic-leaning instrumentation, lush string arrangements, and mid-tempo song structures, as well as less apparent lyrical concerns for Britain in favor of introspective, contemplative themes.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Post-Grunge",
"url": "https://rateyourmusic.com/genre/post-grunge/",
"description": "Streamlined derivative of Grunge mixing crunchy guitar riffs with more accessible, hook-based structures.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Shimokita-kei",
"url": "https://rateyourmusic.com/genre/shimokita-kei/",
"description": "Japanese style closely related to the Shimokitazawa indie scene, featuring Pop-informed songwriting, melodic guitar leads, expressive vocals, and often loud, prominent overdriven guitars.",
"level": "sub-2",
"parent": "Alternative Rock"
},
{
"name": "Shoegaze",
"url": "https://rateyourmusic.com/genre/shoegaze/",
"description": "Dense, noisy, and ethereal washes of sound primarily created with electric guitars and heavy use of effects pedals, such as fuzz, reverb, chorus, and delay, with vocals serving as a dreamy, usually unintelligible melodic layer.",
"level": "sub-2",
"parent": "Alternative Rock"
}
]
}{
"name": "Amapiano",
"description": "House from South Africa deriving from previous popular genres including Gqom, Kwaito, and Deep House.",
"url": "https://rateyourmusic.com/genre/amapiano/",
"parent": "House",
"level": "sub-3",
"children_count": 3,
"children": [
{
"name": "Afropiano",
"url": "https://rateyourmusic.com/genre/afropiano/",
"description": "Blends the easy-going, poppy, and melodic Afrobeats sound and rhythms with major Amapiano elements, like lush, jazzy, and laid-back atmospheres often featuring light piano chords.",
"level": "sub-4",
"parent": "Amapiano"
},
{
"name": "Afropiano",
"url": "https://rateyourmusic.com/genre/afropiano/",
"description": "Blends the easy-going, poppy, and melodic Afrobeats sound and rhythms with major Amapiano elements, like lush, jazzy, and laid-back atmospheres often featuring light piano chords.",
"level": "sub-4",
"parent": "Amapiano"
},
{
"name": "Afropiano",
"url": "https://rateyourmusic.com/genre/afropiano/",
"description": "Blends the easy-going, poppy, and melodic Afrobeats sound and rhythms with major Amapiano elements, like lush, jazzy, and laid-back atmospheres often featuring light piano chords.",
"level": "sub-4",
"parent": "Amapiano"
}
]
}{
"name": "Amazigh Music",
"description": "Music of the Amazigh people, the indigenous people of Northwest Africa (with main hubs in Morocco and Algeria) and certain parts of West Africa.",
"url": "https://rateyourmusic.com/genre/amazigh-music/",
"parent": "North African Music",
"level": "sub-3",
"children_count": 6,
"children": [
{
"name": "Ahwash",
"url": "https://rateyourmusic.com/genre/ahwash/",
"description": "Associated with the Tashelhit-speaking peoples of southern and central Morocco, and performed in large groups, combining singing, poetry and drumming.",
"level": "sub-4",
"parent": "Amazigh Music"
},
{
"name": "Izlan",
"url": "https://rateyourmusic.com/genre/izlan/",
"description": "Uses sung poetry with a focus on love themes.",
"level": "sub-4",
"parent": "Amazigh Music"
},
{
"name": "Kabyle Music",
"url": "https://rateyourmusic.com/genre/kabyle-music/",
"description": "Music of the Kabyle Amazigh people.",
"level": "sub-4",
"parent": "Amazigh Music"
},
{
"name": "Sahrawi Music",
"url": "https://rateyourmusic.com/genre/sahrawi-music/",
"description": "Music of the Sahrawi people, an ethnic group who inhabit the westernmost areas of the Sahara Desert.",
"level": "sub-4",
"parent": "Amazigh Music"
},
{
"name": "Staïfi",
"url": "https://rateyourmusic.com/genre/staifi/",
"description": "Festive Chaoui genre that mixes local rural music with the zendali rhythm and modern instruments.",
"level": "sub-4",
"parent": "Amazigh Music"
},
{
"name": "Tuareg Music",
"url": "https://rateyourmusic.com/genre/tuareg-music/",
"description": "Amazigh Music by the nomadic Tuareg people who live through the Saharan desert in North Africa, encompassing various types of traditions and popular styles.",
"level": "sub-4",
"parent": "Amazigh Music"
}
]
}{
"name": "Ancient Music",
"description": "Umbrella term encompassing all the genres coming after the Prehistoric Music and before the Medieval music eras from ancient civilizations, roughly before 500 CE, following the Western Classical Music point of view with the date of the Roman Empire fall (476 CE).",
"url": "https://rateyourmusic.com/genre/ancient-music/",
"parent": "Regional Music",
"level": "sub",
"children_count": 7,
"children": [
{
"name": "Ancient Chinese Music",
"url": "https://rateyourmusic.com/genre/ancient-chinese-music/",
"description": "Covers a very large era of creation from approximately 2100 BCE to 200 CE.",
"level": "sub-2",
"parent": "Ancient Music"
},
{
"name": "Ancient Egyptian Music",
"url": "https://rateyourmusic.com/genre/ancient-egyptian-music/",
"description": "Music of ancient Egyptian civilization.",
"level": "sub-2",
"parent": "Ancient Music"
},
{
"name": "Ancient Greek Music",
"url": "https://rateyourmusic.com/genre/ancient-greek-music/",
"description": "Music of ancient Greek civilization.",
"level": "sub-2",
"parent": "Ancient Music"
},
{
"name": "Ancient Levitical Music",
"url": "https://rateyourmusic.com/genre/ancient-levitical-music/",
"description": "Reconstruction of Jerusalem temple music.",
"level": "sub-2",
"parent": "Ancient Music"
},
{
"name": "Ancient Roman Music",
"url": "https://rateyourmusic.com/genre/ancient-roman-music/",
"description": "Music of ancient Roman civilization.",
"level": "sub-2",
"parent": "Ancient Music"
},
{
"name": "Hyang-ak",
"url": "https://rateyourmusic.com/genre/hyang-ak/",
"description": "One of the most common and oldest surviving forms of Korean court music.",
"level": "sub-2",
"parent": "Ancient Music"
},
{
"name": "Mesopotamian Music",
"url": "https://rateyourmusic.com/genre/mesopotamian-music/",
"description": "Music of Mesopotamia, a historical region situated in West Asia within the Tigris–Euphrates river system, comprises the heritage of Sumerians and Akkadians.",
"level": "sub-2",
"parent": "Ancient Music"
}
]
}{
"name": "Animal Sounds",
"description": "Recordings which are done in order to capture sounds produced by animals.",
"url": "https://rateyourmusic.com/genre/animal-sounds/",
"parent": "Nature Recordings",
"level": "sub-2",
"children_count": 3,
"children": [
{
"name": "Bird Sounds",
"url": "https://rateyourmusic.com/genre/bird-sounds/",
"description": "Recordings of birds, including vocalizations (songs and calls) and mechanical sounds produced by bills, wings, or feathers.",
"level": "sub-3",
"parent": "Animal Sounds"
},
{
"name": "Insect Sounds",
"url": "https://rateyourmusic.com/genre/insect-sounds/",
"description": "Recordings that capture the sounds produced by insects.",
"level": "sub-3",
"parent": "Animal Sounds"
},
{
"name": "Whale Song",
"url": "https://rateyourmusic.com/genre/whale-song/",
"description": "Low-frequency, complex vocalizations produced by baleen whales.",
"level": "sub-3",
"parent": "Animal Sounds"
}
]
}{
"name": "Appalachian Folk Music",
"description": "Folk of the Appalachian Mountains in the Eastern United States.",
"url": "https://rateyourmusic.com/genre/appalachian-folk-music/",
"parent": "American Folk Music",
"level": "sub-3",
"children_count": 3,
"children": [
{
"name": "Old-Time",
"url": "https://rateyourmusic.com/genre/old-time/",
"description": "Pre-Bluegrass North American string band styles, particularly those rooted in Appalachian Folk Music.",
"level": "sub-4",
"parent": "Appalachian Folk Music"
},
{
"name": "Old-Time",
"url": "https://rateyourmusic.com/genre/old-time/",
"description": "Pre-Bluegrass North American string band styles, particularly those rooted in Appalachian Folk Music.",
"level": "sub-4",
"parent": "Appalachian Folk Music"
},
{
"name": "Old-Time",
"url": "https://rateyourmusic.com/genre/old-time/",
"description": "Pre-Bluegrass North American string band styles, particularly those rooted in Appalachian Folk Music.",
"level": "sub-4",
"parent": "Appalachian Folk Music"
}
]
}{
"name": "Arabic Bellydance Music",
"description": "Accompaniment to traditional belly dances.",
"url": "https://rateyourmusic.com/genre/arabic-bellydance-music/",
"parent": "Arabic Folk Music",
"level": "sub-3",
"children_count": 3,
"children": [
{
"name": "Raqs baladi",
"url": "https://rateyourmusic.com/genre/raqs-baladi/",
"description": "Egyptian folk dance and its associated musical accompaniment, appearing in the 20th century.",
"level": "sub-4",
"parent": "Arabic Bellydance Music"
},
{
"name": "Raqs baladi",
"url": "https://rateyourmusic.com/genre/raqs-baladi/",
"description": "Egyptian folk dance and its associated musical accompaniment, appearing in the 20th century.",
"level": "sub-4",
"parent": "Arabic Bellydance Music"
},
{
"name": "Raqs baladi",
"url": "https://rateyourmusic.com/genre/raqs-baladi/",
"description": "Egyptian folk dance and its associated musical accompaniment, appearing in the 20th century.",
"level": "sub-4",
"parent": "Arabic Bellydance Music"
}
]
}{
"name": "Arabic Classical Music",
"description": "Arabic Classical Music tradition, whose guidelines for modulation, rhythm, and tuning were set down in treatises in the 8th and 9th centuries, based around Maqāmic Music.",
"url": "https://rateyourmusic.com/genre/arabic-classical-music/",
"parent": "Maqāmic Music",
"level": "sub-2",
"children_count": 9,
"children": [
{
"name": "Andalusian Classical Music",
"url": "https://rateyourmusic.com/genre/andalusian-classical-music/",
"description": "Arabic Classical Music tradition that had its beginnings in Al-Andalus, the medieval Islamic Iberian peninsula, which later spread and developed in the Maghreb.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Andalusian Classical Music",
"url": "https://rateyourmusic.com/genre/andalusian-classical-music/",
"description": "Arabic Classical Music tradition that had its beginnings in Al-Andalus, the medieval Islamic Iberian peninsula, which later spread and developed in the Maghreb.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Andalusian Classical Music",
"url": "https://rateyourmusic.com/genre/andalusian-classical-music/",
"description": "Arabic Classical Music tradition that had its beginnings in Al-Andalus, the medieval Islamic Iberian peninsula, which later spread and developed in the Maghreb.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Iraqi Maqam",
"url": "https://rateyourmusic.com/genre/iraqi-maqam/",
"description": "Highly structured but semi-improvised and rhythmically complex compositions built around set structures which consist of specific maqam modes.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Iraqi Maqam",
"url": "https://rateyourmusic.com/genre/iraqi-maqam/",
"description": "Highly structured but semi-improvised and rhythmically complex compositions built around set structures which consist of specific maqam modes.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Iraqi Maqam",
"url": "https://rateyourmusic.com/genre/iraqi-maqam/",
"description": "Highly structured but semi-improvised and rhythmically complex compositions built around set structures which consist of specific maqam modes.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Sawt",
"url": "https://rateyourmusic.com/genre/sawt/",
"description": "Poetic vocal form with complex rhythms, emotive singing, and distinctive lute-backed melodies commonly found in the Gulf region and based on a maqam system.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Sawt",
"url": "https://rateyourmusic.com/genre/sawt/",
"description": "Poetic vocal form with complex rhythms, emotive singing, and distinctive lute-backed melodies commonly found in the Gulf region and based on a maqam system.",
"level": "sub-3",
"parent": "Arabic Classical Music"
},
{
"name": "Sawt",
"url": "https://rateyourmusic.com/genre/sawt/",
"description": "Poetic vocal form with complex rhythms, emotive singing, and distinctive lute-backed melodies commonly found in the Gulf region and based on a maqam system.",
"level": "sub-3",
"parent": "Arabic Classical Music"
}
]
}{
"name": "Arabic Pop",
"description": "Synthesis of Arabic Music with Western Pop melodies, almost always sung in Arabic and typically performed with Arabic instruments, alongside some Western instruments like the guitar.",
"url": "https://rateyourmusic.com/genre/arabic-pop/",
"parent": "Pop",
"level": "sub",
"children_count": 4,
"children": [
{
"name": "Al jeel",
"url": "https://rateyourmusic.com/genre/al-jeel/",
"description": "Emerged in the 1970s as an alternative to Shaabi, taking influence from foreign Pop and incorporating rhythms of Reggae while retaining a distinctly Egyptian sound.",
"level": "sub-2",
"parent": "Arabic Pop"
},
{
"name": "Al jeel",
"url": "https://rateyourmusic.com/genre/al-jeel/",
"description": "Emerged in the 1970s as an alternative to Shaabi, taking influence from foreign Pop and incorporating rhythms of Reggae while retaining a distinctly Egyptian sound.",
"level": "sub-3",
"parent": "Arabic Pop"
},
{
"name": "Mūsīqā lubnāniyya",
"url": "https://rateyourmusic.com/genre/musiqa-lubnaniyya/",
"description": "Lebanese pop genre that emerged post-independence as a nationalist tradition distinct from Egyptian and Levantine music, blending local influences with western orchestration, peaking in Lebanon's 1957–1975 golden age through radio, cinema, and stage.",
"level": "sub-2",
"parent": "Arabic Pop"
},
{
"name": "Mūsīqā lubnāniyya",
"url": "https://rateyourmusic.com/genre/musiqa-lubnaniyya/",
"description": "Lebanese pop genre that emerged post-independence as a nationalist tradition distinct from Egyptian and Levantine music, blending local influences with western orchestration, peaking in Lebanon's 1957–1975 golden age through radio, cinema, and stage.",
"level": "sub-3",
"parent": "Arabic Pop"
}
]
}