SOURCEPOOL — YouTube 피아노 커버 기반 MIDI 로데이터

v1.0 | PARKSY / DTSLIB | 2026-06-27

1. 발상

MIDI 원시 데이터 확보 = AI 작곡 파이프라인의 핵심 병목.

YouTube 피아노 커버 채널들이 이미 1차 정제(원곡 → 2성부 편곡)를 완료한 상태로 존재한다.

VST/AI 렌더링으로 노이즈 최소화 → Basic Pitch 최적 입력.

이 채널들을 DTSLIB의 무료 MIDI 편곡 하청업체로 활용한다.

2. Tier 분류

Tier채널 유형MIDI 품질장르예시
🟢 T2아니메 OST 전문★★★★★J-POP/애니OSTAnimenz, F.B.Piano
🟡 T3K-POP 피아노 혼합★★★★☆K-POP/J-POPPianellaPiano
🔵 T1롱폼 BGM★★★☆☆가요/팝/OSTMindPiano, RelaxingPiano

T2(아니메 OST)가 MIDI 추출 품질 최우선.

3. 파이프라인

YouTube 채널 URL
   ↓ yt-dlp --flat-playlist (영상 목록)
   ↓ yt-dlp -x --audio-format wav (개별 다운로드)
   ↓ Basic Pitch (오디오 → MIDI)
   ↓ 소스풀 분류 저장
   ↓ parksy-audio 기존 파이프라인 (full_pipeline / zero_compose)

소스풀 디렉토리 구조

local-agent/sourcepool/
├── channels.json          ← 등록 채널 DB
├── catalog.json            ← 수확 MIDI 카탈로그
├── wav/{channel}/          ← 임시 WAV (처리 후 삭제)
└── midi/{channel}/{genre}/ ← 최종 MIDI 저장소

4. 사용법

채널 등록

cd ~/parksy-audio
python3 local-agent/sourcepool_harvester.py register "https://youtube.com/@채널명" --tier T2 --genre anime

채널 전체 수확 (Post-Processing 포함)

# T2 채널 50곡 + 자동 정제
python3 local-agent/sourcepool_harvester.py harvest "https://youtube.com/@Animenz" --limit 50 --tier T2 --clean

# T1 롱폼 30분 단위 분할 + 정제
python3 local-agent/sourcepool_harvester.py harvest "https://youtube.com/@MindPiano" --limit 5 --tier T1 --clean --chunk-minutes 30

단일 영상 수확

python3 local-agent/sourcepool_harvester.py single "https://youtube.com/watch?v=..." --tier T2 --genre anime

소스풀 현황

python3 local-agent/sourcepool_harvester.py status

MIDI → 기존 파이프라인 연결

# zero_compose (AI 편곡)
python3 local-agent/sourcepool_harvester.py push sourcepool/midi/Animenz/anime/Unravel.mid --compose

# full_pipeline (렌더 → 비주얼)
python3 local-agent/full_pipeline.py "곡명" --midi sourcepool/midi/Animenz/anime/Unravel.mid

5. 등록 채널 (기본)

채널Tier장르
@MindPianoT1pop/ost
@AnimenzT2anime
@FBPianoAnimeT2anime
@PianellaPianoT3kpop
@RelaxingPianoT1pop/ost

6. 연결: @musician-parksy YouTube 채널

이 소스풀 MIDI는 parksy-audio 기존 파이프라인을 통해 자동 업로드 가능:

sourcepool MIDI
  → full_pipeline.py (렌더/마스터링/비주얼)
  → --upload 플래그
  → dtslib-papyrus/tools/youtube/upload.cjs a  ← account 'a'
  → @musician-parksy (UCun6b2HD3ekp35PhqbTfOlg)

YouTube API 인증 정보: