영문 버전:
SKILL.en.md
media — 비디오 / 오디오 / 이미지 / URL
가벼운 스킬로, 자체 코드는 없습니다: 로컬 CLI(ffprobe, ffmpeg, yt-dlp)와 세션별로 로드되는 타사 스킬(mediaskills, watch, music-listener)로 라우팅합니다. — 아래 fetch 항목 참조.
입력 유형별 라우팅 표
ffprobe/file로 인식하며, URL은 반환된 파일 이름을 확인합니다.
| 입력 + 요구사항 | 도구 | 비고 |
|---|---|---|
| 미디어 파일 정보 | ffprobe (로컬) | 세션 스킬 불필요 |
| 비디오/URL 내용 요약 | 스킬 watch (claude-video) | --engine local |
| 비디오/URL 텍스트 추출 (SRT/VTT) | 스킬 speech-captions | transcribe.py --model tiny; 모델 크기는 사용자 선택 |
| 자막: 시프트/변환/인코딩 | 스킬 subtitles | shift.py convert.py extract.py burn.py |
| 자르기/합치기/트랜스코딩, GIF, 프레임/오디오 | 스킬 video-transformation | trim.py trim_multi.py concat.py … |
| 샷 컷/전환 감지 | 스킬 shots | detect.py extract-frames.py |
| 프레임 내용 분석 (화면 텍스트) | 스킬 vision-analysis | 에이전트가 직접 프레임 확인 + 스크립트로 JSON 병합 |
| 이미지/스크린샷: OCR/리사이즈/변환 | 스킬 image | ocr.py (tesseract) |
| 오디오: 자르기/정규화/무음 제거 | 스킬 audio | |
| URL/파일 음악 재생, 가사 요청 | 스킬 music-listener | 세션별로 로드, music-listener/scripts/ 참조 |
| URL에서 미디어 다운로드 | 스킬 download | url.py (yt-dlp) |
| SMPTE 타임코드, 방송 자막 | 스킬 timecode, 스킬 captions-compliance | 타임코드에 맞춰 자막 동기화 |
| ffprobe/tesseract/uv 누락 시 | 스킬 install-media-tools | doctor.sh 확인, install.sh 설치 |
세션별 타사 스킬 (로드만, 영구 설치 아님)
이 저장소에는 타사 스킬이 포함되어 있지 않습니다. 세션 임시 디렉토리로 로드:
scripts/fetch-session.sh --list→ 이름 확인;--skill <이름>또는--all— 스크립트가 정확한 커밋 SHA로 소스 저장소를 sparse-clone하여 세션 임시 디렉토리로 복사합니다.~/.agents/skills/<이름>/scripts/(또는~/.config/opencode/skills/<이름>/…)에서 사용합니다.- 오프라인/네트워크 없음: 필요한 CLI와 모델이 이미 준비되어 있다면 로컬 파일 작업을 실행할 수 있습니다. 세션 스킬 로드, URL 다운로드, 캐시되지 않은 모델 로드는 네트워크가 필요합니다.
yt-dlp는 오프라인 상태에서 URL을 다운로드하지 않습니다.
각 스킬의 커밋 SHA + 라이선스: scripts/fetch-session.sh의 TABLE 표 참조.
규칙
- 출력은 원본 파일 옆에 배치: 요약
<이름>.digest.md, 자막<이름>.srt|.vtt, 클립<이름>.clip-<t1>-<t2>.mp4. 원본 파일을 덮어쓰지 않습니다. - 타임스탬프/클립은 실제 프레임 사용 —
ffprobe로 확인하고, 추정하지 않습니다. - 전달 전 검증:
ffprobe로 출력 파일이 열리는지, 재생 시간/코덱이 요청된 대로 정확한지 확인합니다. - 입력 언어 유지 — 사용자가 말한 언어로 응답합니다.