Mula sa isang recording ay maaaring makagawa ng ilang maiikling clip, pero hindi masasabi ng transcript kung makatarungan ang pagkakasipi, at hindi patunay ng magandang panonood ang 1080 × 1920 na export. Gumagamit ang gabay na ito ng limang Claude Code project skill na mano-manong tinatawag: transkripsiyon, pagraranggo, pagputol, paglalagay ng subtitle at pag-render. Isang taong editor ang nag-aapruba sa bawat bahagi ng orihinal at nanonood sa bawat natapos na file. Para ito sa video na pag-aari mo o malinaw na pinahihintulutan kang i-edit at ibahagi.
Isa itong prosesong batay sa dokumentasyon para sa macOS Terminal na may zsh. Hindi pinatakbo ng BIG CHANGE ang mga command, hindi nito sinuri ang pribadong footage at hindi nito ginawa ang limang file. Tingnan ang help ng mga naka-install na tool at ang totoong media bago sundin ito. Ang pangunahing larawan ay konseptuwal na paglalarawan ng limang patayong video na susuriin ng isang creator. Hindi ito aktuwal na mga clip, output ng software o pagsubok ng BIG CHANGE sa dokumentadong proseso.
Ang malaking pagbabago
- Ano ang nagbago: Maaaring hatiin ng Claude Code project skills ang lokal na pag-edit ng video sa limang yugtong mano-manong tinatawag. Pinag-uugnay ng iminungkahing tala ng paglilipat ang mga timestamp ng orihinal, aprubadong putol, naitamang subtitle at huling mga file; hindi pinatutunayan ng dokumentasyon ng mga tool na matagumpay nang naisagawa ang mismong kadena na ito.
- Bakit mahalaga: Ang creator na may pahintulot sa orihinal na footage ay maaaring magbigay sa taong editor ng tiyak na desisyon sa bawat yugto, kasama ang pagtukoy kung mayroon ngang limang magkakaibang katanggap-tanggap na sipi. Sa ganitong ayos, maaaring tanggihan ang mahina o mapanlinlang na putol bago ito maging export na may subtitle.
- Ano ang dapat bantayan: Ang pagbabahagi ng resulta ay nakasalalay pa rin sa mga karapatan, patakaran sa data ng napiling Claude account at buong panonood sa bawat na-save na MP4. Hindi ito masasagot ng pumasa lamang na teknikal na pagsusuri ng file.
Bago magsimula
Kailangan mo ng lokal na source.mp4 na may magagamit na audio, sapat na storage, access sa Claude Code, gumaganang lokal na whisper.cpp whisper-cli at modelong sumusuporta sa wika, pati FFmpeg at ffprobe na may kailangang encoder at filter. Kailangan din ng editor na makakasuri sa recording at sa lahat ng limang export. Itala ang Claude Code account at patakaran sa data, naka-install na bersiyon, whisper.cpp commit o build, SHA-256 at lisensiya ng modelo, at mga limitasyon sa paggamit. Maaaring gumamit ang Claude Code ng hosted model kahit lokal ang transkripsiyon at pag-render. Ibigay lamang ang transcript o media access na pinahihintulutan ng iyong mga karapatan at patakaran ng account. Ang mga tagubilin sa skill nito ay hindi naghihigpit ng access. Ang hiwalay na kontrol sa pahintulot ng tool ang namamahala sa pagtawag ng tool; depende sa setting, maaaring tumakbo nang walang kumpirmasyon ang karaniwang read-only na gawain. Sadyang suriin kung ano ang mababasa ng skill, pati ang iminumungkahi nitong isulat o patakbuhin.
Ilagay ang hindi babaguhing kopya ng orihinal at rights.json sa bagong pinagkakatiwalaang lokal na folder ng gawain. Dapat tukuyin ng tala ng karapatan ang SHA-256 ng orihinal, editor, pinahihintulutang sipi at susunod na paggamit, pahintulot para sa nagsasalita, musika at larawan, at mga tuntunin sa pag-iimbak at pagpapanatili. Huwag magpatuloy kung hindi malinaw ang karapatan. Buksan ang Terminal sa folder na iyon, tiyakin ang pwd, saka gawin ang mga folder ng gawain:
mkdir -p transcript clips captions shorts probes .claude/skills/video-transcribe .claude/skills/video-rank .claude/skills/video-cut .claude/skills/video-caption .claude/skills/video-vertical
command -v claude
command -v ffmpeg
command -v ffprobe
claude --version
ffmpeg -version
ffprobe -version
ffmpeg -hide_banner -h encoder=libx264
ffmpeg -hide_banner -h encoder=aac
ffmpeg -hide_banner -h filter=subtitles
ffmpeg -hide_banner -h filter=scaleItakda ang WHISPER_CLI at WHISPER_MODEL sa totoong absolute path na nakapaloob sa panipi. Itakda ang LANGUAGE sa natiyak na code ng sinasalitang wika, gaya ng en kung Ingles lamang ang audio. Tiyaking sinusuportahan ito ng modelo; ang .en na modelong para lamang sa Ingles ay hindi para sa ibang wika. Kailangan muna ng nasuring plano para sa halo-halo o hindi suportadong wika. Inilalarawan ng reperensiya ng whisper.cpp CLI ang -l, -m, -f, -osrt, -oj at -of; ihambing ang mga ito sa help ng iyong build. Huwag paganahin ang translation option nito.
WHISPER_CLI='/absolute/path/to/whisper-cli'
WHISPER_MODEL='/absolute/path/to/approved-model.bin'
LANGUAGE='en'
test -x "$WHISPER_CLI"
test -r "$WHISPER_MODEL"
"$WHISPER_CLI" --help
ffprobe -v error -show_entries format=duration:stream=index,codec_type,codec_name,width,height,sample_aspect_ratio -of json source.mp4Palitan ang halimbawang path at wika bago magpatakbo ng anuman. Suriin ang haba, streams, orientation, audio at bakanteng espasyo ng orihinal. Tiyaking may libass support ang naka-install na subtitles filter at tinatanggap ng scale ang force_original_aspect_ratio, force_divisible_by at reset_sar. Kung wala ang kailangang katangian, sundin ang build instructions ng mga maintainer at ulitin ang pagsusuri. Huwag tahimik na alisin ang mga subtitle.
Gumawa ng limang project skill na malinaw ang saklaw
Sa pinagkakatiwalaang proyekto, mag-save ng limang magkakahiwalay na .claude/skills/<name>/SKILL.md file. Kailangan ng bawat isa ng sariling name, description, disable-model-invocation: true, at kumpletong input, gagawin, output at tuntunin sa paghinto. Mano-manong tawagin ang mga ito sa pagkakasunod na ito: /video-transcribe, /video-rank, /video-cut, /video-caption, /video-vertical. Huwag magdagdag ng allowed-tools: ayon sa Claude Code, nagbibigay ang field na ito ng pahintulot na gamitin ang nakalistang tool nang walang kumpirmasyon habang tinatawag ang skill; hindi nito nililimitahan ang skill. Panatilihin ang karaniwang permission settings at sadyang suriin ang access. Maaaring walang kumpirmasyon ang read-only na tool call, habang ang pagsusulat at pagpapatakbo ay sumusunod sa totoong kontrol ng account.
Gamitin ang kumpletong nilalamang ito kasama ng iisang tala ng gawain na inilalarawan sa ibaba. Ang mga pangungusap sa skill ay tagubilin sa Claude Code, hindi hangganang teknikal na ipinapatupad.
.claude/skills/video-transcribe/SKILL.md
---
name: video-transcribe
description: Transcribe the authorized local source for the five-short workflow.
disable-model-invocation: true
---
Input: rights.json, immutable source.mp4, checked source probe, verified language and local whisper.cpp executable/model. Confirm matching source and model hashes, usable audio and permitted access before any command.
Action: From the checked run directory, confirm source.wav and both transcript output paths do not exist. Extract mono 16 kHz 16-bit PCM source.wav with explicit first-audio mapping and no overwrite. Continue to whisper-cli only after a zero exit and valid WAV readback; use the verified model and explicit language, SRT and JSON output, and translation off. Inspect both outputs, parse source-relative times, and compare representative passages and uncertain names or quotes against source audio. Record a nonzero exit or uncertain output as a manifest blocker before any next stage.
Output: transcript/source.srt and transcript/source.json, recorded hashes, corrections or marked uncertainties, tool and model identity in manifest.json.
Stop: Missing rights, changed inputs, absent audio, empty or malformed transcript, or unverified relevant speech. Do not upload, publish or overwrite accepted files; ask the editor to settle uncertainty..claude/skills/video-rank/SKILL.md
---
name: video-rank
description: Suggest source moments for human selection of five distinct clips.
disable-model-invocation: true
---
Input: Checked source transcript and hash, immutable source hash and probe duration, rights.json, intended audience. Verify all identities and authorized transcript access.
Action: Suggest more than five moments with numeric source-second start/end, source words, surrounding context and editorial rationale. Treat ranking as a suggestion, never a viral forecast. Have the editor open each candidate in the original and check speaker, wording, facts, context and rights. Record exactly five distinct coherent approved intervals and a rejected-candidate log.
Output: approved-moments.json with order, source hash and five numeric bounds satisfying 0 <= start < end <= source duration.
Stop: Fewer than five permissible, meaningful moments, mismatched hashes, uncertain bounds or missing human approval. Do not invent a fifth excerpt..claude/skills/video-cut/SKILL.md
---
name: video-cut
description: Cut the five approved source intervals into separate local clips.
disable-model-invocation: true
---
Input: Immutable source.mp4, source hash/probe and five human-approved intervals. Verify hashes and calculate each duration as end minus start.
Action: For each 01-05, confirm its unique output path is unused, then transcode the approved source-relative interval with input -ss, -t duration, explicit first video/audio mapping, libx264, AAC and -n. Continue only on zero exit and file readback. Probe streams and duration, inspect first and last frames, and have the editor watch each whole cut for boundaries, sync and context. Record the exact command and output hash. Any failure or uncertain write is a manifest blocker; never pass that clip to captioning.
Output: Five accepted numbered clips, individual probe records and links to approved intervals in manifest.json.
Stop: Wrong bounds, absent stream, drift, misleading context, output collision or uncertain command result. Read back the existing path first; correct bounds with human approval and use a new filename. Never overwrite or reuse an old clip hash..claude/skills/video-caption/SKILL.md
---
name: video-caption
description: Create and check local captions from each accepted clip.
disable-model-invocation: true
---
Input: Five accepted clip hashes, verified language and local model identity. Reject stale clips or mismatched source links.
Action: For each actual numbered clip 01-05, verify its accepted hash and unused WAV/raw-SRT paths, then extract its own mono 16 kHz 16-bit PCM WAV with -n. Run whisper-cli only after zero exit and WAV readback, with the matching language and SRT output; translation stays off. Preserve raw SRT. Have the editor correct words, names, numbers, cue timing, overlaps and readability against the actual clip, then save a distinct .checked.srt. Use clip-local times, not source-offset cues. Record failures as blockers before rendering.
Output: Five checked SRTs with raw-ASR and exact clip hash links in manifest.json.
Stop: Any cue outside clip duration, uncertain speech, bad alignment or stale clip hash. Repair and replay before rendering; a recut requires matching new captions..claude/skills/video-vertical/SKILL.md
---
name: video-vertical
description: Render and review five captioned 1080x1920 MP4s.
disable-model-invocation: true
---
Input: Five accepted clip hashes/probes, matching checked SRT hashes, rights record and a human-approved crop or framing plan for each clip.
Action: Check decoded orientation and sample aspect ratio. Choose even integer crop width, height and x/y for each clip; require positive dimensions, nonnegative offsets and a rectangle within the decoded frame. A fixed crop does not track motion. Verify unique output and probe paths are unused. From the established run directory, render each separately with crop, aspect-preserving scale, pad, clip-local subtitles, explicit video/audio mapping, libx264, yuv420p, AAC and -n. Continue only on zero exit and saved-file readback. Create probe JSON without clobbering an existing path, reopen the MP4 and have the editor watch its entire video and audio, checking cut context, every caption, framing, sync, facts and rights. Record any failure or uncertain output as a blocker.
Output: Five distinct accepted 1080x1920 MP4s, hashes, probe JSON, exact source/clip/SRT lineage and UTC human acceptance notes.
Stop: Unknown orientation, invalid crop, missing filter, collision, unreadable file, silent audio, cut-off text, wrong duration, bad context or failed full playback. Inspect uncertain existing outputs; revise to a new filename, probe and watch again. No upload or publishing.Magpanatili ng isang manifest.json para sa gawain. Sa bawat paglilipat, itala ang tala ng karapatan at SHA-256 ng hindi binagong orihinal, bersiyon ng tool, SHA-256/lisensiya/wika ng modelo, mga input at output na may SHA-256, aprubadong numerikong bahagi ng orihinal, eksaktong command at mga desisyong may oras na UTC. Kapag iba ang pangalan ng file o hash, huminto at lutasin muna bago ang susunod na skill.
Ituring ang bawat shell block sa ibaba bilang isang yugto sa bagong zsh script o kontroladong shell, na may set -e upang huminto ang yugto kapag nabigo ang command. Tiyaking hindi pa ginagamit ang bawat output path bago patakbuhin at itala sa manifest bilang hadlang ang nonzero exit, nawawalang file o hindi tiyak na pagsulat. Dapat basahin ng susunod na skill ang status at hash ng output; hindi nito maaaring tanggapin ang bigong putol dahil lamang may lumang clip pa.
1. Itranskriba ang orihinal
Ayon sa README ng mga maintainer ng whisper.cpp , nangangailangan ngayon ng 16-bit WAV ang CLI example nito. Kapag natiyak ang audio ng orihinal, patakbuhin ang sumusunod mula sa nasuring project folder. -n ang pumipigil sa FFmpeg na patungan ang kasalukuyang WAV.
set -e
test ! -e source.wav
test ! -e transcript/source.srt
test ! -e transcript/source.json
ffmpeg -i source.mp4 -map 0:a:0 -ar 16000 -ac 1 -c:a pcm_s16le -n source.wav
test -s source.wav
"$WHISPER_CLI" -m "$WHISPER_MODEL" -f source.wav -l "$LANGUAGE" -osrt -oj -of transcript/source
test -s transcript/source.srt
test -s transcript/source.jsonTiyaking parehong umiiral ang transcript/source.srt at .json , may pagsasalitang may timestamp at hindi lumalampas sa nasuring haba ng orihinal. Pakinggan ang mga kumakatawang bahagi at tiyakin ang malabong pangalan, numero at sipi laban sa orihinal. Panatilihin ang naitamang transcript o malinaw na marka ng hindi tiyak. Kung walang laman ang na-extract na audio o transkripsiyon, suriin muna ang source stream, executable, wika at pagkakatugma ng modelo bago gumawa ng bagong output na natatangi ang pangalan.
2. Pumili ng limang sandali sa orihinal
Tawagin ang /video-rank gamit ang nasuring transcript at target na manonood. Humingi ng higit sa limang kandidato upang maitanggi ng editor ang mahihinang sipi. Sa bawat panukala, hingin ang numerikong simula at dulo sa segundo mula sa simula ng orihinal, sinabi sa bahagi, konteksto bago at pagkatapos, at dahilan kung bakit kaya nitong tumayong mag-isa. Buksan ang bawat bahagi sa orihinal. Editor ang magpapasiya kung napapanatili ng putol ang nagsasalita, pananalita, biswal na konteksto, katotohanan at pahintulot. Mag-save ng eksaktong limang magkakaibang aprubadong bahagi sa approved-moments.json; isama ang pagkakasunod, hash ng orihinal at 0 <= start < end <= source duration. Pantukoy lamang ng lokasyon ang sipi ng transcript. Para sa mas limitadong paghahanap ng timestamp, tingnan ang Hanapin ang sinabing sandali bago mag-edit ng video.
Kung walang limang mapangangatwirang sandali sa recording, huminto. Hindi pa tapos ang gawaing nangangailangan ng limang file.
3. Putulin ang aprubadong mga bahagi
Tawagin ang /video-cut. Para sa bawat bahagi, kalkulahin ang DURATION = END - START mula sa aprubadong numerikong hangganan nito. Palitan ng totoong numero ang mga placeholder sa loob ng angle bracket sa ibaba; hindi tumatakbong halaga ang placeholder. Ulitin para sa clip-02.mp4 hanggang clip-05.mp4. Inilalarawan ng FFmpeg ang input seeking, duration, tahasang pagpili ng stream at output na hindi pumapatong sa umiiral na file. Mag-transcode sa halip na stream-copy para sa nilalayong mga hangganan ng putol.
set -e
test ! -e clips/clip-01.mp4
ffmpeg -ss <START_SECONDS> -i source.mp4 -t <DURATION_SECONDS> -map 0:v:0 -map 0:a:0 -c:v libx264 -c:a aac -n clips/clip-01.mp4
test -s clips/clip-01.mp4Teknikal na suriin ang streams at haba ng bawat aktuwal na clip, tingnan ang una at huling frame, saka panoorin nang buo. Itala ang hash at aprubadong bahagi ng orihinal. Kailangan ng bagong aprubadong hangganan at bagong output name ang maling putol. Kapag nabigo ang command o hindi tiyak ang resulta, suriin ang umiiral na file at probe bago muling magpatakbo; huwag kailanman mag-retry sa parehong pangalan.
4. Itama ang subtitle ayon sa bawat aktuwal na putol
Tawagin ang /video-caption. Itranskriba ang bawat tinanggap na clip dahil dapat magsimula sa oras na zero ng clip ang subtitle nito. Para sa clip 01, ito ang mga command:
set -e
test ! -e captions/clip-01.wav
test ! -e captions/clip-01.srt
ffmpeg -i clips/clip-01.mp4 -map 0:a:0 -ar 16000 -ac 1 -c:a pcm_s16le -n captions/clip-01.wav
test -s captions/clip-01.wav
"$WHISPER_CLI" -m "$WHISPER_MODEL" -f captions/clip-01.wav -l "$LANGUAGE" -osrt -of captions/clip-01
test -s captions/clip-01.srtUlitin gamit ang totoong katugmang dalawang-digit na numero para sa 02 hanggang 05 at magkakaibang path. Panatilihin ang bawat raw na captions/clip-NN.srt. Inihahambing ng editor ang bawat subtitle sa clip, itinatama ang salita, pangalan at numero, sinusuri ang tiyempo at madaling pagbasa, at sine-save ang captions/clip-NN.checked.srt. Harang sa pag-render ang subtitle na lampas sa haba ng clip. Itala ang hash ng bawat SRT katabi ng hash ng clip nito. Kapag nagbago ang putol, muling gumawa o magsuri ng subtitle ayon sa bagong file.
5. Baguhin ang framing, i-render at tanggapin ang limang video
Tawagin ang /video-vertical. Para sa bawat tinanggap na clip, suriin ang decoded image, orientation, sample aspect ratio at galaw. Pumipili ang editor ng sariling even integer para sa CROP_W, CROP_H, CROP_X, CROP_Y. Dapat magkasya ang parihaba sa decoded frame. Hindi sumusunod sa gumagalaw na paksa ang fixed crop; kung nawawala ang mahalagang nilalaman, pumili ng nasuring scale-and-pad framing plan o baguhin ang putol. Huminto sa pag-render kung hindi malinaw ang rotation o crop coordinates. Inilalarawan ng manwal ng FFmpeg filters ang crop, scale, pad at subtitles filter na gumagamit ng libass.
Mula sa itinakdang run directory, itakda ang CLIP sa totoong dalawang-digit na numero at ang apat na crop variable sa mga aprubadong integer ng clip. Template ang command, hindi nasubukang halimbawa. Panatilihin ang ipinakitang simpleng relative path ng subtitle; kailangan ng hiwalay na filtergraph escaping ang espesyal na karakter sa pangalan ng file. Ulitin nang hiwalay para sa 02 hanggang 05.
set -e
setopt noclobber
CLIP=01
CROP_W=<CHECKED_EVEN_INTEGER>
CROP_H=<CHECKED_EVEN_INTEGER>
CROP_X=<CHECKED_EVEN_INTEGER>
CROP_Y=<CHECKED_EVEN_INTEGER>
test ! -e "shorts/short-${CLIP}.mp4"
test ! -e "probes/short-${CLIP}.json"
ffmpeg -i "clips/clip-${CLIP}.mp4" -map 0:v:0 -map 0:a:0 -vf "crop=${CROP_W}:${CROP_H}:${CROP_X}:${CROP_Y},scale=1080:1920:force_original_aspect_ratio=decrease:force_divisible_by=2:reset_sar=1,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,subtitles=captions/clip-${CLIP}.checked.srt" -c:v libx264 -pix_fmt yuv420p -c:a aac -n "shorts/short-${CLIP}.mp4"
test -s "shorts/short-${CLIP}.mp4"
ffprobe -v error -show_entries format=duration:stream=index,codec_type,codec_name,width,height,sample_aspect_ratio -of json "shorts/short-${CLIP}.mp4" > "probes/short-${CLIP}.json"
test -s "probes/short-${CLIP}.json"Sa bawat isa sa limang JSON probe file, kailangan ang video stream na 1080 × 1920 at sample aspect ratio na 1:1, audio stream at positibong haba na tugma sa aprubadong putol matapos ang encoding/pag-round ng frame. Hindi pa nalulutas ang nawawala o hindi kilalang halaga. JSON output ng ffprobe ang sumusuri sa katangian ng file, hindi sa kalidad ng edit. Buksan muli at panoorin ang buong MP4, ihambing sa bahagi ng orihinal, tinanggap na putol at nasuring SRT. Suriin ang hangganan ng pangungusap, subtitle at ligtas nitong puwesto, framing habang gumagalaw, audio sync, mga katotohanan at karapatan. Itala sa manifest ang pagtanggap, pagbabago o pagtanggi na may oras na UTC. Kumpleto ang gawain kapag may limang tinanggap na file na bawat isa ay kaugnay ng hash ng orihinal, aprubadong bahagi, hash ng clip, hash ng nasuring SRT at probe JSON. Hindi sapat ang apat na tinanggap na file.
Mga limitasyon at pagbawi
Maaaring may bayad sa plan o API at limitasyon sa paggamit ang access sa Claude Code. Kumokonsumo ng storage at compute ang na-download na lokal na modelo, transkripsiyon, transcoding at maraming rebisyon. Itala ang aktuwal na singil kung ipinapakita ng account; hindi zero ang hindi alam na gastos. Walang nasukat na bilis, katumpakan, kalidad ng subtitle, pagtitipid o kasikatan para sa prosesong ito.
Panatilihin ang orihinal at tinanggap na mga resulta. Kapag nawawala ang modelo, hindi suportado ang option, mali ang transcript, bigo ang render o hindi tiyak ang pagsulat, tingnan ang eksaktong hash ng input at umiiral na file bago magbago ng anuman. Ayusin ang tiyak na sanhi, bigyan ng bagong path ang rebisyon at ulitin ang probe at buong panonood. Huwag i-upload o ibahagi ang natapos na maikling video hanggat hindi tinatanggap ng taong editor ang nilalaman at mga karapatan.



