Skip to content

sh1n-k/CopyScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 main.py

사용 방법

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

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

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

빌드

macOS

./build.sh

Windows

.\build.ps1

설치 / 제거

macOS

./install.sh
./uninstall.sh

Windows

.\install.ps1
.\uninstall.ps1

Windows 설치는 현재 사용자 기준으로 %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
  • 인터넷 연결 (자막 조회 시 필요)

About

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

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors