Generate structured video transcripts from local files or video URLs using Gemini Files API. Use when a GitHub or Linear tracker item, comment, or attachment includes a screen recording, .mov, .mp4, or tracker-hosted video and you need a <video-transcripts> block instead of hand-written notes.
72
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Run the helper once per relevant video:
bash .agents/skills/video-transcripts/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 .agents/skills/video-transcripts/scripts/generate_video_transcript.sh \
"https://github.com/user-attachments/assets/..." \
--title "Slash menu loses selection after confirm"Or for a local file:
bash .agents/skills/video-transcripts/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.
uploads.linear.app.<video-transcripts>
<video-transcript title="...">
[00:00] (...)
</video-transcript>
</video-transcripts>--title.[[Transcript](link to video or comment if not available)]
[00:00] (...)<video-transcripts> and
<video-transcript ...> wrapper lines and paste only timestamp lines after
the source link.[[Transcript](...)] source link plus timestamp lines for each video.[[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.uploads.linear.app, strip the query string so a new signature does not invalidate an otherwise valid cache entry.title to cached transcript entries unless a later workflow truly needs it.docs/ for raw tracker transcript cache. That is durable repo knowledge space, not raw issue evidence.codex exec, prefer -o <file> so the final XML is captured without CLI progress chatter.[MM:SS] (...) line per observed action or system response.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:
VIDEO_TRANSCRIPTS_MODEL=gemini-3-flash-preview bash .agents/skills/video-transcripts/scripts/generate_video_transcript.sh ...Or:
bash .agents/skills/video-transcripts/scripts/generate_video_transcript.sh ... \
--model gemini-2.5-flashuploads.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.GITHUB_TOKEN, then GH_TOKEN, then gh auth token, then falls back to an unauthenticated download.GEMINI_API_KEY, then GOOGLE_API_KEY.~/.bash_profile before failing.--debug-dir <dir> when you want request and response artifacts saved.45116fd
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.