subtitle-generation by eachlabs/skills
npx skills add https://github.com/eachlabs/skills --skill subtitle-generation使用 each::sense 为视频生成专业字幕和说明文字。此技能可创建精确的转录、多语言字幕、动态说明文字以及针对社交媒体、视频制作和无障碍访问优化的多种导出格式。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video with accurate timestamps",
"mode": "max",
"file_urls": ["https://example.com/my-video.mp4"]
}'
| 格式 |
|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 扩展名 |
|---|
| 使用场景 |
|---|
| SRT | .srt | 通用,大多数视频播放器和编辑器 |
| VTT | .vtt | 网络视频,HTML5 播放器,YouTube |
| 硬编码 | .mp4 | 社交媒体,无需播放器支持 |
| JSON | .json | 自定义应用程序,编程访问 |
| ASS/SSA | .ass | 高级样式,动漫字幕 |
自动从视频文件转录语音,并生成精确到词级别的时间戳。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Transcribe this video and generate subtitles with accurate timestamps. Output as SRT format. The video contains English speech.",
"mode": "max",
"file_urls": ["https://example.com/interview-video.mp4"]
}'
直接从音频生成多种语言的字幕。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video in English, Spanish, and French. Provide separate SRT files for each language. The original audio is in English.",
"mode": "max",
"file_urls": ["https://example.com/product-demo.mp4"]
}'
创建引人注目的动态说明文字,带有逐词高亮效果,在 TikTok 和 Instagram Reels 上很受欢迎。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add TikTok-style animated captions to this video. Use bold white text with black outline, word-by-word pop animation, centered at the bottom third of the screen. Make it trendy and engaging.",
"mode": "max",
"file_urls": ["https://example.com/short-form-content.mp4"]
}'
生成标准格式的干净字幕文件,用于视频编辑器或流媒体平台。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Transcribe this video and export subtitles in both SRT and VTT formats. Ensure proper line breaks (max 42 characters per line, 2 lines max). Include timestamps accurate to milliseconds.",
"mode": "max",
"file_urls": ["https://example.com/documentary.mp4"]
}'
生成能识别和标记对话、访谈或播客中不同说话人的字幕。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this podcast with speaker diarization. There are 2 speakers - identify them as Speaker 1 and Speaker 2 (or Host and Guest if you can determine roles). Format each line with the speaker label.",
"mode": "max",
"file_urls": ["https://example.com/podcast-episode.mp4"]
}'
将现有字幕从一种语言翻译成另一种语言,同时保留时间信息。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Translate these English subtitles to Japanese. Preserve the original timing and format. Ensure natural Japanese phrasing rather than literal translation.",
"mode": "max",
"file_urls": ["https://example.com/original-subtitles.srt"]
}'
将字幕直接渲染到视频文件中(硬编码/嵌入),使其无需播放器支持即可显示。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video and burn them directly into the video. Use white text with black background box, Arial font, positioned at bottom center. Output a new video file with embedded subtitles.",
"mode": "max",
"file_urls": ["https://example.com/social-media-clip.mp4"]
}'
创建带有逐词高亮的卡拉 OK 风格字幕,非常适合音乐视频和歌词内容。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Create karaoke-style subtitles for this music video. Display lyrics with word-by-word highlighting as they are sung. Use a gradient color change effect (from white to yellow) for the currently sung word. Center the text on screen.",
"mode": "max",
"file_urls": ["https://example.com/music-video.mp4"]
}'
微调字幕时间,以便更好地与音频同步。
# First, upload video and generate initial subtitles
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video",
"mode": "max",
"session_id": "subtitle-timing-project",
"file_urls": ["https://example.com/video-with-delay.mp4"]
}'
# Then adjust timing in the same session
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "The subtitles are appearing 500 milliseconds too early. Shift all subtitle timings forward by 500ms and regenerate the SRT file.",
"session_id": "subtitle-timing-project"
}'
在单个工作流中为多个视频生成字幕。
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate English subtitles for all these videos. Output SRT files for each. Use consistent formatting across all videos: max 2 lines, 42 characters per line, minimum 1 second display time per subtitle.",
"mode": "max",
"file_urls": [
"https://example.com/episode-01.mp4",
"https://example.com/episode-02.mp4",
"https://example.com/episode-03.mp4"
]
}'
请求生成字幕时,请在提示中包含以下详细信息:
"Generate [format] subtitles for this video.
Source language: [language].
[Number] speakers: [roles if known].
Style: [font, color, position requirements].
Special terms to recognize: [names, technical words].
Additional requirements: [line length, timing, etc.]"
在生成前询问您的用户:
"您想要快速且经济,还是高质量?"
| 模式 | 最适合 | 速度 | 质量 |
|---|---|---|---|
max | 最终字幕、专业内容、对准确性要求高 | 较慢 | 最高 |
eco | 快速草稿、审阅副本、批量处理 | 较快 | 良好 |
使用 session_id 来迭代字幕生成:
# Initial subtitle generation
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video with speaker identification",
"session_id": "subtitle-project-001",
"file_urls": ["https://example.com/interview.mp4"]
}'
# Refine based on feedback
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Change Speaker 1 label to John and Speaker 2 to Sarah. Also fix the spelling of TensorFlow wherever it appears.",
"session_id": "subtitle-project-001"
}'
# Add styling and export
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Now create a burned-in version with the corrected subtitles. Use yellow text for John and cyan for Sarah.",
"session_id": "subtitle-project-001"
}'
each::sense 支持 50 多种语言的字幕生成,包括:
| 语言 | 代码 | 备注 |
|---|---|---|
| 英语 | en | 美国、英国、澳大利亚变体 |
| 西班牙语 | es | 拉丁美洲和欧洲 |
| 法语 | fr | 法国和加拿大 |
| 德语 | de | |
| 日语 | ja | |
| 韩语 | ko | |
| 中文 | zh | 简体和繁体 |
| 阿拉伯语 | ar | 支持从右到左书写 |
| 印地语 | hi | |
| 葡萄牙语 | pt | 巴西和欧洲 |
| 错误 | 原因 | 解决方案 |
|---|---|---|
Failed to create prediction: HTTP 422 | 余额不足 | 在 eachlabs.ai 充值 |
| 转录质量低 | 音频质量差 | 提供更清晰的音频源 |
| 语言检测失败 | 混合语言或语音不清晰 | 明确指定源语言 |
| 超时 | 视频过长或处理复杂 | 将客户端超时设置为至少 10 分钟 |
重要提示 : 对于长视频,字幕生成可能需要大量时间。
each-sense - 核心 API 文档video-generation - 生成带有内置说明文字的视频voice-audio - 音频处理和语音合成video-edit - 视频编辑和后期制作每周安装次数
140
代码仓库
GitHub 星标数
8
首次出现
2026年2月20日
安全审计
安装于
gemini-cli139
cursor138
kimi-cli136
codex136
opencode136
github-copilot135
Generate professional subtitles and captions for videos using each::sense. This skill creates accurate transcriptions, multi-language subtitles, animated captions, and various export formats optimized for social media, video production, and accessibility.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video with accurate timestamps",
"mode": "max",
"file_urls": ["https://example.com/my-video.mp4"]
}'
| Format | Extension | Use Case |
|---|---|---|
| SRT | .srt | Universal, most video players and editors |
| VTT | .vtt | Web video, HTML5 players, YouTube |
| Burned-In | .mp4 | Social media, no player support needed |
| JSON | .json | Custom applications, programmatic access |
| ASS/SSA | .ass | Advanced styling, anime subtitles |
Automatically transcribe speech from a video file with accurate word-level timestamps.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Transcribe this video and generate subtitles with accurate timestamps. Output as SRT format. The video contains English speech.",
"mode": "max",
"file_urls": ["https://example.com/interview-video.mp4"]
}'
Generate subtitles in multiple languages directly from the audio.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video in English, Spanish, and French. Provide separate SRT files for each language. The original audio is in English.",
"mode": "max",
"file_urls": ["https://example.com/product-demo.mp4"]
}'
Create eye-catching animated captions with word-by-word highlighting, popular on TikTok and Instagram Reels.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Add TikTok-style animated captions to this video. Use bold white text with black outline, word-by-word pop animation, centered at the bottom third of the screen. Make it trendy and engaging.",
"mode": "max",
"file_urls": ["https://example.com/short-form-content.mp4"]
}'
Generate clean subtitle files in standard formats for use in video editors or streaming platforms.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Transcribe this video and export subtitles in both SRT and VTT formats. Ensure proper line breaks (max 42 characters per line, 2 lines max). Include timestamps accurate to milliseconds.",
"mode": "max",
"file_urls": ["https://example.com/documentary.mp4"]
}'
Generate subtitles that identify and label different speakers in conversations, interviews, or podcasts.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this podcast with speaker diarization. There are 2 speakers - identify them as Speaker 1 and Speaker 2 (or Host and Guest if you can determine roles). Format each line with the speaker label.",
"mode": "max",
"file_urls": ["https://example.com/podcast-episode.mp4"]
}'
Translate existing subtitles from one language to another while preserving timing.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Translate these English subtitles to Japanese. Preserve the original timing and format. Ensure natural Japanese phrasing rather than literal translation.",
"mode": "max",
"file_urls": ["https://example.com/original-subtitles.srt"]
}'
Render subtitles directly into the video file (hardcoded/embedded) so they appear without needing player support.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video and burn them directly into the video. Use white text with black background box, Arial font, positioned at bottom center. Output a new video file with embedded subtitles.",
"mode": "max",
"file_urls": ["https://example.com/social-media-clip.mp4"]
}'
Create karaoke-style subtitles with word-by-word highlighting, perfect for music videos and lyric content.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Create karaoke-style subtitles for this music video. Display lyrics with word-by-word highlighting as they are sung. Use a gradient color change effect (from white to yellow) for the currently sung word. Center the text on screen.",
"mode": "max",
"file_urls": ["https://example.com/music-video.mp4"]
}'
Fine-tune subtitle timing for better synchronization with audio.
# First, upload video and generate initial subtitles
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video",
"mode": "max",
"session_id": "subtitle-timing-project",
"file_urls": ["https://example.com/video-with-delay.mp4"]
}'
# Then adjust timing in the same session
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "The subtitles are appearing 500 milliseconds too early. Shift all subtitle timings forward by 500ms and regenerate the SRT file.",
"session_id": "subtitle-timing-project"
}'
Generate subtitles for multiple videos in a single workflow.
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate English subtitles for all these videos. Output SRT files for each. Use consistent formatting across all videos: max 2 lines, 42 characters per line, minimum 1 second display time per subtitle.",
"mode": "max",
"file_urls": [
"https://example.com/episode-01.mp4",
"https://example.com/episode-02.mp4",
"https://example.com/episode-03.mp4"
]
}'
When requesting subtitles, include these details in your prompt:
"Generate [format] subtitles for this video.
Source language: [language].
[Number] speakers: [roles if known].
Style: [font, color, position requirements].
Special terms to recognize: [names, technical words].
Additional requirements: [line length, timing, etc.]"
Ask your users before generating:
"Do you want fast & cheap, or high quality?"
| Mode | Best For | Speed | Quality |
|---|---|---|---|
max | Final subtitles, professional content, accuracy-critical | Slower | Highest |
eco | Quick drafts, review copies, bulk processing | Faster | Good |
Use session_id to iterate on subtitle generation:
# Initial subtitle generation
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Generate subtitles for this video with speaker identification",
"session_id": "subtitle-project-001",
"file_urls": ["https://example.com/interview.mp4"]
}'
# Refine based on feedback
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Change Speaker 1 label to John and Speaker 2 to Sarah. Also fix the spelling of TensorFlow wherever it appears.",
"session_id": "subtitle-project-001"
}'
# Add styling and export
curl -X POST https://sense.eachlabs.run/chat \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"message": "Now create a burned-in version with the corrected subtitles. Use yellow text for John and cyan for Sarah.",
"session_id": "subtitle-project-001"
}'
each::sense supports subtitle generation in 50+ languages including:
| Language | Code | Notes |
|---|---|---|
| English | en | US, UK, AU variants |
| Spanish | es | Latin American and European |
| French | fr | France and Canadian |
| German | de | |
| Japanese | ja | |
| Korean | ko | |
| Chinese | zh | Simplified and Traditional |
| Arabic | ar | RTL support |
| Hindi | hi | |
| Portuguese | pt | Brazilian and European |
| Error | Cause | Solution |
|---|---|---|
Failed to create prediction: HTTP 422 | Insufficient balance | Top up at eachlabs.ai |
| Transcription quality low | Poor audio quality | Provide cleaner audio source |
| Language detection failed | Mixed languages or unclear speech | Specify source language explicitly |
| Timeout | Long video or complex processing | Set client timeout to minimum 10 minutes |
Important : Subtitle generation can take significant time for long videos.
each-sense - Core API documentationvideo-generation - Generate videos with built-in captionsvoice-audio - Audio processing and speech synthesisvideo-edit - Video editing and post-productionWeekly Installs
140
Repository
GitHub Stars
8
First Seen
Feb 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
gemini-cli139
cursor138
kimi-cli136
codex136
opencode136
github-copilot135
AI 代码实施计划编写技能 | 自动化开发任务分解与 TDD 流程规划工具
49,000 周安装