{"id":"cd78c452-2de2-43d0-8349-d98633254c4b","shortId":"6QQR8E","kind":"skill","title":"ffsubsync Subtitle Synchronization Tool","tagline":"ffsubsync automatically aligns subtitle files to spoken audio by analyzing timing from a reference video or audio file. It is a strong fit for agent workflows that need to repair drifting subtitles without manual waveform editing.","description":"# ffsubsync Subtitle Synchronization Tool\n\nffsubsync automatically aligns subtitle files to spoken audio by analyzing timing from a reference video or audio file. It is a strong fit for agent workflows that need to repair drifting subtitles without manual waveform editing.\n\n## Installation\n\nUse the upstream install or setup path that matches your environment:\n- brew install ffmpeg\n- pip install ffsubsync\n- pip install git+https://github.com/smacke/ffsubsync@latest\n\nRequirements and caveats from upstream:\n- [![Python Versions](https://img.shields.io/pypi/pyversions/ffsubsync.svg)](https://pypi.org/project/ffsubsync)\n- Next, grab the package (compatible with Python >= 3.6):\n- [ffmpeg](https://www.ffmpeg.org/) and the [ffmpeg-python](https://github.com/kkroening/ffmpeg-python) wrapper, for extracting raw audio from video\n\nBasic usage or getting-started notes:\n- -------\n- First, make sure ffmpeg is installed. On MacOS, this looks like:\n- ~~~\n\n- Source: https://github.com/smacke/ffsubsync\n- Extracted from upstream docs: https://raw.githubusercontent.com/smacke/ffsubsync/HEAD/README.md\n\n## Source\n\n- [Agent Skill Exchange](https://agentskillexchange.com/skills/ffsubsync-subtitle-synchronization-tool/)","tags":["ffsubsync","subtitle","synchronization","tool","skills","agentskillexchange","agent-skills","ai-agents","ai-tools","awesome-list","claude-code","codex"],"capabilities":["skill","source-agentskillexchange","skill-ffsubsync-subtitle-synchronization-tool","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-awesome-list","topic-claude-code","topic-codex","topic-cursor","topic-llm","topic-mcp","topic-npx-skills","topic-openclaw","topic-skills-catalog"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/agentskillexchange/skills/ffsubsync-subtitle-synchronization-tool","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add agentskillexchange/skills","source_repo":"https://github.com/agentskillexchange/skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (1,213 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:10:27.204Z","embedding":null,"createdAt":"2026-05-18T13:16:32.631Z","updatedAt":"2026-05-18T19:10:27.204Z","lastSeenAt":"2026-05-18T19:10:27.204Z","tsv":"'/)':126 '/kkroening/ffmpeg-python)':134 '/pypi/pyversions/ffsubsync.svg)](https://pypi.org/project/ffsubsync)':114 '/skills/ffsubsync-subtitle-synchronization-tool/)':177 '/smacke/ffsubsync':163 '/smacke/ffsubsync/head/readme.md':170 '/smacke/ffsubsync@latest':104 '3.6':122 'agent':29,69,172 'agentskillexchange.com':176 'agentskillexchange.com/skills/ffsubsync-subtitle-synchronization-tool/)':175 'align':7,47 'analyz':14,54 'audio':12,21,52,61,139 'automat':6,46 'basic':142 'brew':93 'caveat':107 'compat':119 'doc':167 'drift':35,75 'edit':40,80 'environ':92 'exchang':174 'extract':137,164 'ffmpeg':95,123,130,152 'ffmpeg-python':129 'ffsubsync':1,5,41,45,98 'file':9,22,49,62 'first':149 'fit':27,67 'get':146 'getting-start':145 'git':101 'github.com':103,133,162 'github.com/kkroening/ffmpeg-python)':132 'github.com/smacke/ffsubsync':161 'github.com/smacke/ffsubsync@latest':102 'grab':116 'img.shields.io':113 'img.shields.io/pypi/pyversions/ffsubsync.svg)](https://pypi.org/project/ffsubsync)':112 'instal':81,85,94,97,100,154 'like':159 'look':158 'maco':156 'make':150 'manual':38,78 'match':90 'need':32,72 'next':115 'note':148 'packag':118 'path':88 'pip':96,99 'python':110,121,131 'raw':138 'raw.githubusercontent.com':169 'raw.githubusercontent.com/smacke/ffsubsync/head/readme.md':168 'refer':18,58 'repair':34,74 'requir':105 'setup':87 'skill':173 'skill-ffsubsync-subtitle-synchronization-tool' 'sourc':160,171 'source-agentskillexchange' 'spoken':11,51 'start':147 'strong':26,66 'subtitl':2,8,36,42,48,76 'sure':151 'synchron':3,43 'time':15,55 'tool':4,44 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-awesome-list' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-llm' 'topic-mcp' 'topic-npx-skills' 'topic-openclaw' 'topic-skills-catalog' 'upstream':84,109,166 'usag':143 'use':82 'version':111 'video':19,59,141 'waveform':39,79 'without':37,77 'workflow':30,70 'wrapper':135 'www.ffmpeg.org':125 'www.ffmpeg.org/)':124","prices":[{"id":"235c8af5-32d8-4a99-a71b-5c3bcb61efac","listingId":"cd78c452-2de2-43d0-8349-d98633254c4b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"agentskillexchange","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:16:32.631Z"}],"sources":[{"listingId":"cd78c452-2de2-43d0-8349-d98633254c4b","source":"github","sourceId":"agentskillexchange/skills/ffsubsync-subtitle-synchronization-tool","sourceUrl":"https://github.com/agentskillexchange/skills/tree/main/skills/ffsubsync-subtitle-synchronization-tool","isPrimary":false,"firstSeenAt":"2026-05-18T13:16:32.631Z","lastSeenAt":"2026-05-18T19:10:27.204Z"}],"details":{"listingId":"cd78c452-2de2-43d0-8349-d98633254c4b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"agentskillexchange","slug":"ffsubsync-subtitle-synchronization-tool","github":{"repo":"agentskillexchange/skills","stars":8,"topics":["agent-skills","ai-agents","ai-tools","awesome-list","claude-code","codex","cursor","llm","mcp","npx-skills","openclaw","skills-catalog"],"license":"mit","html_url":"https://github.com/agentskillexchange/skills","pushed_at":"2026-05-18T19:02:17Z","description":"The open catalog of AI agent skills — 2,000+ security-scanned skills for Claude Code, Cursor, Codex, and more.","skill_md_sha":"269bdaad6ec2ef26fb824834b2e1271a6be52da9","skill_md_path":"skills/ffsubsync-subtitle-synchronization-tool/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/agentskillexchange/skills/tree/main/skills/ffsubsync-subtitle-synchronization-tool"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"ffsubsync Subtitle Synchronization Tool","description":"ffsubsync automatically aligns subtitle files to spoken audio by analyzing timing from a reference video or audio file. It is a strong fit for agent workflows that need to repair drifting subtitles without manual waveform editing."},"skills_sh_url":"https://skills.sh/agentskillexchange/skills/ffsubsync-subtitle-synchronization-tool"},"updatedAt":"2026-05-18T19:10:27.204Z"}}