diff --git a/src/main/resources/templates/rework.html b/src/main/resources/templates/rework.html index c0566fe..1f0880d 100644 --- a/src/main/resources/templates/rework.html +++ b/src/main/resources/templates/rework.html @@ -69,7 +69,7 @@
-
영상 업로드 · 자막 추출
영상 파일을 올리면 Whisper가 말소리를 시간 싱크 자막으로 추출합니다. 언어는 자동감지(틀리면 옆에서 ko/en/zh/ja 선택). ‘URL자막’은 YouTube 자막을 평문으로(시간 없음) 가져옵니다.
+
영상 업로드 · 자막 추출
영상 파일을 올리면 Whisper가 말소리를 시간 싱크 자막으로 추출합니다. 언어는 자동감지(틀리면 옆에서 ko/en/zh/ja 선택).
@@ -164,7 +164,7 @@ - @@ -785,17 +785,6 @@ if(window.lucide) lucide.createIcons(); } - async function extractScript(){ - const btn = document.getElementById('extractBtn'); - const orig = btn.innerHTML; btn.disabled = true; btn.innerHTML = '추출 중...'; - try { - const s = await api(API + '/' + VIDEO_ID + '/extract-script', { method:'POST' }); - document.getElementById('transcript').value = s.transcript || ''; - if(!s.transcript) alert('자막을 가져오지 못했습니다. (영상에 자막이 없거나 외부 서비스 차단)'); - } catch(e){ alert('추출 실패: ' + e.message); } - finally { btn.disabled = false; btn.innerHTML = orig; if(window.lucide) lucide.createIcons(); } - } - function copyToEditor(){ const t = document.getElementById('transcript').value; if(!t){ alert('복사할 스크립트가 없습니다.'); return; } @@ -803,24 +792,6 @@ ed.value = ed.value ? (ed.value + '\n\n' + t) : t; } - // 원본 스크립트를 한국어로 번역해 '재작성(내 버전)' 칸에 넣는다. - // format: 'plain'(평문 흐름) | 'timeline'([00:00] 세그먼트별 줄) - async function translateToEditor(format){ - const tl = format === 'timeline'; - const btn = document.getElementById(tl ? 'translateTlBtn' : 'translateBtn'); - const orig = btn.innerHTML; btn.disabled = true; btn.innerHTML = '번역 중…'; - try { - const url = API + '/' + VIDEO_ID + '/translate?target=ko' + (tl ? '&format=timeline' : ''); - const r = await api(url, { method:'POST' }); - const t = (r && r.translatedText) || ''; - if(!t){ alert('번역 결과가 비었습니다. (원본 스크립트' + (tl ? '/세그먼트' : '') + '가 있는지 확인하세요)'); return; } - const ed = document.getElementById('reworkText'); - ed.value = ed.value ? (ed.value + '\n\n' + t) : t; - ed.focus(); - } catch(e){ alert('번역 실패: ' + e.message); } - finally { btn.disabled = false; btn.innerHTML = orig; if(window.lucide) lucide.createIcons(); } - } - async function saveRework(){ const btn = document.getElementById('saveBtn'); const orig = btn.innerHTML; btn.disabled = true; btn.innerHTML = '저장 중...';