YouTube 음악 재생, 대기열 관리, 싱크가사(LRC) 실시간 표시 기능을 제공하는 Discord 음악 봇입니다.
- 🎶 YouTube/URL 음악 재생 및 대기열 관리
- 📝 싱크가사(LRC) 자동 검색 및 실시간 표시
- 🔁 반복 재생 모드 (현재곡/대기열)
- 🎚️ 볼륨 조절 및 설정 저장
- 🎤 노래방 모드 (실험적 기능)
- 🇰🇷 한글 명령어 지원
- 🔄 자동 연결/재연결 및 안정적인 오류 처리
- 📤 자동 음성 채널 나가기
| 명령어 |
설명 |
/재생 <제목/URL> |
음악 재생 또는 대기열에 추가 (싱크가사 자동 표시) |
/일시정지 |
재생/일시정지 토글 |
/건너뛰기 |
현재 곡 건너뛰기 |
/중지 |
재생 중지 및 음성 채널 나가기 |
| 명령어 |
설명 |
/대기열 |
현재 대기열 확인 |
/대기열초기화 |
대기열의 모든 노래 삭제 |
/삭제 <번호> |
대기열에서 특정 곡 삭제 |
/섞기 |
대기열 순서를 무작위로 섞기 |
| 명령어 |
설명 |
/볼륨 [0-100] |
볼륨 조절 (값 없으면 현재 볼륨 표시) |
/반복 <모드> |
반복 모드 설정 (끄기/현재곡/대기열) |
/현재재생 |
현재 재생 중인 노래 정보 |
| 명령어 |
설명 |
/노래방 <제목/URL> |
노래방 MR 재생 + 원곡 비교 채점 + 싱크가사 표시 |
/노래방정지 |
노래방 녹음 종료 및 채점 |
- Python 3.8 이상
- FFmpeg (다운로드 후 PATH 추가)
pip install -r requirements.txt
프로젝트 루트에 .env 파일 생성:
DISCORD_TOKEN=your_bot_token_here
- 음성 채널 연결/말하기
- 메시지/임베드 전송
- 애플리케이션 명령 사용
sicksick/
├── main.py # 봇 메인 파일
├── commands/ # 명령어 모듈
│ ├── play.py
│ ├── pause.py
│ ├── stop.py
│ ├── skip.py
│ ├── queue.py
│ └── ...
├── utils/ # 유틸리티 모듈
│ ├── constants.py
│ ├── embed_factory.py
│ ├── data_manager.py
│ ├── lyrics_sync.py
│ └── ...
├── data/ # 데이터 저장소
│ ├── playlists.json
│ └── settings.json
├── requirements.txt
└── README.md
- LRCLIB API를 통해 LRC 파일 자동 검색
- 재생 중 실시간으로 가사 표시
- 가사가 없는 경우 자동으로 건너뛰기
- MR(반주) 버전으로 재생
- 원곡과 유저 음성 비교하여 점수 제공
- 피치/에너지/발음/길이 등 종합 채점
개인/비상업적 용도 사용 가능
data/
## 종료 처리
`utils.graceful_shutdown`에서 SIGINT/SIGTERM 감지 후 등록된 콜백(데이터 저장) 실행.
## 라이선스
프로젝트 내 별도 명시 없으면 개인 용도 사용 가능. 필요 시 문의.