https://github.com/rocosrex/linguaforge
OpenAI Realtime Translation PoC for YouTube live translation with WebRTC, Chrome tab audio, and Korean captions
https://github.com/rocosrex/linguaforge
ai-translation captions chrome express korean live-translation nodejs openai openai-realtime realtime-translation speech-to-speech tab-audio-capture webrtc youtube
Last synced: 4 days ago
JSON representation
OpenAI Realtime Translation PoC for YouTube live translation with WebRTC, Chrome tab audio, and Korean captions
- Host: GitHub
- URL: https://github.com/rocosrex/linguaforge
- Owner: rocosrex
- License: mit
- Created: 2026-05-09T17:53:32.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-09T18:06:49.000Z (about 2 months ago)
- Last Synced: 2026-05-09T20:13:48.039Z (about 2 months ago)
- Topics: ai-translation, captions, chrome, express, korean, live-translation, nodejs, openai, openai-realtime, realtime-translation, speech-to-speech, tab-audio-capture, webrtc, youtube
- Language: HTML
- Size: 92.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ko.md
- License: LICENSE
Awesome Lists containing this project
README
# LinguaForge 한국어
[English README](README.md)
[](https://nodejs.org/)
[](LICENSE)
LinguaForge는 YouTube 영어 오디오를 실시간으로 한국어 통역하는 localhost PoC입니다. Chrome 탭 오디오를 캡처하고, OpenAI Realtime Translation에 WebRTC로 전송한 뒤, 브라우저에서 번역 음성 및 번역 자막을 제공합니다. 종료 후에는 번역 transcript를 Markdown으로 저장할 수 있습니다.
이 저장소는 운영 서비스가 아니라 PoC입니다. 기본적으로 loopback 주소에만 bind되며, OpenAI API key는 로컬 서버에만 보관합니다.
검색 키워드: OpenAI Realtime Translation, OpenAI Codex, WebRTC translation, YouTube live translation, Chrome tab audio capture, Korean captions, speech-to-speech translation, AI interpreter, realtime subtitles.

## 기능
- Chrome 탭 오디오 캡처
- 로컬 Express 서버에서 단기 OpenAI client secret 생성
- `gpt-realtime-translate` WebRTC 통역 세션 연결
- 번역 음성 재생
- 번역 자막 표시
- 원본/번역 볼륨 조절
- 수동 종료, 탭 종료 감지, 무음 종료, 최대 세션 시간 종료
- Markdown transcript 다운로드
## Codex 작업 환경
이 프로젝트는 OpenAI Codex를 코딩 에이전트로 사용해 개발했습니다. 현재 저장소 상태 기준으로 공개해도 되는 환경 정보는 아래와 같습니다.
- 에이전트: Codex, GPT-5 기반 코딩 에이전트
- 로컬 환경: macOS 26.4.1, `zsh`, Asia/Seoul timezone
- 런타임 확인: Node.js `v24.7.0`, npm `11.5.1`
- 앱 실행 방식: localhost Express server, 기본 포트 `4000`
- 저장소 대상: public GitHub project `rocosrex/LinguaForge`
## 실행 방법
```bash
cd yt-translate-poc
npm install
cp .env.example .env
```
`.env`를 수정합니다.
```dotenv
OPENAI_API_KEY=sk-...
PORT=4000
HOST=127.0.0.1
```
실행:
```bash
npm start
```
브라우저에서 엽니다.
```text
http://127.0.0.1:4000
```
Chrome에서 `Start`를 누르고 YouTube 탭을 선택한 뒤, 탭 오디오 공유를 반드시 켜야 합니다.
## 보안 메모
- `.env`는 git에서 ignore됩니다.
- 서버는 기본적으로 `127.0.0.1`에서만 실행됩니다.
- `0.0.0.0` 같은 unsafe bind host는 차단됩니다.
- `/session`은 localhost Host/Origin만 허용합니다.
- 브라우저에는 OpenAI API key가 내려가지 않고, 단기 client secret만 전달됩니다.
## 테스트 결과
최근 자동 테스트 결과:
```text
npm test
24 passed, 0 failed
```
로컬 smoke check:
- `http://127.0.0.1:4000`에서 서버 기동 확인
- 정적 페이지 로딩 확인
- API key 설정 후 `/session` 200 응답 확인
- non-local Host 요청 403 차단 확인
- `HOST=0.0.0.0` 실행 전 차단 확인
- 브라우저 실시간 통역 동작은 PoC 테스트 중 수동 확인
## 비용 메모
비용 추정은 아직 정확하지 않습니다. 한 번의 거친 수동 테스트에서 약 8분에 USD 10 정도로 보였지만, 해당 테스트는 비용을 분리해 측정한 것이 아니라 신뢰할 수 있는 벤치마크로 쓰면 안 됩니다. 분당/시간당 비용은 별도의 통제된 재테스트 후 문서화해야 합니다.
## 공개 데이터 메모
YouTube transcript 전문은 public 저장소에 추적하지 않습니다. `test-output/`에는 전체 원문 transcript가 아니라 요약된 비교/평가 리포트만 남깁니다.
## 알려진 제약
- `gpt-realtime-translate`는 dynamic voice adaptation 방식이라 통역 음색이 세션 중 바뀔 수 있습니다.
- glossary, 고정 음성 선택, custom prompting은 이번 PoC 범위가 아닙니다.
- 브라우저 테스트는 소스 계약 테스트 중심이며, WebRTC 전체 동작은 Chrome에서 수동 확인이 필요합니다.
- 현재 transcript export는 번역문만 저장합니다.
## 라이선스
MIT