Skip to content

About

KBO 야구 중계 CLI — Rich/Textual TUI로 실시간 스코어, 문자중계, 팀 순위, 박스스코어, 응원가

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

41 Commits

Folders and files

Repository files navigation

kbo-cli

터미널에서 KBO 야구 경기 일정, 실시간 스코어, 문자중계, 박스스코어, 팀 순위를 확인하는 CLI. 선호 팀을 등록하면 해당 팀 정보가 우선 표시되고, 경기 시작 30분 전에 OS 알림이 발송된다.

필수 환경

  • Python 3.11 이상
  • macOS / Linux / Windows (자동 알림 설치는 macOS만 지원)
  • UTF-8 한글 폰트가 설정된 터미널
  • 인터넷 (네이버 스포츠, KBO 공식 사이트 접근)

설치

uv

uv tool install git+https://github.com/adminhelper/kbo-broadcast-cli.git

uv가 없다면: curl -LsSf https://astral.sh/uv/install.sh | sh

pipx

pipx install git+https://github.com/adminhelper/kbo-broadcast-cli.git

업데이트

새 버전이 나오면 같은 명령에 --force 만 붙이면 된다.

# uv
uv tool install --force git+https://github.com/adminhelper/kbo-broadcast-cli.git

# pipx
pipx install --force git+https://github.com/adminhelper/kbo-broadcast-cli.git

특정 버전으로 고정하려면 끝에 @v0.3.0 (또는 원하는 태그):

uv tool install --force git+https://github.com/adminhelper/kbo-broadcast-cli.git@v0.3.0

변경 내역: CHANGELOG.md · 릴리스 노트: https://github.com/adminhelper/kbo-broadcast-cli/releases

소스에서

git clone https://github.com/adminhelper/kbo-broadcast-cli.git
cd kbo-broadcast-cli
uv sync
./kbo today          # macOS .venv UF_HIDDEN 우회 래퍼

설치 후 kbo --help가 동작하면 완료. command not found가 나오면 PATH에 ~/.local/bin을 추가한다.

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc

처음 사용 순서

1. 선호 팀 등록

kbo

처음 실행하면 셋업 위저드가 뜬다. 10개 구단 목록에서 번호(예: 5) 또는 코드(예: SSG)를 입력하면 ~/.config/kbo-cli/config.json에 저장된다.

이후 kbo는 선호 팀 대시보드를 보여준다: 어제 결과, 오늘 경기, 팀 순위, 시즌 요약, 오늘 전체 일정.

2. 라이브 중계 보기

kbo live              # 선호 팀 진행 중 경기 자동 선택
kbo live SSG          # 팀 코드
kbo live ssg-wo       # 매치업 (SSG vs 키움)
kbo live 1            # 오늘 일정의 1번째 경기
kbo live --here SSG   # 현재 터미널에서 (새 창 X)

기본 동작은 새 터미널을 옆에 열어 사이드 패널처럼 표시한다. 메인 터미널은 그대로 사용 가능.

  • tmux 세션 안: 오른쪽으로 split-window
  • macOS: iTerm 또는 Terminal.app 새 창 (화면 오른쪽 배치)
  • Linux: 설치된 터미널 에뮬레이터 (gnome-terminal/konsole/xterm 등)

라이브 화면 구성 (네이버 라이브 페이지를 차용):

  • SCORE (좌상단) — 양 팀 점수, 이닝, B/S/O 점 표시, 현재 투수와 투구수
  • FIELD (중앙) — 수비 9포지션 이름 배치 + ◆/◇ 주자 다이아몬드 + 배터리(투수/포수) + ▶ 현재 타자
  • ON DECK (우상단) — 다음 3타자 + 양팀 시즌 평균 타율
  • PITCHER CARD / BATTER CARD (가운데 행) — 시즌 ERA·AVG + 오늘 기록 + 상대 전적
  • RELAY (하단) — 문자중계 스트림

단축키: q 종료, r 즉시 새로고침. relay 기본 2초, schedule/박스스코어 60초 주기로 백그라운드 폴링하고 UI 는 0.5초마다 캐시를 다시 그린다. --poll 1 로 더 빠르게 (네이버 부하 증가), --meta-poll 30 으로 박스스코어를 더 자주 갱신할 수 있다.

3. 알림 설치 (macOS)

kbo notify test          # 권한 확인 (한 번만 macOS 알림 권한 허용)
kbo notify install       # launchd 자동 등록

이후 컴퓨터가 켜져 있으면 5분마다 일정을 체크해 선호 팀 경기 시작 30분 전에 알림을 띄운다.

kbo notify status        # 현재 상태
kbo notify uninstall     # 자동 알림 제거

옵션:

kbo notify install --interval 60   # 체크 주기 1분
kbo notify install --all           # 선호 팀 외 전체 경기도 알림
kbo notify check --lead 60         # 60분 전부터 알림 발송

이미 보낸 알림은 ~/.cache/kbo-cli/notified.json에 기록되어 중복되지 않는다 (7일 후 자동 정리).

응원가 등록 (점수 났을 때 자동 재생)

kbo live 가 점수 변경을 감지하면 그 팀 응원가를 자동 재생한다. 음원은 저작권 때문에 동봉하지 않으므로 직접 등록한다.

kbo cheers add SSG ~/Downloads/ssg_cheer.mp3   # 등록
kbo cheers play SSG                            # 등록 확인용 즉시 재생
kbo cheers list                                # 등록 현황
kbo cheers remove SSG                          # 제거
kbo cheers dir                                 # ~/.config/kbo-cli/cheers

지원 포맷: mp3 / m4a / wav / aiff / ogg. 음원이 없는 팀은 OS 기본 알림음으로 폴백한다. kbo live --no-sound 로 전부 끌 수 있다.

Linux/Windows는 자동 등록이 없으니 cron, systemd timer, 작업 스케줄러로 kbo notify check를 5분 주기 등록한다.

명령 목록

명령 설명
kbo 선호 팀 대시보드 (없으면 셋업 위저드)
kbo setup 선호 팀 재설정
kbo config 현재 설정 보기
kbo today 오늘 KBO 경기 (선호 팀 우선)
kbo yesterday 어제 결과
kbo schedule [날짜] 특정 날짜 일정 — 2026-05-19, 어제, 3일전, 내일 등
kbo standings 팀 순위표 (선호 팀 강조)
kbo team [코드] 팀 정보 + 응원 구호 (코드 생략 시 10팀 전체)
kbo player <이름|pcode> 선수 정보 + 사진 (iTerm2/WezTerm 인라인, chafa 폴백)
kbo game <gameId> 박스스코어, 결승타, 라인업
kbo replay <gameId> 과거 경기 풀 리플레이 (박스 + 문자중계 전 이닝)
kbo live [질의] 실시간 중계 TUI (새 창에서 실행)
kbo notify ... 알림 관련 (test, install, status, uninstall, check, run)
kbo cheers ... 응원가 mp3 등록 (add, list, play, remove, dir)
kbo preview <gameId> 라이브 패널을 SVG/텍스트로 저장 (반응형 검증용)

각 명령은 --help로 옵션을 확인할 수 있다.

팀 코드

코드 팀 코드 팀
KIA KIA 타이거즈 LT 롯데 자이언츠
SS 삼성 라이온즈 KT KT 위즈
LG LG 트윈스 WO 키움 히어로즈
OB 두산 베어스 HH 한화 이글스
SSG SSG 랜더스 NC NC 다이노스

네이버 API의 내부 코드 (HT, SK)는 자동으로 KIA, SSG로 매핑된다.

데이터 소스

  • 일정·실시간 데이터: 네이버 스포츠 비공식 API (api-gw.sports.naver.com/schedule/games/*)
  • 팀 순위: KBO 공식 사이트 TeamRankDaily.aspx HTML 스크래핑 (네이버 순위 엔드포인트는 인증 요구)

비공식 API라 KBO/네이버 측 변경에 따라 호환성이 깨질 수 있다.

트러블슈팅

한글 깨짐 — 터미널이 UTF-8 + 한글 폰트로 설정되어 있는지 확인. iTerm2의 경우 Preferences → Profiles → Text → Font에서 D2Coding, Pretendard Mono 등을 지정.

command not found: kbo — PATH에 ~/.local/bin이 없는 경우. 위 설치 섹션 마지막 명령 참고.

ModuleNotFoundError: No module named 'kbo_cli' (소스 개발 시) — macOS uv가 .venv 내부에 UF_HIDDEN 플래그를 붙여 Python 3.11+ site.py가 .pth를 건너뛰는 이슈. 동봉된 ./kbo 래퍼가 chflags nohidden 후 uv run --no-sync python -m kbo_cli로 호출한다. uv tool/pipx 설치본에는 해당 없음.

알림이 안 뜬다 — kbo notify test로 권한 확인. 거부했다면 시스템 설정 → 알림 → 스크립트 편집기 → 허용. 로그: ~/.cache/kbo-cli/notify.err.log.

kbo live가 새 창을 못 연다 — 자동 감지가 실패한 환경. kbo live --here <질의>로 현재 터미널에서 실행.

제한 사항

ABS존(자동 볼·스트라이크 판정 좌표) 실시간 표시는 미지원. 네이버·KBO가 좌표 데이터를 공개 엔드포인트로 노출하지 않아서 정식 API가 열리기 전까지는 추가하지 않는다.

라이선스

MIT. 개인 학습 및 취미용으로 제공하며, 응원가 가사·구단 로고·중계 영상에 대한 권리는 각 권리자에게 있다. 본 저장소는 응원가 제목과 짧은 응원 구호만 포함한다.

이슈/제안: https://github.com/adminhelper/kbo-broadcast-cli/issues

About

KBO 야구 중계 CLI — Rich/Textual TUI로 실시간 스코어, 문자중계, 팀 순위, 박스스코어, 응원가

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages