android-media-pack
Health Pass
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 11 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in scripts/install-media-skills.sh
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
AndroidX Media3 1.10.1 skill pack for AI coding agents: ExoPlayer migration, Compose player UI, streaming, DRM, ads, analytics, and tests.
android-media-pack: Android Media3 Skills for AI Coding Agents
Current versions: android-media-pack v2.0.0 · Media3 1.10.1
AndroidX Media3 skill pack for AI coding agents building Android and Kotlin Multiplatform media apps with Media3 1.10.1.
Use this pack when you want OpenAI Codex, GitHub Copilot, Claude Code, Cursor, Gemini CLI, or another coding agent to change real media code without guessing from stale ExoPlayer examples, old blog posts, or generic Android advice.
It is built for common Android media development searches: ExoPlayer to Media3 migration, Media3 Compose player UI, Android streaming architecture, HLS and DASH playback, live streams, VOD, background playback, Widevine DRM, IMA ads, QoE analytics, thumbnails, Transformer export, and Media3 tests.
Search and LLM Discovery
This repository is written in plain Markdown so search engines, repository search, and LLM retrieval tools can understand the project from the README and linked docs.
For LLM-friendly retrieval, use llms.txt. It is a compact index of the pack, install commands, canonical docs, and all 31 skill files.
Common discovery phrases this pack answers:
- Android Media3 skills for AI coding agents
- AndroidX Media3 skill pack for Codex, Copilot, Claude Code, Cursor, and Gemini CLI
- ExoPlayer to Media3 migration skill
- Media3 Compose UI player skill
- Android KMP streaming media architecture
- Media3 HLS DASH DRM ads analytics testing skills
What You Get
31 focused skills for the work media apps usually need:
| Area | Use it for |
|---|---|
| Architecture | KMP boundaries, player ownership, feeds, preload windows, offline-first data, telemetry contracts |
| Migration | ExoPlayer 2.x to Media3, XML PlayerView to Compose UI |
| Playback | video, audio, VOD, background playback, lifecycle state |
| Streaming and protocols | HLS, DASH, SmoothStreaming, RTSP, MIDI, live, live-only streams, buffer policy |
| Delivery | DataSource, HTTP stacks, cache, bandwidth, ABR, Cast |
| UI and devices | Compose, Views, adaptive layouts, phones, tablets, foldables, TV, Auto, XR |
| Protection | Widevine, license headers, offline licenses, HDCP and L1/L3 behavior |
| Ads and analytics | IMA CSAI/SSAI, ad UI, QoE telemetry, TTFF, rebuffer, dropped frames |
| Inspection | metadata, thumbnails, frame extraction, container checks |
| Processing and tests | Transformer, effects, Lottie, muxer, test utilities, Robolectric |
All skills are short, current, and task-shaped. They tell the agent what to inspect, what to avoid, and which Media3 APIs belong in Android source sets instead of commonMain.
Why Skills Help
Without this pack, an agent often burns context on broad search and mixed-era examples.
| Task | Without skills | With this pack |
|---|---|---|
| Migrate ExoPlayer | Agent may mix com.google.android.exoplayer2.* with androidx.media3.* and chase old migration snippets. |
migrate-exoplayer-to-media3 gives the package boundary and current Media3 target first. |
| Build Compose player UI | Agent may wrap old PlayerView in AndroidView by default. |
media3-compose-ui-material3 points at Media3 Compose UI, ContentFrame, player controls, and lifecycle-safe state. |
| Make UI responsive | Agent may stretch a phone player across tablets, foldables, TV, Auto, or XR. | Adaptive and device skills split mobile/tablet/foldable UI from TV, Auto, and XR constraints. |
| Build reels or short-feed playback | Agent may create a player per row or preload too much. | streaming-media-architecture sets one owner, a bounded window, thumbnail handoff rules, and telemetry gates. |
| Add HLS/DASH playback | Agent may treat live and VOD the same. | Streaming skills split HLS/DASH, live, live-only, VOD, ABR, and manifest failure handling. |
| Add DRM or ads | Agent may hide errors behind generic playback failures. | Protection and ads skills keep license/ad errors separate from content errors and telemetry. |
This is not magic. It is better context. The agent starts closer to the right architecture, which means less token burn, fewer wrong paths, and less cleanup.
Latest Media3 Baseline
The pack targets Media3 1.10.1, released May 12, 2026 in the official AndroidX Media3 release notes. That release includes fixes and API movement relevant to playback, extractors, inspector frame extraction, and Media3 Compose UI.
Primary source: AndroidX Media3 release notes.
Install
The repository stores source skills under .skills/media/. The installer flattens them into the folder your agent actually reads.
Default target:
your-android-project/.agents/skills/<skill-name>/SKILL.md
Install with the CLI:
curl -fsSL https://raw.githubusercontent.com/sunnat629/android-media-pack/main/bin/android-media-skill \
-o android-media-skill
chmod +x android-media-skill
./android-media-skill install /path/to/your-android-project
Common commands:
./android-media-skill install /path/to/project
./android-media-skill update /path/to/project
./android-media-skill list /path/to/project
./android-media-skill doctor /path/to/project
Install into a specific agent folder:
MEDIA_SKILLS_DEST=.claude/skills ./android-media-skill install /path/to/project
MEDIA_SKILLS_DEST=.cursor/skills ./android-media-skill install /path/to/project
MEDIA_SKILLS_DEST=.gemini/skills ./android-media-skill install /path/to/project
One-line install:
cd your-android-project
curl -fsSL https://raw.githubusercontent.com/sunnat629/android-media-pack/main/scripts/install-media-skills.sh \
| bash -s -- . https://github.com/sunnat629/android-media-pack main
The installer replaces matching media skill folders in the destination. It does not delete unrelated skills.
Agent Paths
| Agent | Project-local target |
|---|---|
| GitHub Copilot, OpenCode, Gemini CLI, OpenAI Codex | .agents/skills/<skill-name>/SKILL.md |
| Claude Code | .claude/skills/<skill-name>/SKILL.md |
| Cursor | .cursor/skills/<skill-name>/SKILL.md |
| Gemini CLI | .gemini/skills/<skill-name>/SKILL.md |
| Junie | .junie/skills/<skill-name>/SKILL.md, then reference them from .junie/guidelines.md |
Use
Ask naturally:
Migrate this project from ExoPlayer 2.x to Media3.
Build a Compose Media3 video player screen with proper lifecycle handling.
Design a reels feed player architecture for KMP with bounded preloading.
The agent should load the matching skill and use it as task context.
Skills
| Skill | Best first use |
|---|---|
streaming-media-architecture |
Start here for KMP, feeds, ownership, preload, architecture |
migrate-exoplayer-to-media3 |
Replace legacy ExoPlayer packages and APIs |
migrate-xml-ui-to-compose |
Move XML player UI to Compose |
media3-background-playback-service |
MediaSessionService, notification, media buttons |
media3-lifecycle-state |
MediaController lifecycle, saved state, process death |
media3-compose-ui-material3 |
Media3 Compose UI and Material3 controls |
media3-adaptive-compose-ui |
Responsive Compose UI across phones, tablets, foldables, and large screens |
media3-view-ui-player |
Android Views PlayerView, XML UI, and Compose interop |
media3-tv-leanback-ui |
Android TV Leanback UI, D-pad focus, overscan-safe controls |
media3-android-auto-media-surface |
Android Auto media sessions, browse trees, transport controls |
media3-xr-media-surface |
Android XR media surface planning, immersive UI, current-doc checks |
media3-video-playback |
Surfaces, aspect ratio, first frame, HDR, PiP |
media3-audio-playback |
Audio focus, attributes, becoming-noisy, session controls |
media3-vod-playback |
Resume, playlists, chapters, thumbnails |
media3-rtsp-playback |
RTSP camera feeds, LAN streams, reconnect, credential-safe errors |
media3-smoothstreaming-playback |
SmoothStreaming manifests and adaptive playback caveats |
media3-midi-playback |
MIDI playback dependency checks and generated-audio caveats |
media3-hls-dash-adaptive-streaming |
Adaptive streaming, manifests, subtitles, buffering |
media3-live-streaming |
Live offset, DVR, catch-up, reconnect |
media3-live-only-streaming |
Non-DVR streams with no seeking or resume |
media3-datasources-networking |
HTTP, cache, headers, auth, custom DataSource |
media3-bandwidth-abr |
Bandwidth, ABR limits, load control |
media3-cast-integration |
CastPlayer and local-to-remote handoff |
media3-workmanager-offline-ops |
WorkManager-backed offline operations, constraints, retries, cleanup |
media3-drm-widevine-setup |
Widevine, licenses, HDCP, L1/L3 |
media3-ads-ima |
IMA CSAI/SSAI ads and companion UI |
media3-analytics-telemetry |
QoE, TTFF, rebuffer, dropped frames, player errors |
media3-inspector-metadata-thumbnails |
Metadata, thumbnails, frame/container inspection |
media3-transformer-editing |
Transformer trim, transcode, export jobs, progress, cancellation |
media3-video-effects-lottie-muxer |
Video effects, Lottie overlays, muxing, export boundaries |
media3-test-utils-robolectric |
Media3 test utilities, Robolectric patterns, fake playback state |
Sample App
sampleApp/ is a Compose Material3 demo app with a large Media3 Compose video surface, HLS and DASH sample streams, playback controls, a progress bar, and a compact skills summary. The full skill list is behind the top info button so the home screen stays focused on playback.
Run it from the repository root:
./run-sample-app.sh --serial <device-serial>
Related
Complements android/skills. Same SKILL.md format. Prefer canonical android/skills when a skill exists in both.
Docs
LLM index · Changelog · Compatibility · Contributing · References · Security · Code of Conduct
Questions go to Discussions. Bugs go to Issues.
License
Apache License 2.0. Copyright 2026 Shunnek Labs and contributors.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found