Skip to content

Add the cloudinary-video skill - #23

Open
konforti wants to merge 2 commits into
cloudinary-devs:mainfrom
konforti:add-cloudinary-video-skill
Open

konforti wants to merge 2 commits into
cloudinary-devs:mainfrom
konforti:add-cloudinary-video-skill

Conversation

@konforti

Copy link
Copy Markdown

Adds cloudinary-video to the collection, alongside the four existing skills.

What it covers

Building video experiences on the Cloudinary Video Player — adaptive streaming, chapters, captions, transcripts, hotspots, AI analysis and metadata — and migrating media onto Cloudinary from Brightcove, Vimeo, YouTube or Wistia.

It deliberately does not restate what cloudinary-transformations and cloudinary-docs already teach; it covers the video-specific decisions those skills leave open — which delivery strategy a given source calls for, what the player owns versus what the URL owns, and which AI features are free versus add-on gated.

Layout matches the existing skills: SKILL.md plus a references/ directory that the main file links into, with the same frontmatter shape (name, description, license, metadata.author, metadata.version).

The claim tests

The skill ships with test/skill-claims.sh, which asserts its load-bearing factual claims against live endpoints — transformation behaviour (e.g. that a resize cannot be combined with sp_auto), async output shapes, player distribution URLs, and documented source-platform limits.

The reasoning: a skill that is confidently wrong is worse than one that is silent, because an agent following it will not second-guess it. These tests make a stale claim fail loudly instead.

./skills/cloudinary-video/test/skill-claims.sh          # no credentials needed

24 checks, all passing. --cloud additionally provisions a fresh cloud to assert the upload and add-on claims; it needs media fixtures pointed at by MEDIA_DIR, which are too large to vendor here and live in the repo where this skill is developed.

This is the first test suite in the repo, so if you would rather keep skills test-free I am happy to drop that directory — the skill itself stands alone without it.

Provenance

Developed in CloudinaryLtd/cloudinary-video-skill, where the demo site it was built and validated against also lives. That demo stays behind; only the skill and its tests move here.

🤖 Generated with Claude Code

konforti and others added 2 commits September 14, 2026 17:39
Covers building video experiences on the Cloudinary Video Player —
adaptive streaming, chapters, captions, transcripts, hotspots and AI
analysis — plus migrating media in from Brightcove, Vimeo, YouTube and
Wistia.

The skill ships with the claim tests it was built against. They assert
the load-bearing factual claims (transformation behaviour, async output
shapes, player distribution, source-platform limits) against live
endpoints, so a claim going stale fails loudly rather than misleading an
agent. The default mode needs no credentials; --cloud additionally
provisions a cloud and needs media fixtures via MEDIA_DIR, which are too
large to vendor here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---

# Phase A — establish the assets

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Migration is about a third of this skill and most of it applies to images too. Should it be its own skill covering both image and video?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Main moved skills to skills/<category>/<name>/ in #22, and CONTRIBUTING.md requires that layout. This should move to skills/use-cases/cloudinary-video/

@jackieros jackieros Sep 24, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ed-cld - I'd think that a general cloudinary-video skill should move to /platform/ (similar to the upload & transformation skills) as a skill that gives general guidance about a major Cloudinary feature-area.

The use-case skills should be about implementing specific common end2end user-oriented use-cases - i.e. "create a product gallery", "generate an instagram post", etc

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, platform fits better

license: MIT
metadata:
author: cloudinary
version: '2.1.0'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Version should be 1.0.0, and the description should follow the platform shape in CONTRIBUTING.md ("Reference for… Use when…")

getting existing media onto a cloud.** Those skills handle transformation URLs.
Use them for that; use this for everything else.

## How to use this

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of our other skills have a Quick Start or Non-negotiable rules section near the top. The key video rules here are further down in B2 and B3


Basic auth with the API key and secret; both `playerOptions` and
`sourceOptions` are required and take arbitrary player/source keys. Full
reference: <https://cloudinary.com/documentation/video_player_profiles_reference>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link needs the .md version with ?install_source=skillspack&referrer=video-skill. CI misses it because it only checks .md and llms.txt links

video.js manages them as *remote* tracks. Use
`videojs.getPlayer(id).remoteTextTracks()`.

## Constructor options

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Constructor options, source(), chapters, textTracks, and interactionAreas sections repeat what's in the player docs. Maybe link to the docs there and keep only the traps and don'ts?

@@ -0,0 +1,122 @@
# Field guide: delivery best practices

Condensed from Cloudinary's internal CSM video onboarding checks & best

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This mentions it's condensed from the internal CSM guide. We should remove that since the repo is public

- Android: `f_mp4,vc_av1` → `f_webm,vc_vp9` → `f_mp4,vc_h264` (fallback)
- iOS: `f_mp4,vc_av1` → `f_mp4,vc_h265` → `f_mp4,vc_h264` (fallback)

…or by sending an `Accept` header (e.g. `video/webm; codecs="vp9"`,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our docs are missing the Accept header, AV1, and mobile SDK breakpoints info. Would be a good time to add it

fi

SKILL=..
DEMO_CLOUD=dxuiuruim # a claimed cloud with the full feature set present

@ed-cld ed-cld Sep 24, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--cloud mode needs fixtures from the private cloudinary-video-skill repo, and the other checks depend on assets in the dxuiuruim cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants