로컬 일괄 굽기 도구 · v1.0.0
수십 건 한 번에 굽고, 자러 가세요
웹 「일괄 처리」에서 내려받은 자막을 내 컴퓨터의 네이티브 ffmpeg로 한 번에 하나씩 완성본으로 구워 줍니다. 무인 실행, 중단 재개, 실패 자동 재시도를 지원합니다.
영상은 처음부터 끝까지 내 컴퓨터에만 있습니다. 가입도 업로드도 필요 없고, 처음에 자막 폰트 하나만 가져오면 이후에는 완전 오프라인으로 사용할 수 있습니다.
다운로드 (약 35 KB)macOS / Windows / Linux · Python 3.8+ 및 ffmpeg 필요 · 표준 라이브러리만 사용, pip 설치 불필요
웹 버전의 마지막 번거로움을 해결합니다
일괄 처리 과정에서 인식과 번역은 서버에서 끝나지만(페이지를 닫아도 됨), 굽기만은 브라우저에서 한 건씩 진행됩니다. 영상 20개면 20번의 수동 대기이고, 탭은 닫을 수 없고, 컴퓨터도 잠들 수 없으며, 큰 파일은 중간에 브라우저가 강제 종료하기도 합니다.
한 자릿수 배 빠름
네이티브 코덱 처리, 브라우저 wasm 샌드박스가 아닙니다.
무인 실행
폴더 하나만 지정하면 전부 굽고, 끝나면 시스템 알림을 띄웁니다.
중단 재개
중간에 꺼져도 같은 명령을 다시 실행하면 이어서 굽고, 완료된 것은 자동으로 건너뜁니다.
웹과 동일한 결과
같은 스타일 엔진, 같은 자막 폰트. 로컬에서 구운 결과가 웹 미리보기와 일치합니다.
3단계로 시작
- 1
ffmpeg 설치 (한 번만)
# macOS brew install ffmpeg# Windows winget install Gyan.FFmpeg# Ubuntu sudo apt install ffmpeg설치 후 새 터미널을 열고 계속하세요.
- 2
내려받은 패키지 압축 풀기
smilesub-burn-1.0.0폴더가 생기고, 안에smilesub_burn.py와(과)README.md이(가) 들어 있습니다. - 3
더블클릭으로 실행, 또는 명령줄
macOS에서는
burn.command를, Windows에서는burn.bat를 더블클릭하고 두 폴더를 끌어다 놓으면 됩니다. 전체 기능이 필요하면 명령줄을 사용하세요:# 먼저 짝이 어떻게 매칭될지 확인 (한 바이트도 굽지 않음)python3 smilesub_burn.py --videos ./raw --subs ./batch.zip \--out ./burned --dry-run# 확인 후 --dry-run을 빼고 본 실행python3 smilesub_burn.py --videos ./raw --subs ./batch.zip --out ./burned
--dry-run를 붙이는 것을 강력 권장: 어떤 영상에 어떤 자막이 붙고 어떤 파일명이 만들어지는지만 출력합니다. 일괄 작업을 2시간 돌린 뒤에 매칭 오류를 발견하는 아주 흔한 함정입니다.하지 않는 것
- · 아무것도 업로드하지 않음 — 영상은 처음부터 끝까지 내 컴퓨터에 있습니다.
- · 네트워크 사용 안 함 (첫 폰트 가져오기 제외).
- · 인식·번역 안 함 — 그건 웹 버전의 역할입니다. 여기서는 마지막 1미터만 담당합니다.
- · 웹 버전의 대체품이 아님 — 스타일 템플릿, 용어집, 다국어 번역은 웹에서 선택하고, 여기서는 결과만 구워 줍니다.
자주 묻는 질문
무엇을 설치해야 하나요?
Python 3.8 이상과 ffmpeg(ffprobe 포함)이 필요합니다. 도구 자체는 Python 표준 라이브러리만 사용하므로 pip 설치가 전혀 필요 없습니다. ffmpeg 설치 후에는 새 터미널을 열고 실행하세요.
영상이 업로드되나요?
아니요. 영상은 처음부터 끝까지 로컬에 있고 도구도 네트워크에 접근하지 않습니다. 유일한 예외는 첫 실행 시 자막 폰트(약 16MB)를 내려받는 것으로, 이후에는 로컬에 캐시되어 완전 오프라인으로 사용할 수 있습니다. --font-dir로 자체 폰트 디렉터리를 지정하면 네트워크 사용을 완전히 피할 수 있습니다.
도중에 컴퓨터가 꺼졌습니다. 처음부터 다시 해야 하나요?
아니요. 진행 상황은 출력 디렉터리의 「굽기 진행.json」에 기록됩니다. 같은 명령을 다시 실행하면 이어서 진행하며 완료된 항목은 자동으로 건너뜁니다. 판정 기준은 콘텐츠 지문(자막 내용 + 영상 크기와 수정 시각 + 인코딩 파라미터)이므로, 번역문이나 스타일을 바꾸면 자동으로 다시 굽습니다.
완성본은 나왔는데 자막이 비어 있거나 네모(토끼)로 보입니다. 어떻게 하죠?
로컬 굽기에서 가장 흔한 조용한 실패입니다: ASS 자막에 적힌 폰트가 시스템에 없으면 렌더러가 오류 없이 그냥 글자를 그리지 않습니다. 이 도구는 기본적으로 웹 버전이 쓰는 폰트를 자동으로 가져와 이 문제를 피합니다. 폰트를 바꿨다면 --font로 로컬에 있는 한글 폰트(macOS는 "Apple SD Gothic Neo", Windows는 "Malgun Gothic" 등)를 지정하거나 --font-dir로 폰트 디렉터리를 제공하세요.
웹의 「일괄 처리」와 어떤 관계인가요?
대체가 아닌 분업입니다. 인식, 번역, 용어집, 스타일 템플릿은 웹에서 처리되고 과금됩니다. 이 도구는 마지막 단계 — 만들어진 자막을 일괄로 구운는 일만 담당하며, 로그인도 크레딧 소모도 없습니다.
특정 언어만 굽으려면?
--variant로 자막 종류를 고르고(translated 번역문 / bilingual 이중 자막 / ass 스타일 ASS / source 원문), --lang으로 언어를 거릅니다(예: --variant bilingual --lang en). 먼저 --dry-run으로 목록을 확인하는 것이 가장 안전합니다.