Skip to content

Commit 746f95f

Browse files
authored
feat: multilingual-caption-video improvements (#9)
1 parent c047d23 commit 746f95f

21 files changed

Lines changed: 1509 additions & 172 deletions

File tree

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
DISABLE_TELEMETRY=1
2+
ENVIRONMENT="development"

.github/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ Hand-crafted [skills](https://skills.sh) for agents, built from workflows I kept
44

55
| Skill | What it does |
66
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
7-
| [multilingual-caption-video](/skills/multilingual-caption-video) | Add captions / subtitles to a video in your desired language. |
8-
| ~~screencast~~ (Use CDP's new `--experimentalScreencast`) |
7+
| [multilingual-caption-video](/skills/multilingual-caption-video) | Transcribe and translate local or URL videos, burn adaptive multilingual captions, verify the result, and deliver the finished MP4 locally or by shareable link. |
98
| [manipulating-video](/skills/manipulating-video) | Manipulate video files with [`ffmpeg`](https://github.com/ffmpeg/ffmpeg) — speed up/slow down, resize, compress, convert formats, extract audio, convert to GIF, trim, merge, and more. |
109
| [upload-image](/skills/upload-image) | Uploads images to [imgbb](https://ibb.co) — local files, URLs, SVGs, base64, whatever. No more manual hosting. |
1110
| [terminal-recording](/skills/terminal-recording) | Record, upload, and GIF-convert terminal sessions with [`asciinema`](https://github.com/asciinema/asciinema) and [`agg`](https://github.com/asciinema/agg). |
1211
| [ghostty-remote-control](/skills/ghostty-remote-control) | kitty-inspired `kitten` remote control for agents to control ghostty terminal sessions, tabs, and windows. |
1312
| [github-to-markdown](/skills/github-to-markdown) | Uses [2md](https://github.com/o-az/2md) to convert a GitHub repo, directory, or file into a single markdown document for LLM or documentation workflows. |
1413

14+
`multilingual-caption-video` scales caption size with the video, selects an installed font that supports the target language, and adapts text and background contrast to the subtitle region.
15+
1516
> [!NOTE]
1617
> Skills are reusable capabilities for AI agents. They provide procedural knowledge that helps agents accomplish specific tasks more effectively. Skills can include code generation patterns, domain expertise, tool integrations, and more.
1718
> <sub>[skills.sh](https://skills.sh/docs/faq)</sub>
@@ -27,7 +28,7 @@ npx skills@latest add o-az/skills --skill <skill-name>
2728
Example:
2829

2930
```bash
30-
npx skills@latest add o-az/skills --skill screencast
31+
npx skills@latest add o-az/skills --skill multilingual-caption-video
3132
```
3233

3334
Install all skills:

.github/actions/checks/action.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ runs:
1111

1212
- name: "Install Dependencies"
1313
shell: bash
14-
run: bun install --frozen-lockfile
14+
run: |
15+
mise install
16+
bun install --frozen-lockfile
17+
env:
18+
NO_COLOR: "true"
1519

1620
- name: "Run CI Tasks"
1721
shell: bash

.github/workflows/check.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ env:
1515
UV_PREVIEW: 1
1616
DISABLE_TELEMETRY: 1
1717
NODE_ENV: "production"
18+
MISE_HTTP_TIMEOUT: 120
1819
MISE_EXPERIMENTAL: true
1920
NODE_OPTIONS: "--disable-warning=ExperimentalWarning --disable-warning=DeprecationWarning"
2021

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ package-lock.json
3030
pnpm-lock.yaml
3131
yarn.lock
3232
.venv
33+
__pycache__

.zed/settings.json

Lines changed: 143 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,107 @@
11
{
2-
"terminal": {
3-
"shell": "system"
4-
},
52
"file_types": {
3+
"ini": ["**/.npmrc"],
64
"env": [".env", ".env.*"],
7-
"shell": [".envrc"]
5+
"JSONC": ["**/.zed/**/*.json"]
86
},
7+
"hidden_files": ["**/.ruff_cache", "**/__pycache__/**"],
8+
"file_scan_exclusions": [".git", "**/.vscode"],
99
"use_autoclose": true,
1010
"enable_language_server": true,
1111
"formatter": "language_server",
1212
"prettier": {
1313
"allowed": false
1414
},
15-
"format_on_save": "on",
16-
"load_direnv": "shell_hook",
1715
"use_auto_surround": true,
18-
"show_completions_on_input": true,
19-
"show_completion_documentation": true,
20-
"semantic_tokens": "combined",
21-
"inlay_hints": {
22-
"enabled": true,
23-
"show_type_hints": true,
24-
"show_other_hints": true,
25-
"show_parameter_hints": true
16+
"language_servers": [
17+
"pkl",
18+
"!eslint",
19+
"!biome",
20+
"tombi",
21+
"oxfmt",
22+
"oxlint",
23+
"ruff",
24+
"pyrefly",
25+
"markdown-oxide",
26+
"json-language-server",
27+
"typescript-ls",
28+
"!typescript-language-server"
29+
],
30+
"lsp": {
31+
"pkl": {
32+
"fetch": {
33+
"pre_release": true
34+
},
35+
"binary": {
36+
"ignore_system_version": false
37+
}
38+
},
39+
"tombi": {
40+
"fetch": {
41+
"pre_release": true
42+
},
43+
"binary": {
44+
"arguments": ["lsp", "-v"],
45+
"env": {
46+
"NO_COLOR": "true"
47+
},
48+
"ignore_system_version": false
49+
}
50+
},
51+
"oxlint": {
52+
"initialization_options": {
53+
"settings": {
54+
"run": "onType",
55+
"disableNestedConfig": false,
56+
"fixKind": "safe_fix",
57+
"typeAware": true,
58+
"unusedDisableDirectives": "deny"
59+
}
60+
}
61+
},
62+
"oxfmt": {
63+
"initialization_options": {
64+
"settings": {
65+
"run": "onSave"
66+
}
67+
}
68+
}
2669
},
2770
"languages": {
71+
"Shell Script": {
72+
"format_on_save": "on",
73+
"formatter": {
74+
"external": {
75+
"command": "shfmt",
76+
"arguments": ["--filename", "{buffer_path}", "--indent", "2"]
77+
}
78+
}
79+
},
2880
"Pkl": {
2981
"language_servers": ["pkl"]
3082
},
3183
"TOML": {
3284
"format_on_save": "on",
3385
"language_servers": ["tombi"],
3486
"show_edit_predictions": false,
35-
"formatter": {
36-
"language_server": { "name": "tombi" }
37-
}
38-
},
39-
"Python": {
40-
"code_actions_on_format": {
41-
"source.fixAll.ruff": true,
42-
"source.organizeImports.ruff": true
43-
},
44-
"format_on_save": "on",
45-
"language_servers": ["ruff", "pyrefly", "!pyright", "!pylsp"],
4687
"formatter": {
4788
"language_server": {
48-
"name": "ruff"
89+
"name": "tombi"
4990
}
5091
}
5192
},
5293
"Markdown": {
94+
"language_servers": [
95+
"typescript-ls",
96+
"!typescript-language-server",
97+
"oxfmt",
98+
"oxlint",
99+
"markdown-oxide"
100+
],
53101
"format_on_save": "on",
54-
"language_servers": ["oxfmt", "oxlint", "markdown-oxide"],
102+
"prettier": {
103+
"allowed": false
104+
},
55105
"formatter": [
56106
{
57107
"language_server": {
@@ -60,8 +110,12 @@
60110
}
61111
]
62112
},
63-
"YAML": {
64-
"language_servers": ["oxfmt", "yaml-language-server"],
113+
"JSON": {
114+
"format_on_save": "on",
115+
"language_servers": ["json-language-server", "oxfmt", "oxlint"],
116+
"prettier": {
117+
"allowed": false
118+
},
65119
"formatter": [
66120
{
67121
"language_server": {
@@ -70,9 +124,12 @@
70124
}
71125
]
72126
},
73-
"JSON": {
127+
"JSONC": {
74128
"format_on_save": "on",
75129
"language_servers": ["json-language-server", "oxfmt", "oxlint"],
130+
"prettier": {
131+
"allowed": false
132+
},
76133
"formatter": [
77134
{
78135
"language_server": {
@@ -81,82 +138,76 @@
81138
}
82139
]
83140
},
84-
"JSONC": {
141+
"JSDoc": {
142+
"language_servers": ["typescript-ls", "!typescript-language-server", "oxfmt", "oxlint"],
85143
"format_on_save": "on",
86-
"language_servers": ["json-language-server", "oxfmt", "oxlint"],
144+
"prettier": {
145+
"allowed": false
146+
},
87147
"formatter": [
88148
{
89149
"language_server": {
90150
"name": "oxfmt"
91151
}
92152
}
93153
]
94-
}
95-
},
96-
"lsp": {
97-
"ruff": {
98-
"fetch": {
99-
"pre_release": true
154+
},
155+
"TSX": {
156+
"format_on_save": "on",
157+
"language_servers": ["typescript-ls", "!typescript-language-server", "oxfmt", "oxlint"],
158+
"prettier": {
159+
"allowed": false
100160
},
101-
"initialization_options": {
102-
"settings": {
103-
"lineLength": 80,
104-
"lint": {
105-
"extendSelect": ["I"]
161+
"formatter": [
162+
{
163+
"language_server": {
164+
"name": "oxfmt"
106165
}
107166
}
108-
}
167+
]
109168
},
110-
"pyrefly": {
111-
"fetch": {
112-
"pre_release": true
169+
"JavaScript": {
170+
"format_on_save": "on",
171+
"language_servers": ["typescript-ls", "!typescript-language-server", "oxfmt", "oxlint"],
172+
"prettier": {
173+
"allowed": false
113174
},
114-
"binary": {
115-
"arguments": ["lsp"]
116-
}
175+
"formatter": [
176+
{
177+
"language_server": {
178+
"name": "oxfmt"
179+
}
180+
}
181+
]
117182
},
118-
"pkl": {
119-
"fetch": { "pre_release": true },
120-
"binary": { "ignore_system_version": false }
183+
"TypeScript": {
184+
"format_on_save": "on",
185+
"language_servers": ["typescript-ls", "!typescript-language-server", "oxfmt", "oxlint"],
186+
"prettier": {
187+
"allowed": false
188+
},
189+
"inlay_hints": { "enabled": false },
190+
"formatter": [
191+
{
192+
"language_server": {
193+
"name": "oxfmt"
194+
}
195+
}
196+
]
121197
},
122-
"tombi": {
123-
"fetch": { "pre_release": true },
124-
"binary": {
125-
"arguments": ["lsp", "-v"],
126-
"env": { "NO_COLOR": "true" },
127-
"ignore_system_version": false
128-
}
198+
"YAML": {
199+
"format_on_save": "on",
200+
"language_servers": ["oxfmt", "oxlint"],
201+
"prettier": {
202+
"allowed": false
203+
},
204+
"formatter": [
205+
{
206+
"language_server": {
207+
"name": "oxfmt"
208+
}
209+
}
210+
]
129211
}
130-
},
131-
"hidden_files": [
132-
"!**/_/**",
133-
".crush",
134-
".pi",
135-
"**/.vscode",
136-
"**/.git",
137-
"**/.venv",
138-
"**/__pycache__",
139-
".direnv",
140-
".ruff_cache",
141-
".DS_Store",
142-
"result",
143-
"**/.wrangler",
144-
"**/.ruff_cache",
145-
"**/*.egg-info"
146-
],
147-
"file_scan_exclusions": [
148-
".crush",
149-
".direnv",
150-
".DS_Store",
151-
"**/*.egg-info",
152-
"result",
153-
".pi",
154-
"**/.brew",
155-
"**/.vscode",
156-
"**/.git",
157-
"**/.venv",
158-
"**/.wrangler",
159-
"**/.ruff_cache",
160-
"**/__pycache__"
161-
]
212+
}
162213
}

0 commit comments

Comments
 (0)