클립보드에 복사한 YouTube URL을 감지해서, 해당 영상 자막을 다시 클립보드에 넣어주는 데스크톱 앱입니다.
URL 복사 한 번으로 자막 텍스트를 바로 붙여넣을 수 있어, 요약/번역/메모 작업 시간을 줄이는 것이 목적입니다.
- YouTube URL 자동 감지: 클립보드 변경을 감시해 YouTube 링크를 찾습니다.
- 자막 자동 추출 후 복사: 영상 ID를 파싱한 뒤 자막을 가져와 클립보드에 복사합니다.
- 언어 선택 지원: 한국어/영어/일본어/중국어 등과
영상 기본 언어,Auto (any)를 지원합니다. - 타임스탬프 옵션:
[00:00]형식으로 시간 정보를 포함할 수 있습니다. - 중복 처리 방지: 이미 처리한 영상은 LRU 캐시로 재처리를 줄입니다.
- 최근 처리 내역 표시: GUI에서 최근 성공/실패 결과를 확인할 수 있습니다.
uv sync --group dev
uv run python main.py- 앱을 실행하면 macOS에서는 메뉴바, Windows에서는 트레이에
CC아이콘이 나타납니다. - 설정 화면이 필요하면 해당 아이콘 메뉴에서
설정 열기를 누릅니다. - 모니터링을 시작합니다.
- YouTube 영상 URL을 복사합니다.
- 잠시 후 자막이 클립보드로 교체됩니다.
- 원하는 곳에 붙여넣기 합니다.
예시: 메모장에 링크를 복사했다가, 바로 Cmd+V 하면 자막 본문이 붙습니다.
Windows에서는 실행 중 창을 닫아도 앱이 종료되지 않고 트레이로 숨겨집니다. 트레이 메뉴에서 설정 열기, 모니터링 시작/정지, 종료를 제어할 수 있습니다.
./build.sh.\build.ps1./install.sh
./uninstall.sh.\install.ps1
.\uninstall.ps1Windows 설치는 현재 사용자 기준으로 %LOCALAPPDATA%\Programs\CopyScript에 앱을 복사하고, 로그인 후 짧은 지연 뒤 --hidden 모드로 자동 실행되도록 Startup 스크립트를 등록합니다. 이 지연은 재부팅 직후 Explorer/트레이 초기화 타이밍 때문에 아이콘이 누락되는 문제를 줄이기 위한 것입니다.
uv run ruff check .
uv run pytest이번 리팩터링부터 런타임 코드는 copyscript/ 패키지 아래로 정리됩니다.
copyscript/
app/ # 설정 저장, 런타임 상태, 모니터링 lifecycle
config/ # 언어 목록, 공용 상수, 데이터 모델
core/ # URL 파싱, 자막 추출, 캐시, 클립보드 처리 파이프라인
platform/ # 경로, 알림, 클립보드 watcher, macOS menubar
ui/ # Tkinter window, 패널, theme
- 루트의
main.py,subtitle_fetcher.py같은 파일은 하위 호환용 얇은 wrapper 입니다. - 새 기능 추가는 가능한 한
copyscript/내부에서만 진행하는 것을 권장합니다. - 테스트 가능한 로직은
copyscript/core/,copyscript/app/,copyscript/platform/에 두고,copyscript/ui/는 화면 조립과 이벤트 연결에 집중합니다.
- Python 3.10+
- macOS 또는 Windows
- 인터넷 연결 (자막 조회 시 필요)