# Media Search

Find and play music/videos via youtube_search + browser_navigate

- Repository: https://github.com/taracodlabs/aiden (868 stars)
- Category: Media
- License: Apache-2.0
- Last updated: 2026-10-19
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add taracodlabs/aiden --skill media-search -g -a claude-code -y`
Codex: `npx skills add taracodlabs/aiden --skill media-search -g -a codex -y`
Cursor: `npx skills add taracodlabs/aiden --skill media-search -g -a cursor -y`
Gemini CLI: `npx skills add taracodlabs/aiden --skill media-search -g -a gemini-cli -y`

## Description

Find and play music/videos via youtube_search + browser_navigate

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Media Search & Play

Resolve "play X" / "listen to X" / "find me a song" requests by chaining
`web_search` (optional, for fuzzy intent) → `youtube_search` (REQUIRED,
returns real watch URLs) → `browser_navigate` (REQUIRED, must use a URL that
came back from `youtube_search`). Keep navigation, interaction and Evidence
inside the owned Browser Session. Navigation alone does not prove playback.

<execute_action>
The user's request authorizes the requested media action, subject to the
runtime's approval and browser policy. Use the actual available controlled
browser tools. External `open_url` launching is unavailable inside durable
Jobs and is not a recovery path.

After navigation, inspect the player. If playback has not started, use the
observed play control through an admitted browser action. Verify observable
player state (for example paused=false and advancing currentTime, when
supported) before claiming playback. A screenshot or loaded watch URL alone
does not establish that audio is playing.

Do not bypass approval, login, CAPTCHA, browser policy, or autoplay restrictions.
If a supported action or verification is unavailable, report that exact
limitation. Never claim success from an attempted action.
</execute_action>

<selection_rule>
How strict you should be about picking a candidate from
`youtube_search` depends on how specific the user's query is.

**VAGUE query**, no specific song or artist named. Examples:
"play me a popular song", "play me a hindi song", "play
something upbeat", "put on some jazz", "play a sad song".

→ Walk the `youtube_search` candidates **top-down** and pick
   the **first one** whose `title` does NOT match any of the
   anti-patterns below. That is the answer. Do not score
   candidates further; do not look for "the most official one";
   do not compare view counts. The first non-anti-pattern wins.

   **Anti-pattern keywords** (match case-insensitively against
   `title`):

The rest: https://github.com/taracodlabs/aiden/blob/HEAD/skills/media-search/SKILL.md
