Skip to content

Repository files navigation

CopyScript

Python Tkinter YouTube Transcript

클립보드에 복사한 YouTube URL을 감지해서, 해당 영상 자막을 다시 클립보드에 넣어주는 데스크톱 앱입니다.

URL 복사 한 번으로 자막 텍스트를 바로 붙여넣을 수 있어, 요약/번역/메모 작업 시간을 줄이는 것이 목적입니다.

주요 기능

  • YouTube URL 자동 감지: 클립보드 변경을 감시해 YouTube 링크를 찾습니다.
  • 자막 자동 추출 후 복사: 영상 ID를 파싱한 뒤 자막을 가져와 클립보드에 복사합니다.
  • 언어 선택 지원: 한국어/영어/일본어/중국어 등과 영상 기본 언어, Auto (any)를 지원합니다.
  • 타임스탬프 옵션: [00:00] 형식으로 시간 정보를 포함할 수 있습니다.
  • 중복 처리 방지: 이미 처리한 영상은 LRU 캐시로 재처리를 줄입니다.
  • 최근 처리 내역 표시: GUI에서 최근 성공/실패 결과를 확인할 수 있습니다.

빠른 실행

uv sync --group dev
uv run python -m copyscript

사용 방법

  1. 앱을 실행하면 macOS에서는 메뉴바, Windows/Linux에서는 트레이에 CC 아이콘이 나타납니다.
  2. 설정 화면이 필요하면 해당 아이콘 메뉴에서 설정 열기를 누릅니다.
  3. 모니터링을 시작합니다.
  4. YouTube 영상 URL을 복사합니다.
  5. 잠시 후 자막이 클립보드로 교체됩니다.
  6. 원하는 곳에 붙여넣기 합니다.

예시: 메모장에 링크를 복사했다가, 바로 Cmd+V 하면 자막 본문이 붙습니다.

Windows/Linux에서는 실행 중 창을 닫아도 앱이 종료되지 않고 트레이로 숨겨집니다. 트레이 메뉴에서 설정 열기, 모니터링 시작/정지, 종료를 제어할 수 있습니다.

빌드

macOS

./scripts/build/build.sh

Linux

./scripts/build/build.sh

Windows

.\scripts\build\build.ps1

설치 / 제거

macOS

./scripts/install/install.sh
./scripts/install/uninstall.sh

Linux

./scripts/install/install.sh
./scripts/install/uninstall.sh

Windows

.\scripts\install\install.ps1
.\scripts\install\uninstall.ps1

Windows 설치는 현재 사용자 기준으로 %LOCALAPPDATA%\Programs\CopyScript에 앱을 복사하고, 로그인 후 짧은 지연 뒤 --hidden 모드로 자동 실행되도록 Startup 스크립트를 등록합니다. 이 지연은 재부팅 직후 Explorer/트레이 초기화 타이밍 때문에 아이콘이 누락되는 문제를 줄이기 위한 것입니다.

Linux 설치는 현재 사용자 기준으로 ~/.local/lib/CopyScript에 앱을 복사하고, ~/.config/autostart/CopyScript.desktop으로 로그인 자동 실행을 등록합니다.

개발 검증

uv run ruff check .
uv run ruff format --check .
uv run pyright
uv run pytest

구조 개편

이번 리팩터링부터 런타임 코드는 copyscript/ 패키지 아래로 정리됩니다.

copyscript/
  app/       # 설정 저장, 런타임 상태, 모니터링 lifecycle
  config/    # 언어 목록, 공용 상수, 데이터 모델
  core/      # URL 파싱, 자막 추출, 캐시, 클립보드 처리 파이프라인
  platform/  # 경로, 알림, 클립보드 watcher, macOS menubar, Windows/Linux tray
  ui/        # Tkinter window, 패널, theme
scripts/
  build/     # 빌드 스크립트
  install/   # 설치/제거 스크립트
packaging/
  pyinstaller/  # PyInstaller spec
  • 새 기능 추가는 가능한 한 copyscript/ 내부에서만 진행하는 것을 권장합니다.
  • 테스트 가능한 로직은 copyscript/core/, copyscript/app/, copyscript/platform/에 두고, copyscript/ui/는 화면 조립과 이벤트 연결에 집중합니다.

요구 사항

  • Python 3.10+
  • macOS, Windows 또는 Linux
  • Linux에서는 xclip, xsel, wl-clipboard 중 하나
  • 인터넷 연결 (자막 조회 시 필요)

About

클립보드의 YouTube URL을 감지해 자막을 추출하고 다시 복사해주는 Python/Tkinter 데스크톱 앱

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages