Install
$ agentstack add skill-librarier-f-video-to-article-skill-video-to-article-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
核心改进(2024.05.09 更新)
1. Cookie 处理优化
- ✅ 自动生成标准 Netscape 格式的 cookies.txt
- ✅ 直接使用用户提供的 SESSDATA 值
- ✅ 保留 cookies.txt 用于后续使用
- ✅ 修复了路径和格式错误问题
2. 内容完整性增强
- ✅ 完整读取和处理 80% 以上的字幕内容
- ✅ 直接在内存中处理,不保存中间文件
- ✅ 不进行预截断,完整处理所有内容
- ✅ 增加内容完整性验证逻辑
3. 文件管理简化
- ✅ 只保留 cookies.txt,其他临时文件直接删除
- ✅ 最终只生成一个 HTML 文章文件
- ✅ 不生成元数据、分析报告等中间文件
- ✅ 简化流程,提高处理速度
4. 工作流程优化
- ✅ 简化步骤,直接在内存中处理字幕
- ✅ 使用内置 HTML 模板,无需外部脚本
- ✅ 改善错误处理和调试信息
- ✅ 添加内容完整性检查清单
5. 高效生成策略
- ✅ 直接读取字幕到内存,不保存中间文件
- ✅ 基于模板直接生成 HTML,不使用 Python
- ✅ 快速预览和调整
- ✅ 清理临时文件,保持工作目录整洁
视频转文章技能
将视频的字幕内容转换为一篇结构清晰、排版精美的中文HTML文章。快速高效,只保留必要的输出文件。
快速安装
前置依赖
本 skill 依赖 yt-dlp 来下载视频字幕。已内置于 skill 目录,开箱即用:
video-to-article/
└── component/
└── yt-dlp.exe # Windows 版,已包含
> 如果内置版本无法使用,skill 会自动回退到系统 PATH 中的 yt-dlp。
macOS / Linux
如需手动安装:
# 方法一:使用 Homebrew(推荐)
brew install yt-dlp
# 方法二:使用 pip
pip3 install yt-dlp
Linux
如需手动安装:
# 方法一:使用 pip(推荐)
pip install yt-dlp
# 方法二:使用 pipx
pipx install yt-dlp
# 方法三:下载独立可执行文件
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
安装 Skill
将本 skill 文件夹复制到 Claude Code 的 skills 目录:
# 克隆仓库
git clone https://github.com/YOUR_USERNAME/video-to-article.git
# 复制到 Claude Code skills 目录
# Windows
cp -r video-to-article "$HOME/.claude/skills/"
# macOS / Linux
cp -r video-to-article ~/.claude/skills/
验证安装
# 检查 yt-dlp 是否安装成功
yt-dlp --version
# 检查 skill 是否加载成功
# 在 Claude Code 中输入 /video-to-article 应该能看到 skill 说明
配置说明
yt-dlp 路径配置
skill 会按以下顺序检测 yt-dlp:
| 优先级 | 平台 | 路径 | |--------|------|------| | 1(内置) | Windows | {skill目录}/component/yt-dlp.exe | | 2 | Windows | C:/Program Files/yt-dlp/yt-dlp.exe | | 3 | macOS | /usr/local/bin/yt-dlp | | 4 | macOS | /opt/homebrew/bin/yt-dlp | | 5 | Linux | /usr/local/bin/yt-dlp | | 6 | Linux | /usr/bin/yt-dlp |
输出目录配置
默认输出目录:当前工作目录
可在 skill 调用时指定其他目录。
文章风格选项(HTML文章)
如果用户选择 HTML文章,必须使用 AskUserQuestion 询问用户希望使用哪种风格。
可选风格列表
| 序号 | 风格名称 | Style Name | 描述 | 设计特点 | |------|---------|-----------|------|---------| | 1 | 蓝白商务 | Blue & White Business | 默认风格,专业简洁 | 蓝色渐变Hero、白色卡片、衬线标题、柔和阴影 | | 2 | Notion深色 | Notion Dark Mode | Notion深色模式 | 深色背景、衬线标题、紧凑排版、彩色标注系统 | | 3 | Claude风格 | Claude Style | Claude经典设计系统 | 赭石红+米白背景、衬线字体、噪点纹理 | | 4 | 暗黑科技 | Cyber Tech | 赛博朋克/黑客帝国风格 | 深黑背景、霓虹光效、故障艺术、网格动画 | | 5 | 极简现代 | Minimal Modern | 简约留白、优雅衬线 | 极致留白、衬线字体、深绿强调 |
风格选择流程
> 注意:AskUserQuestion 工具最多支持4个选项。
- 当用户提供视频链接并要求生成HTML文章时
- 第一步:使用 AskUserQuestion 询问风格(4个选项,极简现代包含在内):
``` 询问内容:请问您希望使用哪种文章风格? 选项:
- 蓝白商务(推荐)- 专业简洁,蓝色渐变Hero
- Notion深色 - 深色背景,彩色标注系统
- Claude风格 - 赭石红+米白,噪点纹理
- 极简现代 - 简约留白,深绿强调,中文数字
```
- 第二步(确认前):用户选完风格后,生成文章之前,主动提示还有另一种风格可选:
``` 询问内容:您选择了「XXX」风格。顺带一提,还有「暗黑科技」风格可选——赛博朋克风格,霓虹光效,要不要换? 选项:
- 不用了,就用「XXX」
- 换成暗黑科技
```
- 用户确认后,按对应风格的设计规范生成文章
- 如果用户未指定风格,默认使用蓝白商务 (Blue & White Business) 风格
风格规范文件
- 蓝白商务:
SKILL.md内置规范 +references/blue-white-business-style.md - Notion深色:
SKILL.md内置「Notion深色风格设计规范」章节 - Claude风格:
references/claude-style.md - 暗黑科技:
references/cyber-tech-style.md - 极简现代:
references/minimal-modern-style.md
⚠️ 内容来源与版权说明(重要)
在使用本技能生成的内容时,必须遵守以下来源标注要求:
为什么需要来源标注?
本技能基于视频字幕整理内容,生成的文章、口播稿等属于二次加工而非原创内容。为了:
- 尊重原视频创作者的版权
- 避免平台判定为抄袭/搬运
- 构建健康的内容生态
各平台来源标注要求
小红书文案
在正文开头或结尾添加:
📺 内容来源:视频标题
🔗 原视频链接:https://www.youtube.com/watch?v=xxx
📢 整理自 @频道名称
公众号文章
在文章开头(标题下方)添加:
---
来源说明:
本文整理自 YouTube 视频《视频标题》
原视频链接:https://www.youtube.com/watch?v=xxx
原频道:@频道名称
---
口播稿/短视频配音
在口播稿开头添加来源说明,并在视频描述中注明:
【内容来源】
本视频内容整理自:《视频标题》
原视频:https://www.youtube.com/watch?v=xxx
原频道:@频道名称
平台原创标识注意事项
| 平台 | 要求 | 建议 | |------|------|------| | 小红书 | 建议标注来源 | 发布时在正文或评论区注明 | | 公众号 | 建议标注来源 | 文章开头添加来源说明 | | 口播稿/短视频 | 必须标注 | 视频描述区+口播稿开头都要有 | | 微信公众号 | 尊重原创 | 如需商用,建议联系原作者获得授权 |
用户引导话术
在生成内容后,必须向用户提示:
> 「⚠️ 重要提示:生成的内容基于视频字幕整理,发布前请务必添加原始视频来源信息。建议注明「内容整理自@频道名」或附上原视频链接,尊重原创,合理使用。」
输出平台选择
在用户输入视频链接后,必须首先询问用户希望将内容输出到哪个平台。
可选平台
| 平台 | 主格式 | 说明 | |------|--------|------| | HTML文章 | .html | 网页阅读,保留原有功能 | | 小红书文案 | .txt | 纯文本,复制即用 | | 公众号文章 | .md | Markdown格式,支持排版工具 | | 口播稿 | .txt | 短视频配音稿,可直接使用 |
完整交互流程
用户输入视频链接
↓
【步骤1】询问输出平台:
1. HTML文章
2. 小红书文案
3. 公众号文章
4. 口播稿
↓
【步骤2】根据平台询问具体选项:
├─ 选择HTML文章时 → 询问文章风格
│ └─ 风格选择:蓝白商务/Notion深色/Claude风格/极简现代 → (是否换暗黑科技)
├─ 选择小红书文案时 → 询问文体类型
│ └─ 文体:种草文/干货文/情感文/清单文
├─ 选择公众号文章时 → 询问文体类型
│ └─ 文体:热点解读/深度长文/金句提炼/故事叙述
└─ 选择口播稿时 → 询问文体类型
└─ 文体:爆款开场/故事叙述/清单列表/情绪共鸣 → (是否选对话挑战)
↓
【步骤3】询问输出语言:
1. 简体中文
2. English
↓
生成对应格式的内容
小红书文体选项
| 文体类型 | 适用场景 | 模板文件 | |---------|---------|---------| | 种草安利文 | 产品推荐、好物分享 | references/xiaohongshu/zhongcao.md | | 干货教程文 | 技能分享、方法教程 | references/xiaohongshu/ganhuo.md | | 情感共鸣文 | 情感故事、人生感悟 | references/xiaohongshu/qinggan.md | | 清单盘点文 | 资源整理、清单合集 | references/xiaohongshu/qingdan.md |
公众号文体选项
| 文体类型 | 适用场景 | 模板文件 | |---------|---------|---------| | 热点解读文 | 社会热点、行业趋势 | references/wechat/redian.md | | 深度长文 | 知识科普、深度分析 | references/wechat/shendu.md | | 金句提炼文 | 内容精华、语录整理 | references/wechat/jinju.md | | 故事叙述文 | 案例分享、经历讲述 | references/wechat/gushi.md |
口播稿文体选项
| 文体类型 | 适用场景 | 模板文件 | |---------|---------|---------| | 爆款开场型 | 知识干货、认知颠覆 | references/koupogao/baokuan.md | | 故事叙述型 | 个人经历、经验分享 | references/koupogao/gushi.md | | 清单列表型 | 技巧盘点、方法汇总 | references/koupogao/qingdan.md | | 对话挑战型 | 观点表达、争议话题 | references/koupogao/duihua.md | | 情绪共鸣型 | 情感话题、人生感悟 | references/koupogao/qingxu.md |
双格式输出规范
| 平台 | 主格式 | 辅助格式 | 用途 | |------|--------|---------|------| | 小红书 | .txt | .html 预览 | 直接复制发布 / 本地预览 | | 公众号 | .md | .html 预览 | 粘贴到编辑器 / 本地预览 | | 口播稿 | .txt | .html 预览 | 直接配音使用 / 本地预览 | | HTML文章 | .html | - | 网页阅读 |
文件命名规范
{平台}-{文体类型}-{视频标题简称}.{扩展名}
示例:
├── HTML-蓝白商务-6个吸引力法则.html
├── 小红书-种草文-6个吸引力法则.txt
├── 小红书-种草文-6个吸引力法则-预览.html
├── 公众号-热点解读-6个吸引力法则.md
├── 公众号-热点解读-6个吸引力法则-预览.html
├── 口播稿-爆款开场-起床后工作1分钟.txt
└── 口播稿-爆款开场-起床后工作1分钟-预览.html
Notion 深色风格设计规范
> 版本 1.0 · 基于Notion 2024深色模式实际观测值
色彩系统(Color System)
基础背景层
| 层级 | 用途 | HEX | CSS 变量 | |------|------|-----|----------| | 底层背景 | 页面最外层 | #191919 | --bg-base | | 内容背景 | 文章主体卡片 | #202020 | --bg-surface | | 悬浮/弹出 | Tooltip、菜单 | #2f2f2f | --bg-elevated | | 边框 | 分割线、表格线 | #2e2e2e | --border | | 悬停高亮 | hover 状态 | #ffffff0f | --hover |
文字色阶
| 层级 | 用途 | HEX | CSS 变量 | |------|------|-----|----------| | 主文字 | 正文、标题 | #e3e3e3 | --text-primary | | 次级文字 | 描述、副标题 | #9b9b9b | --text-secondary | | 占位/禁用 | placeholder | #555555 | --text-muted |
强调色(彩色标注系统)
| 颜色 | 文字色 | 背景色 | |------|--------|--------| | 蓝 | #4a7ab5 | #0e1f3b | | 绿 | #518c5a | #122215 | | 橙 | #c07a3d | #2e1e0f | | 黄 | #b8a030 | #292306 | | 粉 | #b05c83 | #2e1020 |
字体系统(Typography)
字体族
/* 标题:衬线体 */
--font-serif: 'Noto Serif SC', Georgia, 'Times New Roman', serif;
/* 正文:无衬线体 */
--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
/* 代码 */
--font-mono: "SFMono-Regular", Menlo, Consolas, "Liberation Mono", Courier, monospace;
字号与行高规范
| 元素 | 字号 | 行高 | 字重 | |------|------|------|------| | H1 | 2em (约40px) | 1.2 | 700 | | H2 | 1.5em (约30px) | 1.3 | 600 | | H3 | 1.25em (约25px) | 1.3 | 600 | | 正文(Body) | 16px | 1.75 | 400 | | 小字注释 | 14px | 1.6 | 400 |
间距系统(Spacing)
:root {
--space-xs: 2px;
--space-sm: 4px;
--space-md: 8px;
--space-lg: 16px;
--space-xl: 24px;
--space-2xl: 40px;
}
圆角系统
:root {
--radius-sm: 3px; /* 内联元素 */
--radius-md: 4px; /* 按钮、输入框 */
--radius-lg: 8px; /* 卡片、容器 */
}
内容宽度
.page-content {
max-width: 708px; /* Notion标准宽度 */
margin: 0 auto;
padding: 0 96px; /* 两侧留白 */
}
@media (max-width: 768px) {
.page-content { padding: 0 24px; }
}
设计原则
| 原则 | 说明 | |------|------| | 极简留白 | 内容即主角,装饰趋近于零 | | 紧凑节奏 | 段落间距极小(1–4px),块与块之间呼吸感来自内容结构而非空白 | | 中性色调 | 全站灰色系,彩色只服务于内容语义标注 | | 无品牌强调 | 无蓝色链接、无彩色按钮,界面退场让文字前进 | | 字重即层级 | 用字重(400/600/700)而非字色来区分标题层级 | | 交互极克制 | hover仅加轻微背景,无阴影、无缩放、无弹跳 |
Notion深色风格 HTML 模板
文章标题
:root {
/* 背景 */
--bg-base: #191919;
--bg-surface: #202020;
--bg-elevated: #2f2f2f;
--border: #2e2e2e;
--hover: rgba(255, 255, 255, 0.055);
/* 文字 */
--text-primary: #e3e3e3;
--text-secondary: #9b9b9b;
--text-muted: #555555;
/* 强调色 - Notion 标注系统 */
--accent-blue-text: #4a7ab5;
--accent-blue-bg: #0e1f3b;
--accent-green-text: #518c5a;
--accent-green-bg: #122215;
--accent-orange-text: #c07a3d;
--accent-orange-bg: #2e1e0f;
--accent-yellow-text: #b8a030;
--accent-yellow-bg: #292306;
/* 字体 */
--font-serif: 'Noto Serif SC', Georgia, serif;
--font-sans: ui-sans-serif, -apple-system, system-ui, sans-serif;
/* 间距 */
--space-xs: 2px;
--space-sm: 4px;
--space-md: 8px;
--space-lg: 16px;
--space-xl: 24px;
--space-2xl: 40px;
/* 圆角 */
--radius-sm: 3px;
--radius-md: 4px;
--radius-lg: 8px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-sans);
background: var(--bg-base);
color: var(--text-primary);
line-height: 1.75;
font-size: 16px;
}
.page {
max-width: 708px;
margin: 0 auto;
padding: 0 96px;
}
@media (max-width: 768px) {
.page { padding: 0 24px; }
}
h1 {
font-family: var(--font-serif);
font-size: 2em;
font-weight: 700;
line-height: 1.2;
color: var(--text-primary);
margin-top: 80px;
margin-bottom: var(--space-sm);
}
h2 {
font-family: var(--font-serif);
font-size: 1.5em;
font-weight: 600;
line-height: 1.3;
color: var(--text-primary);
margin-top: 1.6em;
margin-bottom: var(--space-sm);
}
p {
font-size: 16px;
line-height: 1.75;
color: var(--text-primary);
margin: 1px 0;
}
a {
color: inherit;
text-decoration: underline;
text-decoration-color: var(--text-secondary);
text-underline-offset: 2px;
}
a:hover {
text-decoration-color: var(--text-primary);
}
blockquote {
border-left: 3px solid var(--text-primary);
margin: var(--space-md) 0;
padding: var(--space-sm) var(--space-lg);
font-style: normal;
}
/* 标注块 (Callout) */
.callout {
display: flex;
align-items: flex-start;
gap: var(--space-md);
border-radius: var(--radius-md);
padding: var(--space-lg);
margin: var(--space-md) 0;
}
.callout-blue {
background: var(--accent-blue-bg);
}
.callout-green {
background: var(--accent-green-bg);
}
.callout-orange {
background: var(--accent-orange-bg);
}
.callout-yellow {
background: var(--accent-yellow-bg);
}
.callout-icon {
font-size: 18px;
line-height: 1;
flex-shrink: 0;
}
.callout-content {
flex: 1;
}
分类标签
文章标题
正文内容...
引用内容
章节标题
章节内容...
💡
重点提示内容
flex-shrink: 0;
}
hr {
border: none;
border-top: 1px solid var(--border);
margin: var(--space-lg) 0;
}
/* 标签 */
.tag {
display: inline-block;
background: var(--accent-blue-bg);
color: var(--accent-blue-text);
padding: 2px 8px;
border-radius: var(--radius-sm);
font-size: 12px;
font-weight: 500;
margin-bottom: var(--space-md);
}
分类标签
文章标题
正文内容...
引用内容
章节标题
章节内容...
💡
重点提示内容
工作流程(更新版)
交互式选择要求
在生成文章之前,必须使用 AskUserQuestion 工具依次让用户选择以下选项:
- 输出平台:HTML文章 / 小红书文案 / 公众号文章
- 具体文体:根据平台显示对应选项
- 输出语言:简体中文 / English
第零步:确认输出平台
使用 AskUserQuestion 询问用户:
询问内容:请问您希望将内容输出到哪个平台?
选项:
1. HTML文章 - 网页阅读,保留原有功能
2. 小红书文案 - 纯文本,复制即用
3. 公众号文章 - Markdown格式,支持排版工具
4. 口播稿 - 短视频配音稿,可直接使用
第零点五步:确认具体文体
根据平台选择,使用 AskUserQuestion 询问对应的具体文体:
HTML文章:
询问内容:请问您希望使用哪种文章风格?
选项:
1. 蓝白商务(推荐)- 专业简洁,蓝色渐变Hero
2. Notion深色 - 深色背景,彩色标注系统
3. Claude风格 - 赭石红+米白,噪点纹理
4. 暗黑科技 - 赛博朋克风格,霓虹光效
5. 极简现代 - 简约留白,深绿强调
小红书文案:
询问内容:请问您希望使用哪种小红书文体?
选项:
1. 种草安利文 - 产品推荐、好物分享
2. 干货教程文 - 技能分享、方法教程
3. 情感共鸣文 - 情感故事、人生感悟
4. 清单盘点文 - 资源整理、清单合集
公众号文章:
询问内容:请问您希望使用哪种公众号文体?
选项:
1. 热点解读文 - 社会热点、行业趋势
2. 深度长文 - 知识科普、深度分析
3. 金句提炼文 - 内容精华、语录整理
4. 故事叙述文 - 案例分享、经历讲述
口播稿: > 注意:AskUserQuestion 工具最多支持4个选项,口播稿共5种文体,分两步进行。
第一步(4个选项):
询问内容:请问您希望使用哪种口播稿文体?
选项:
1. 爆款开场型 - 知识干货、认知颠覆
2. 故事叙述型 - 个人经历、经验分享
3. 清单列表型 - 技巧盘点、方法汇总
4. 情绪共鸣型 - 情感话题、人生感悟
第二步(如果用户需要第5种可选风格):
询问内容:还有一种「对话挑战型」风格——适合观点表达、争议话题,要不要看看?
选项:
1. 不用了,就用前面的风格
2. 对话挑战型 - 观点表达、争议话题
第一步:确认输出语言
使用 AskUserQuestion 询问输出语言:
询问内容:请问您希望文章使用哪种语言输出?
选项:
1. 简体中文(推荐)- 翻译字幕后整理,适合中文读者
2. English - 保留英文内容,适合国际读者
语言相关处理
- 简体中文:如果字幕是英文,需要翻译成中文后整理
- English:如果字幕是中文,需要翻译成英文后整理;如果字幕是英文,直接整理
第二步:获取视频信息(简化版)
直接使用 yt-dlp 获取基本信息,不保存到文件:
# 获取视频信息(输出到终端)
yt-dlp --print "%(title)s" --print "%(uploader)s" --print "%(upload_date)s" --print "%(duration)s" --print "%(thumbnail)s" --print "%(webpage_url)s" --skip-download "视频链接"
从链接识别平台:
| 平台 | 链接特征 | 图标 | |------|---------|------| | YouTube | youtube.com / youtu.be | 📺 | | Bilibili | bilibili.com / b23.tv | 📱 | | Twitter/X | twitter.com / x.com | 🐦 | | Vimeo | vimeo.com | 🎬 |
第三步:下载字幕(简化高效版)
使用 yt-dlp 下载字幕,只保留必要的 cookie 文件:
Cookie 处理(保留 cookies.txt):
如果用户提供了 SESSDATA(对于 Bilibili),我们会自动创建标准格式的 cookies.txt 文件(这个文件会保留):
# 如果用户提供了 SESSDATA,自动创建 cookie 文件
if [ -n "$USER_SESSDATA" ]; then
# 自动生成标准格式的 cookie 文件(保留)
cat > cookies.txt /dev/null; then
SUBTITLE_FILE=$(ls -1t *.zh-Hans.srt | head -1)
elif ls *.ai-zh.srt 2>/dev/null; then
SUBTITLE_FILE=$(ls -1t *.ai-zh.srt | head -1)
elif ls *.srt 2>/dev/null; then
SUBTITLE_FILE=$(ls -1t *.srt | head -1)
elif ls *.vtt 2>/dev/null; then
SUBTITLE_FILE=$(ls -1t *.vtt | head -1)
fi
关键改进说明:
- 自动生成标准 Netscape 格式的 cookie 文件
- 同时尝试下载手动和自动字幕,确保获取最完整的内容
- 保留所有下载的字幕文件用于后续分析
- 记录字幕文件列表和行数
支持的视频平台
| 平台 | 字幕支持 | 备注 | |------|---------|------| | YouTube | ✅ 手动+自动 | 最佳支持 | | Bilibili | ✅ CC字幕 + AI字幕 | 有CC字幕直接下载;无字幕需提供SESSDATA获取AI字幕 | | Twitter/X | ✅ 内嵌字幕 | 部分 video 支持 | | Vimeo | ✅ 手动字幕 | 依赖上传者添加 | | 其他 | ⚠️ 有限支持 | 取决于平台 |
第四步:处理字幕并生成HTML(直接内存处理)
直接在内存中读取和处理字幕:
# 直接读取字幕内容到变量,不保存中间文件
FULL_SUBTITLE_CONTENT=$(cat "$SUBTITLE_FILE")
CONTENT_LENGTH=$(echo "$FULL_SUBTITLE_CONTENT" | wc -c)
LINE_COUNT=$(echo "$FULL_SUBTITLE_CONTENT" | wc -l)
echo "📊 字幕文件统计:"
echo " - 文件大小: ${CONTENT_LENGTH} 字节"
echo " - 总行数: ${LINE_COUNT} 行"
# 简单的字幕清洗 - 去除时间戳标签但保留所有文本内容
CLEAN_CONTENT=$(echo "$FULL_SUBTITLE_CONTENT" | \
sed '/^[0-9]\+$/d' | \
sed '/-->.*$/d' | \
sed '/^$/d' | \
sed 's/]*>//g')
# 内容预览(前100行和后50行)
echo "📝 字幕内容预览(前100行):"
echo "═══════════════════════════════════════════════════"
echo "$CLEAN_CONTENT" | head -100
echo "═══════════════════════════════════════════════════"
echo "📝 字幕内容预览(后50行):"
echo "═══════════════════════════════════════════════════"
echo "$CLEAN_CONTENT" | tail -5
…
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [Librarier-f](https://github.com/Librarier-f)
- **Source:** [Librarier-f/video-to-article-skill](https://github.com/Librarier-f/video-to-article-skill)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.