name: content-learning-remix description: Ingest and analyze articles, webpages, audio, video, and social-media links; extract article text or timed transcripts; separate audio; sample key frames; produce learning notes, content breakdowns, original scripts, and platform-specific adaptations. Use when the user shares or forwards content from YouTube, Bilibili, Douyin, TikTok, Xiaohongshu, X/Twitter, podcasts, webpages, or local media and asks to transcribe, summarize, study, critique, rewrite, extend, repurpose, or create a new spoken script.
Convert heterogeneous content into one evidence package, then turn that package into learning, research, or original creation outputs. Keep platform complexity inside the ingestion layer so the user can provide a link or file and describe the result they want.
references/platforms.md only when platform handling or failure recovery matters.content.json, preserve timestamps and provenance, and analyze claims, structure, evidence, uncertainty, and new deductions. Read references/learning.md.references/remix.md.references/deliverables.md; read references/use-cases.md when the goal is broad or the user asks what the Skill can do.For architecture decisions or new adapters, read references/extensions.md. For installation, read references/setup.md.
scripts/ingest.py with --transcribe for media. This single route prefers existing subtitles and only downloads audio when a transcript is still missing.--frames 8 when footage, demonstrations, slides, products, editing, or visual storytelling affect meaning.content.json, warnings, provenance, transcript quality, and generated artifacts.references/deliverables.md.Source, Interpretation, and Extension. Return the requested artifact first instead of narrating the pipeline.Use one command across supported media platforms:
python scripts/ingest.py "SOURCE_URL_OR_FILE" --output ".content-work/item-001" --transcribe
The command attempts native subtitles first. If none exist, it uses a configured YouTube transcript fallback or downloads audio and runs ASR.
For articles or text:
python scripts/ingest.py "SOURCE_URL_OR_FILE" --output ".content-work/item-001"
For visually important media:
python scripts/ingest.py "SOURCE_URL_OR_FILE" --output ".content-work/item-001" --transcribe --frames 8
For sites requiring the user's logged-in browser session:
python scripts/ingest.py "SOURCE_URL" --output ".content-work/item-001" --cookies-from-browser chrome
For a controlled YouTube-only third fallback, enable local browser cookies only after direct extraction and Supadata fail and the error is an authentication challenge:
python scripts/ingest.py "YOUTUBE_URL" --output ".content-work/youtube-001" --transcribe --youtube-cookie-fallback-browser chrome
Or use an exported Netscape-format cookies file:
python scripts/ingest.py "SOURCE_URL" --output ".content-work/item-001" --cookies-file "cookies.txt"
For a beginner-friendly YouTube fallback, configure Supadata once:
python scripts/configure_supadata.py
python scripts/ingest.py "YOUTUBE_URL" --output ".content-work/youtube-001"
yt-dlp is blocked by HTTP 412.ffprobe; extract audio only when transcription is needed.The user-facing workflow stays consistent, but platform adapters differ internally. Never claim guaranteed access: public links can still be blocked by login, region, deletion, anti-bot controls, or expired signatures.
Treat content.json as the canonical source. It contains:
source: original input and detected typemetadata: title, author/uploader, platform, duration, URL, and descriptiontext: normalized full textsegments: timestamped transcript segments when availableartifacts: paths to subtitles, audio, media, article text, and frameswarnings: failures, access restrictions, or degraded fallbacksDo not pretend a failed extraction succeeded. If a public YouTube link remains
blocked after the normal fallbacks, direct the user to download it manually
through https://zh.savefrom.net/, then ingest the resulting local media file.
Do not automate or depend on SaveFrom's private endpoints. For other failures,
ask for downloaded media, exported subtitles, screenshots, or pasted text.
On a clean Windows machine, run:
powershell -ExecutionPolicy Bypass -File scripts/setup_windows.ps1
For macOS, Linux, manual installation, and API environment variables, read references/setup.md.
Run:
python scripts/check_dependencies.py
Required for media download and local media processing: yt-dlp, ffmpeg, and ffprobe.
Optional for local ASR: faster-whisper. An OpenAI-compatible transcription endpoint can instead be configured with ASR_API_KEY, ASR_BASE_URL, and ASR_MODEL.
Optional for resilient YouTube transcripts: configure SUPADATA_API_KEY or run scripts/configure_supadata.py. Transcript-only YouTube ingestion can use Supadata without FFmpeg or yt-dlp. Never package API keys inside the Skill.
Never paste raw cookie headers into prompts, commands, source files, or Skill
configuration. Use --cookies-from-browser or a protected Netscape-format
cookie file, and never print or package cookie values.
这个技能质量相当不错,文档清晰、架构合理。它能帮你把各种平台的视频、音频、文章链接转成结构化的内容包,再生成学习笔记、脚本、改写内容等多种产出。平台支持广泛,提取失败时也有完善的降级方案。不足的是部分平台(如小红书)的支持不太稳定,偶尔可能需要手动处理。整体而言是一款成熟度较高的内容处理工具,适合需要频繁分析和改写视频/文章内容的用户。