npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bitmovin/skills

v0.1.0

Published

Install Bitmovin's AI skill into Claude Code, Cursor, Windsurf, GitHub Copilot, and other AI coding tools with one command.

Readme

Bitmovin Skills

A collection of portable agent skills for working with the Bitmovin platform and video development in general.

This repo is intentionally not tied to Claude Code only:

  • Each skill lives under skills/<skill-name>/SKILL.md as portable markdown
  • .claude-plugin/ provides Claude Code plugin wrappers
  • plugins/<skill-name>/.codex-plugin/plugin.json provides Codex plugin wrappers
  • The canonical skills/ layout is compatible with skills.sh
  • The same skill files can also be installed directly into ChatGPT/Codex-style local skills directories

Skills

| Skill | Status | What it covers | | --- | --- | --- | | bitmovin | Available | Hub skill — routes to all Bitmovin products and walks through MCP/CLI/SDK setup. Hosted at bitmovin.com/skill. | | bitmovin-player-web | Available | Bitmovin Web Player SDK — Player v8 (stable) and Player Web X / PWX (next-gen) | | bitmovin-player-android | Available | Bitmovin Android Player SDK integration and troubleshooting | | bitmovin-encoding-vod | Available | VOD encoding with the Bitmovin Encoding API (H.264 per-title, fixed ladder, AV1 UGC, hardware-accelerated sports clips) via the Encoding Templates API | | bitmovin-encoding-live | Available | Live encoding with the Bitmovin Encoding API (RTMP, redundant RTMP, SRT) via the Encoding Templates API | | bitmovin-observability | Planned | Bitmovin Analytics and observability tooling | | video-development | Planned | General video development guidance (codecs, packaging, DRM, streaming protocols) not specific to Bitmovin |

The sections below describe install paths shared by all skills in this repo. Skill-specific details live inside each skill's directory.

Quick Install With npx (any AI tool)

For the hub bitmovin skill — the one-prompt entry point that introduces every Bitmovin product and walks through MCP/CLI/SDK setup — run:

npx @bitmovin/skills

The wizard detects which AI tool you're using (Claude Code, Cursor, Windsurf, GitHub Copilot, OpenAI Codex, …) and installs the skill into the right location. Pass --target <name> to skip the prompt or --list-targets to see the full list. Source: bin/cli.js.

The wizard fetches the canonical skill content from https://bitmovin.com/skill so updates to the hosted skill propagate to existing installs without republishing the package.

Install In Claude Code

# Add the Bitmovin marketplace
/plugin marketplace add bitmovin/skills

# Install a plugin (one per skill)
/plugin install bitmovin-player-web@bitmovin

After install, the skill loads in every Claude Code session automatically. No further config.

Verify with "What skills do you have access to?" — the installed skill should appear.

Install In ChatGPT / Codex

If your ChatGPT/Codex setup supports local skills, copy the skill into your Codex home:

mkdir -p ~/.codex/skills/bitmovin-player-web
cp skills/bitmovin-player-web/SKILL.md ~/.codex/skills/bitmovin-player-web/SKILL.md

Repeat for any other skill in skills/ you want available.

Install With skills.sh

This repository is compatible with skills.sh because each skill lives under skills/<skill-name>/SKILL.md, which is one of the repository layouts that npx skills discovers automatically.

Examples:

# List the skills exposed by this repo
npx skills add bitmovin/skills --list

# Install just one skill interactively
npx skills add bitmovin/skills --skill bitmovin-player-web

# Install to specific agents
npx skills add bitmovin/skills --skill bitmovin-player-web -a claude-code -a codex

# Install globally without prompts
npx skills add bitmovin/skills --skill bitmovin-player-web -g -y

Use skills.sh when you want the portable skill installed into an agent's normal skill directory. Use the Claude or Codex plugin wrappers in this repo only when you specifically want those host-native plugin surfaces.

Install In Codex As A Plugin

This repo includes Codex plugin wrappers under plugins/<skill-name>/ plus repo-local marketplace metadata at .agents/plugins/marketplace.json.

For a home-local Codex plugin install, copy the plugin and marketplace entry into the standard Codex locations:

mkdir -p ~/.agents/plugins ~/plugins
cp -R plugins/bitmovin-player-web ~/plugins/bitmovin-player-web
cp .agents/plugins/marketplace.json ~/.agents/plugins/marketplace.json

If you already have ~/.agents/plugins/marketplace.json, merge in the new entries instead of overwriting the file.

A local Codex marketplace entry looks like:

{
  "name": "bitmovin-player-web",
  "source": {
    "source": "local",
    "path": "./plugins/bitmovin-player-web"
  },
  "policy": {
    "installation": "AVAILABLE",
    "authentication": "ON_INSTALL"
  },
  "category": "Coding"
}

Hosting (bitmovin.com/skill)

A Cloudflare Worker under worker/ serves the hub skill at bitmovin.com/skill with content negotiation:

  • Browsers (Accept: text/html) get a landing page with the npx @bitmovin/skills install command.
  • AI agents and curl/wget get raw markdown.
  • bitmovin.com/skill.md always returns markdown.

See worker/README.md for deploy steps. The Worker bundles skills/bitmovin/SKILL.md at deploy time, so updating the hosted skill requires wrangler deploy.

Repo Layout

  • skills/<skill-name>/: the portable skill content (one directory per skill, with SKILL.md plus any scripts / templates / examples it ships)
  • .claude-plugin/marketplace.json: Claude marketplace metadata (lists every skill exposed as a Claude plugin)
  • .claude-plugin/plugin.json: Claude Code plugin metadata for the legacy root-as-plugin layout (bitmovin-player-web)
  • plugins/<skill-name>/.claude-plugin/plugin.json: Claude Code plugin metadata (per-plugin layout used by newer skills)
  • plugins/<skill-name>/.codex-plugin/plugin.json: Codex plugin metadata (one per skill)
  • plugins/<skill-name>/skills/<skill-name>/: symlink back to skills/<skill-name>/ (for skills that ship only SKILL.md it can be a per-file symlink instead — bitmovin-player-web uses that variant)
  • .agents/plugins/marketplace.json: Codex marketplace metadata
  • worker/: Cloudflare Worker that serves the hub skill at bitmovin.com/skill
  • bin/, src/: @bitmovin/skills npx wizard sources

Skill: bitmovin-player-web

When you ask an agent to add video playback with Bitmovin, the skill:

  1. Defaults to Player v8 and only asks about PWX when the choice materially changes implementation
  2. Uses current UI guidance — default UI v4 for modern v8 setups, explicit/custom UI paths when needed
  3. Writes correct code — right npm package, right import paths, right API calls
  4. Covers DRM, ads, analytics, subtitles, network customization
  5. Uses framework patterns for React, Next.js (SSR-safe), and Vue
  6. Warns about common mistakes and links to authoritative docs

Why this skill exists

LLMs have stale or confused Bitmovin Player Web knowledge. Common failures without this skill:

  • Wrong npm package (@bitmovin/player — doesn't exist, it's bitmovin-player)
  • Assuming manual UIFactory wiring is required on every modern v8 integration
  • Using stale UI v3/v4 wiring or the wrong asset-loading path
  • No SSR guard on Next.js imports → crash
  • Outdated doc URLs (/playback/docs/* instead of /playback/reference/*)
  • Mixing v8 and PWX APIs in the same code

What's covered

Player v8 (stable): Installation, license keys, current default UI v4 guidance for modern releases, explicit/custom UI patterns, source config (HLS/DASH/Smooth/progressive), subtitles, thumbnails, poster, DRM (Widevine/PlayReady/FairPlay), ads (VAST/VMAP), analytics, network customization (preprocessHttpRequest + sendHttpRequest), React/Next.js/Vue patterns, modular builds, test streams, and full API references.

Player Web X / PWX (next-gen): Native PWX API (Player({key, defaultContainer}) + player.sources.add()), CDN bundles (hls, dash, core, bitmovin-v8 compat), v8 compatibility layer for drop-in migration, custom packages system, and dated notes about current feature gaps from the official support matrix.

Skill: bitmovin-encoding-live

When you ask an agent to start a Bitmovin live encoding, the skill:

  1. Drives the Encoding Templates API — a single POST /encoding/templates/start creates inputs, codec configs, encoding, streams, muxings, manifests, and starts the live encoding from one YAML document
  2. Ships three Jinja templates — single RTMP, redundant RTMP (HA ingest), and SRT (LISTENER / CALLER, optional AES passphrase)
  3. Walks the user one question at a time — encoding name, cloud region, output (reuse or create), output base path, manifests, ladder, audio bitrate, segment length, encoder version, auto-shutdown timeouts
  4. Validates the rendered template against Bitmovin's published Encoding Template JSON schema before submitting (the API otherwise accepts mistyped fields silently and the encoding gets stuck in CREATED)
  5. Polls until RUNNING and prints the ingest URL, manifest URLs, and dashboard URL
  6. Keeps secrets out of params, state, and logs — credentials are read from environment variables only

What's covered

CMAF output (fmp4 muxings serving DASH and HLS, manifestGenerator: V2); RTMP / RTMPS / SRT ingest; AWS / GCP / Azure cloud regions; S3 / GCS outputs (reuse or create); per-encoding stream key (RTMP) or host:port (SRT); ACL choices (PUBLIC_READ / PRIVATE / NONE); auto-shutdown on stream loss / no bytes read; STABLE vs BETA encoder.

Skill: bitmovin-encoding-vod

When you ask an agent to run a Bitmovin VOD encoding, the skill:

  1. Drives the Encoding Templates API — a single POST /encoding/templates/start creates inputs, codec configs, encoding, streams, muxings, manifests, and starts the encoding from one YAML document
  2. Ships four Jinja templates — H.264 per-title (algorithm-picked ladder, THREE_PASS), H.264 fixed ladder (you specify renditions), AV1 per-title for UGC (progressive MP4 per rendition, no manifest), and an H.264 sports-clips template using NVIDIA hardware acceleration (VOD_HARDWARE_SHORTFORM preset, hardcoded 9-rendition sports ladder, HLS-only, pinned to AWS_EU_WEST_1)
  3. Walks the user one question at a time — encoding name, input (reuse or create HTTPS), output (reuse or create), output base path, manifests, ladder, audio bitrate, segment length, encoder version, encoding mode
  4. Validates the rendered template against Bitmovin's published Encoding Template JSON schema before submitting
  5. Polls until FINISHED and prints manifest URLs and the dashboard URL
  6. Refuses to materialize credentialed inputs — only HTTP/HTTPS inputs are created from the skill; S3 / GCS / Azure inputs MUST be reused via an existing input id, so credentials never enter the params or template

What's covered

H.264 (per-title and fixed-ladder, SINGLE_PASS / TWO_PASS / THREE_PASS) and AV1 per-title; CMAF fmp4 (DASH + HLS) for the H.264 templates; progressive MP4 for AV1 UGC; HLS-only with explicit per-rendition manifest config for the sports-clips hardware template; HTTP / HTTPS / S3 / GCS / Azure inputs (creation only for HTTP/HTTPS); S3 / GCS outputs (reuse or create); ACL choices (PUBLIC_READ / PRIVATE / NONE) with scenario-aware defaults.

Other Hosts

Skill files are plain markdown and can be reused in any agent environment that supports local skills, such as Cursor, Copilot, Codex, Goose, Gemini CLI, and Cline. The host-specific wrappers in this repo are .claude-plugin/ for Claude Code and plugins/<skill-name>/.codex-plugin/ for Codex.

Contributing

The source of truth for each skill is skills/<skill-name>/ (with SKILL.md at the top plus any scripts, templates, and examples the skill ships). Keep it portable across hosts. If you change packaged plugin behavior or published metadata, keep the wrappers in sync:

  • .claude-plugin/plugin.json (legacy root-as-plugin layout, used by bitmovin-player-web)
  • .claude-plugin/marketplace.json
  • plugins/<skill-name>/.claude-plugin/plugin.json (per-plugin layout, used by newer skills)
  • plugins/<skill-name>/.codex-plugin/plugin.json
  • plugins/<skill-name>/skills/<skill-name>/ (symlink back to skills/<skill-name>/ — directory symlink for skills that ship scripts/templates/examples; per-file symlink works for SKILL.md-only skills)
  • .agents/plugins/marketplace.json

The plugin skill path is intentionally a symlink back into skills/<skill-name>/ so the repo only has one canonical skill payload per skill.

Keep instructions concrete: code examples for every claim, primary-source links, and explicit "common mistakes" sections.

License

MIT