Token导航 LogoToken导航TokenDH.com
前端设计敏感数据github未标认证来源可访问许可证需确认审计异常

videovideo 视频

Agent Skill

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

总安装

973

周安装

39

GitHub Stars

326

下载量

315
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:video(video 视频)
来源仓库:https://github.com/ibigqiang/feedgrab
仓库路径:skills/video
安装命令:
npx skills add https://github.com/ibigqiang/feedgrab --skill video
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/ibigqiang/feedgrab --skill video

简介

用于辅助视频生成、动画合成、video 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

  • 脚本化剪辑或 Remotion 项目开发。
  • 适合组织镜头、生成素材说明、维护合成代码或排查渲染问题。
  • 使用时需确认分辨率、时长、素材路径和导出格式;
  • 涉及外部素材时核对版权授权。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Video & Podcast Digest Skill

Send a video/podcast link → get full transcript + structured summary

Supported Platforms

PlatformTypeSubtitlesWhisper Transcription
YouTubeVideo
BilibiliVideo
X/TwitterVideo
Xiaoyuzhou (小宇宙)Podcast
Apple PodcastsPodcast
Direct links (mp3/mp4/m3u8)Any

Trigger

Auto-triggered when a media URL is detected:

  • YouTube: youtube.com, youtu.be
  • Bilibili: bilibili.com, b23.tv
  • X/Twitter: x.com, twitter.com (tweets with video)
  • Xiaoyuzhou: xiaoyuzhoufm.com
  • Apple Podcasts: podcasts.apple.com
  • Direct: .mp3, .mp4, .m3u8, .m4a, .webm

Pipeline

Step 0: Detect Media Type

URL PatternTypePipeline
xiaoyuzhoufm.com/episode/Podcast→ Step 1b (Xiaoyuzhou)
podcasts.apple.comPodcast→ Step 1c (Apple)
bilibili.com, b23.tvVideo→ Step 1d (Bilibili API)
.mp3, .m4a direct linkAudio→ Step 2b (direct download)
OtherVideo→ Step 1a (subtitle extraction)

Step 1a: Video — Extract Subtitles

rm -f /tmp/media_sub*.vtt /tmp/media_audio.mp3 /tmp/media_transcript*.json /tmp/media_segment_*.mp3 2>/dev/null || true

# YouTube (prefer English, fallback Chinese)
yt-dlp --skip-download --write-auto-sub --sub-lang "en,zh-Hans" -o "/tmp/media_sub" "VIDEO_URL"

# Bilibili
yt-dlp --skip-download --write-auto-sub --sub-lang "zh-Hans,zh" -o "/tmp/media_sub" "VIDEO_URL"

Check for subtitles:

ls /tmp/media_sub*.vtt 2>/dev/null
  • Has subtitles → Read VTT content, skip to Step 3
  • No subtitles → Step 2a (download audio)

Step 1b: Xiaoyuzhou (小宇宙) — Extract Audio URL

AUDIO_URL=$(curl -sL -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" \
  "EPISODE_URL" \
  | grep -oE 'https://media\.xyzcdn\.net/[^"]+\.(m4a|mp3)' \
  | head -1)

echo "Audio URL: $AUDIO_URL"
curl -L -o /tmp/media_audio.mp3 "$AUDIO_URL"

→ Step 2b

Step 1c: Apple Podcasts — via yt-dlp

yt-dlp -f "ba[ext=m4a]/ba/b" --extract-audio --audio-format mp3 --audio-quality 5 \
  -o "/tmp/media_audio.%(ext)s" "APPLE_PODCAST_URL"

→ Step 2b

Step 1d: Bilibili — API Direct Audio Stream

BV="BV1xxxxx"

curl -s "https://api.bilibili.com/x/web-interface/view?bvid=$BV" \
  -H "User-Agent: Mozilla/5.0" -H "Referer: https://www.bilibili.com/" \
  | python3 -c "import json,sys; d=json.load(sys.stdin)['data']; print(f\"Title: {d['title']}\nDuration: {d['duration']}s\nCID: {d['cid']}\")"

CID=<CID from previous step>
AUDIO_URL=$(curl -s "https://api.bilibili.com/x/player/playurl?bvid=$BV&cid=$CID&fnval=16&qn=64" \
  -H "User-Agent: Mozilla/5.0" -H "Referer: https://www.bilibili.com/" \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['data']['dash']['audio'][0]['baseUrl'])")

curl -L -o /tmp/media_audio.m4s \
  -H "User-Agent: Mozilla/5.0" -H "Referer: https://www.bilibili.com/" "$AUDIO_URL"
ffmpeg -y -i /tmp/media_audio.m4s -acodec libmp3lame -q:a 5 /tmp/media_audio.mp3

→ Step 2b

Step 2a: Video — Download Audio (when no subtitles)

yt-dlp --cookies-from-browser chrome -f "ba[ext=m4a]/ba/b" --extract-audio --audio-format mp3 --audio-quality 5 \
  -o "/tmp/media_audio.%(ext)s" "VIDEO_URL"

Step 2b: Check Audio Size & Segment

FILE_SIZE=$(stat -f%z /tmp/media_audio.* 2>/dev/null || stat -c%s /tmp/media_audio.* 2>/dev/null)
echo "File size: $FILE_SIZE bytes"
  • ≤ 25MB → Step 2c (transcribe directly)
  • > 25MB → Split into 10-minute segments:
DURATION=$(ffprobe -v error -show_entries format=duration -of csv=p=0 /tmp/media_audio.* | head -1)
SEGMENT_SEC=600
SEGMENTS=$(python3 -c "import math; print(math.ceil(float('$DURATION')/$SEGMENT_SEC))")

for i in $(seq 0 $((SEGMENTS-1))); do
  START=$((i * SEGMENT_SEC))
  ffmpeg -y -i /tmp/media_audio.* -ss $START -t $SEGMENT_SEC -acodec libmp3lame -q:a 5 \
    "/tmp/media_segment_${i}.mp3" 2>/dev/null
done

→ Call Step 2c for each segment sequentially (parallel triggers Groq 524 timeout)

Step 2c: Whisper Transcription

Prerequisite: GROQ_API_KEY environment variable

if [ -z "$GROQ_API_KEY" ]; then
  echo "❌ GROQ_API_KEY not set. Get one at: https://console.groq.com/keys"
  exit 1
fi

curl -s -X POST "https://api.groq.com/openai/v1/audio/transcriptions" \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@AUDIO_FILE" \
  -F "model=whisper-large-v3-turbo" \
  -F "response_format=verbose_json" \
  -F "language=zh" \
  > /tmp/media_transcript.json

python3 -c "import json; print(json.load(open('/tmp/media_transcript.json'))['text'])"

Step 3: Structured Summary

Video (≤20 min):

  1. Overview (1-2 sentences)
  2. Key Points (3-5 bullet points)
  3. Notable Quotes (if any)
  4. Action Items (if applicable)

Podcast (>20 min):

  1. Overview (2-3 sentences)
  2. Chapter Summary (segmented by topic)
  3. Key Points (5-8 bullet points)
  4. Notable Quotes
  5. Action Items (if applicable)

Error Handling

SituationAction
No subtitles + no GROQ_API_KEYPrompt user to set API key
Audio >25MBffmpeg segment (10min/segment), transcribe sequentially
Podcast >2 hoursWarn user, confirm before proceeding
Groq 524 timeoutDo NOT parallelize — transcribe sequentially, sleep 5-8s between
Groq 429 rate limitWait for retry-after header, then retry
yt-dlp Bilibili 412Use Bilibili API instead (Step 1d)
yt-dlp YouTube bot detectionAdd --cookies-from-browser chrome
Spotify linksNot supported (DRM protected)

Dependencies

  • yt-dlp: video download + subtitle extraction
  • ffmpeg: audio conversion + segmentation
  • curl: audio download, API calls
  • GROQ_API_KEY: Whisper transcription (free at https://console.groq.com/keys)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.02%
按下载量换算104

Claude

29.64%
按下载量换算93

Cursor

18.03%
按下载量换算57

Gemini CLI

10.74%
按下载量换算34

安全审计

Gen Agent Trust Hub

未通过

Socket

可疑

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills