Agent skill

Video Transcripts

by udecode in udecode/plate-playground-template

Transcribe a supplied local or linked video with Gemini Files API when its contents are needed as evidence.

MITAuto-check passedKnowledge Management

Install Video Transcripts

skills CLI
$ npx skills add udecode/plate-playground-template --skill video-transcripts -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install udecode/plate-playground-template video-transcripts --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/udecode/plate-playground-template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/video-transcripts .claude/skills/video-transcripts && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
video-transcripts
GitHub stars
240
Token cost
~1.6k tokens
SKILL.md length
792 words
Files
2 (incl. scripts)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Transcribe a supplied local or linked video with Gemini Files API when its contents are needed as evidence.

  • Works in 12 steps: Run the helper once for each relevant… → Give each run a short, bug-focused… → For tracked work, the canonical shared… → …
  • Tasks that involve Video and podcast notes
  • SKILL.md covers Quick Start, Use This When, Workflow and Output Contract, plus 2 more sections
  • Runs Shell scripts from its folder; calls bash, gh and codex; reaches umbrella.svc.screencastify.com and uploads.linear.app; needs GITHUB_TOKEN and GH_TOKEN

What it does

Video Transcripts is an agent skill from udecode/plate-playground-template. Transcribe a supplied local or linked video with Gemini Files API when its contents are needed as evidence.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/generate_video_transcript.sh`).

It sits in Knowledge Management, covering Video and podcast notes and Transcription. It works with GitHub. The repository describes itself as: Plate AI template with React 19, Next 16, Tailwind 4, MCP. The licence is MIT.

When your agent uses it

  • Tasks that involve Video and podcast notes
  • Tasks that involve Transcription

Example prompts

  • “/video-transcripts”

Requirements

  • A Bash shell
  • A credential in GITHUB_TOKEN
  • A credential in GEMINI_API_KEY

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Run the helper once for each relevant video.
  2. Give each run a short, bug-focused --title.
  3. For tracked work, the canonical shared cache should live in the tracker next to the evidence it describes.
  4. If the video is in the issue or PR body, use a top-level tracker comment.
  5. If the video is in a Linear comment, post the transcript cache as a reply to that specific comment.
  6. If the video is in a GitHub issue or PR comment, use one dedicated top-level cache comment for that source comment's video set. GitHub has…
  7. Cache comment or reply body should start with a transcript source link, then
  8. When caching helper XML, strip the and
  9. If there are multiple videos in the same source container, repeat the
  10. Do not hand-write or paraphrase video behavior when the helper can run. Use the actual transcript output.
  11. Link [Transcript] to the video URL when available. If the video URL is not available or is unstable, link to the source comment that…
  12. For signed tracker-hosted URLs like uploads.linear.app, strip the query string so a new signature does not invalidate an otherwise valid…

What it can do on your machine

Read from SKILL.md and the folder at commit 324070e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • gh
    • codex

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • umbrella.svc.screencastify.com
    • uploads.linear.app
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN
    • GH_TOKEN
    • GEMINI_API_KEY
    • GOOGLE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Video Transcripts loads about 1.6k tokens when it runs. Until then it costs about 31 tokens; SKILL.md has 792 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~31
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from udecode/plate-playground-template at commit 324070e, republished under its MIT licence (© udecode). 792 words, ~1,645 tokens.

Download SKILL.mdSave it as .claude/skills/video-transcripts/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
video-transcripts
description
Transcribe a supplied local or linked video with Gemini Files API when its contents are needed as evidence.

Video Transcripts

Quick Start

Run the helper once per relevant video. <skill> is this skill's directory:

bash
bash <skill>/scripts/generate_video_transcript.sh \
  "https://uploads.linear.app/.../screen-recording.mov" \
  --title "PDF preview hyperlinks trigger leave-page modal"

Or for a GitHub attachment:

bash
bash <skill>/scripts/generate_video_transcript.sh \
  "https://github.com/user-attachments/assets/..." \
  --title "Slash menu loses selection after confirm"

Or for a Screencastify watch page:

bash
bash <skill>/scripts/generate_video_transcript.sh \
  "https://app.screencastify.com/watch/..." \
  --title "Bulk send expands filtered recipients"

Or for a local file:

bash
bash <skill>/scripts/generate_video_transcript.sh \
  "/absolute/path/to/video.mov" \
  --title "Preview hyperlink exits workflow"

For auth-gated Linear uploads, the helper automatically retries with cookies from the local Linear desktop app on macOS. For private GitHub asset URLs, it retries with GITHUB_TOKEN, GH_TOKEN, or gh auth token when available.

Use This When

  • A GitHub or Linear issue, PR, or comment includes a screen recording.
  • An attachment URL points to uploads.linear.app.
  • An attachment URL points to a GitHub attachment or private GitHub asset host.
  • A tracker links to a public Screencastify watch page.
  • You need timeline-style transcript lines, not a vague summary.
  • You want the result in this exact XML shape:
xml
<video-transcripts>
<video-transcript title="...">
[00:00] (...)
</video-transcript>
</video-transcripts>

Workflow

A tracker comment or reply that anyone outside the team can read, such as one on a public repository, needs explicit message authority; one only the team can read follows the project's message rule. Prepare or return the transcript locally when publication is not authorized. Cache location and reuse rules below do not grant permission to post.

  1. Run the helper once for each relevant video.
  2. Give each run a short, bug-focused --title.
  3. For tracked work, the canonical shared cache should live in the tracker next to the evidence it describes.
  4. If the video is in the issue or PR body, use a top-level tracker comment.
  5. If the video is in a Linear comment, post the transcript cache as a reply to that specific comment.
  6. If the video is in a GitHub issue or PR comment, use one dedicated top-level cache comment for that source comment's video set. GitHub has no replies, so keep cache comments separated by source container instead of merging unrelated comment videos together.
  7. Cache comment or reply body should start with a transcript source link, then the timestamp lines:
md
[[Transcript](link to video or comment if not available)]
[00:00] (...)
  1. When caching helper XML, strip the <video-transcripts> and <video-transcript ...> wrapper lines and paste only timestamp lines after the source link.
  2. If there are multiple videos in the same source container, repeat the [[Transcript](...)] source link plus timestamp lines for each video.
  3. Do not hand-write or paraphrase video behavior when the helper can run. Use the actual transcript output.
  4. Link [[Transcript](...)] to the video URL when available. If the video URL is not available or is unstable, link to the source comment that contains the video.
  5. For signed tracker-hosted URLs like uploads.linear.app, strip the query string so a new signature does not invalidate an otherwise valid cache entry. For Screencastify, cache against the stable https://app.screencastify.com/watch/<id> URL, not the signed dash-assets HLS URLs.
  6. Do not add decorative metadata like title to cached transcript entries unless a later workflow truly needs it.
  7. Before re-transcribing for tracked work, match cache entries by source container first:
    • one cache comment for issue or PR body videos
    • one Linear reply per comment containing video(s)
    • one dedicated GitHub cache comment per issue or PR comment containing video(s)
  8. If the matching cache already covers the current normalized video keys for that source container, reuse it. Only transcribe missing or new video evidence.
  9. Do not use docs/ for raw tracker transcript cache. That is durable repo knowledge space, not raw issue evidence.
  10. If you invoke this through codex exec, prefer -o <file> so the final XML is captured without CLI progress chatter.
Show full SKILL.md (223 more words)Show less

Output Contract

  • Return XML, not Markdown.
  • Use one [MM:SS] (...) line per observed action or system response.
  • Quote visible UI text when legible.
  • Describe only visible actions, screen changes, and audible speech if present.
  • Do not invent hidden state, motives, or implementation details.
  • Prefer concise, high-signal lines over per-keystroke sludge.

Model Strategy

The helper defaults to gemini-3.1-flash-lite-preview for cost efficiency.

If that output is malformed, too thin, or obviously noisy, it retries with gemini-3-flash-preview.

For Gemini 3 models, the helper forces minimal thinking so output budget goes to the transcript instead of hidden reasoning.

Override with:

bash
VIDEO_TRANSCRIPTS_MODEL=gemini-3-flash-preview bash <skill>/scripts/generate_video_transcript.sh ...

Or:

bash
bash <skill>/scripts/generate_video_transcript.sh ... \
  --model gemini-2.5-flash

Notes

  • The helper accepts a local file path or remote URL.
  • For uploads.linear.app URLs, it first tries LINEAR_COOKIE_HEADER, then LINEAR_COOKIES_DB, then falls back to the local Linear desktop cookie store at ~/Library/Application Support/Linear/Cookies.
  • For GitHub asset URLs, it first tries GITHUB_TOKEN, then GH_TOKEN, then gh auth token, then falls back to an unauthenticated download.
  • For Screencastify watch URLs, it calls https://umbrella.svc.screencastify.com/api/umbrellaService/watch/<id>, resolves the signed HLS manifest, rewrites child playlists so segments keep the signature, and remuxes the recording with ffmpeg.
  • Screencastify URL support requires ffmpeg.
  • It looks for GEMINI_API_KEY, then GOOGLE_API_KEY.
  • If neither is set, it tries ~/.bash_profile before failing.
  • Use --debug-dir <dir> when you want request and response artifacts saved.
  • Quality gate rejects obvious low-signal transcripts such as repeated partial typing runs and falls back automatically.

© udecode, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in .agents/skills/video-transcripts of udecode/plate-playground-template.

  • SKILL.md
  • scripts/generate_video_transcript.sh

Open the folder on GitHubat commit 324070e

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in udecode/plate-playground-template, which our catalogue first saw on October 8, 2026.

Compare with similar skills

Video Transcripts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Video Transcripts compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Video Transcripts this skilludecode/plate-playground-template240—~1.6kAutomated safety check: PassMIT
Video Lenskar2phi/video-lens113—~8.2kAutomated safety check: NotesMIT
Youtube Transcript Extractor API Skillbrowser-act/skills6.1k1 repos~1.2kAutomated safety check: PassMIT
Youtube Transcriptintellectronica/agent-skills2953 repos~394Automated safety check: PassCC0-1.0
Video SummaryJimLiu/baocut530—~771Automated safety check: PassCustom licence
Timestamped Video Summarycnfjlhj/ai-collab-playbook452—~608Automated safety check: PassNone

Similar skills

  • Video Lens

    kar2phi/video-lens

    Fetch a YouTube transcript and generate an executive summary, key points, and timestamped topic list as a polished HTML report.

    113 GitHub stars~8.2k tokensUpdated 1 mo ago
    Knowledge ManagementAuto-check: notes
  • This skill helps users automatically extract YouTube video transcripts and metadata via the BrowserAct API.

    6.1k GitHub starsUsed in 1 repo~1.2k tokens
    Knowledge ManagementAuto-check passed
  • Youtube Transcript

    intellectronica/agent-skills

    Extract transcripts from YouTube videos. An agent skill from intellectronica/agent-skills.

    295 GitHub starsUsed in 3 repos~394 tokens
    Knowledge ManagementAuto-check passed
  • Video Summary

    JimLiu/baocut

    用户要总结一个视频、提炼要点、写内容摘要或会议纪要式的回顾时用:按主题写成总结正文,另附一组带视频时间的要点,方便跳回那一段。需要视频的转写。不用于总结与视频无关的文章或纯文本,也不用于写博客文章(那是另一种产出)。

    530 GitHub stars~771 tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Timestamped Video Summary

    cnfjlhj/ai-collab-playbook

    Generate a detailed, professional video content summary from timestamped subtitles/transcripts (e.g., lines starting with 00:00 / 1:23:45).

    452 GitHub stars~608 tokensUpdated 23 days ago
    Knowledge ManagementAuto-check passed
  • Second Brain Transcript

    undefined-ui/second-brain-os

    Clean a raw transcript before ingestion: punctuate, paragraph, label speakers, fix mistranscribed technical terms, and split long recordings by topic.

    1k GitHub stars~504 tokensUpdated today
    Knowledge ManagementAuto-check passed

More from udecode/plate-playground-template

  • Autoreview

    udecode/plate-playground-template

    Structured code review when explicitly requested, preferring OpenAI/Codex before Claude.

    240 GitHub starsUsed in 1 repo~5.3k tokens
    Auto-check passed
  • Browser Debug Setup

    udecode/plate-playground-template

    One-time setup for a persistent debug browser on 127.0.0.1:9222 for dev-browser --connect.

    240 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Testing

    udecode/plate-playground-template

    Skill: testing

    240 GitHub stars~415 tokensUpdated today
    Auto-check passed

Works with

Questions about Video Transcripts

What does Video Transcripts do?

Transcribe a supplied local or linked video with Gemini Files API when its contents are needed as evidence. Video Transcripts is an agent skill from udecode/plate-playground-template. Transcribe a supplied local or linked video with Gemini Files API when its contents are needed as evidence.

When should I use Video Transcripts?

Video Transcripts fits situations like: tasks that involve Video and podcast notes; tasks that involve Transcription.

How do I install Video Transcripts in Claude Code?

Run `npx skills add udecode/plate-playground-template --skill video-transcripts -a claude-code`. Or copy the skill folder (.agents/skills/video-transcripts in udecode/plate-playground-template) into .claude/skills/video-transcripts in your project. Claude Code loads it when a task matches its description.

How do I install Video Transcripts in Codex?

Run `npx skills add udecode/plate-playground-template --skill video-transcripts -a codex`. Or copy the skill folder (.agents/skills/video-transcripts in udecode/plate-playground-template) into .agents/skills/video-transcripts in your project. Codex loads it when a task matches its description.

Can I use Video Transcripts in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add udecode/plate-playground-template --skill video-transcripts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-transcripts, .gemini/skills/video-transcripts, .github/skills/video-transcripts and .opencode/skills/video-transcripts in your project.

What does Video Transcripts need to run?

Going by SKILL.md and its folder, Video Transcripts needs a shell for the scripts in its folder, the command-line tools its instructions call (bash, gh and codex) and credentials named GITHUB_TOKEN, GH_TOKEN, GEMINI_API_KEY and GOOGLE_API_KEY. Our summary lists: A Bash shell; A credential in GITHUB_TOKEN; A credential in GEMINI_API_KEY.

Does Video Transcripts access the network?

SKILL.md names 3 domains. In commands or code: umbrella.svc.screencastify.com, uploads.linear.app and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Video Transcripts safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Video Transcripts use?

Video Transcripts is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Video Transcripts use?

About 1.6k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Video Transcripts?

Skills that share tags, products or a category with Video Transcripts: Video Lens (kar2phi/video-lens, 113 stars), Youtube Transcript Extractor API Skill (browser-act/skills, 6.1k stars), Youtube Transcript (intellectronica/agent-skills, 295 stars) and Video Summary (JimLiu/baocut, 530 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Video Transcripts?

udecode (a GitHub organization) maintains it in udecode/plate-playground-template, which has 240 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.

Source: udecode/plate-playground-template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.