YouTube @musician-parksy + parksy.kr + Google Drive ํ๋ฐฉ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ.
์ต์ข ๊ฐฑ์ : 2026-02-23
video.mp4
โ
โโ[1] youtube-studio.js upload โโโ YouTube @musician-parksy
โ โโโ video.mp4.youtube.json (์ฌ์ด๋์นด)
โ
โโ[2] update-musician-manifest.js โโโ parksy.kr/data/youtube/musician-videos.json
โ
โโ[3] git add + commit + push โโโ GitHub Pages (parksy.kr ์๋ ๋ฐฐํฌ)
โ
โโ[4] gdrive-sync.sh youtube โโโ Google Drive (์ ํ)
| ํ์ผ | ์ญํ | |
| `tools/deploy-musician.sh` | ํ๋ฐฉ ๋ฐฐํฌ ์ค์ผ์คํธ๋ ์ดํฐ | |
|---|---|---|
| `tools/update-musician-manifest.js` | .youtube.json โ ๋งค๋ํ์คํธ ์ ๋ฐ์ดํธ | |
| `tools/youtube/youtube-studio.js` | YouTube API CLI (์ ๋ก๋/๊ด๋ฆฌ) | |
| `tools/gdrive-sync.sh` | Google Drive rclone ๋๊ธฐํ | |
| `docs/DEPLOY-MUSICIAN-PIPELINE.md` | ์ด ๋ฌธ์ |
| ํ์ผ | ์ญํ | |
| `data/youtube/musician-videos.json` | ๋น๋์ค ๋งค๋ํ์คํธ (๋ฐฐํฌ ๋์) | |
|---|---|---|
| `category/Musician-Parksy/index.html` | ๋ฎค์ง์ ํ์ด์ง (๋งค๋ํ์คํธ ์ฝ์ด์ ๋ ๋๋ง) |
{
"collection": "musician-videos",
"version": "1.0.0",
"channelId": "@musician-parksy",
"lastUpdated": "2026-02-23T10:00:00.000Z",
"count": 1,
"items": [
{
"videoId": "dQw4w9WgXcQ",
"title": "Parksy Piano Minimal #001",
"program": "P2",
"playlist": "๋ฐ์จ ์ค๋์ค",
"style": "piano-minimal",
"composer": "Chopin",
"work": "Nocturne Op.9 No.1",
"ambient": "rain",
"duration": 260,
"privacy": "private",
"uploadedAt": "2026-02-23T10:00:00.000Z",
"sourceFile": "video.mp4"
}
]
}
| ํ๋ | ํ์ | ํ์ | ์ค๋ช | |||
| `videoId` | string | O | YouTube ๋น๋์ค ID | |||
|---|---|---|---|---|---|---|
| `title` | string | O | ์์ ์ ๋ชฉ | |||
| `program` | string | O | P2/P3/P4/P5 | |||
| `playlist` | string | - | ํ๋ ์ด๋ฆฌ์คํธ ์ด๋ฆ | |||
| `style` | string | - | piano-minimal, dark-funeral ๋ฑ | |||
| `composer` | string | - | ์๊ณก๊ฐ | |||
| `work` | string | - | ๊ณก๋ช | |||
| `ambient` | string | - | rain/wind/fire | |||
| `duration` | number | - | ๊ธธ์ด (์ด) | |||
| `privacy` | string | - | private/unlisted/public | |||
| `uploadedAt` | string | O | ISO 8601 | |||
| `sourceFile` | string | - | ์๋ณธ ํ์ผ๋ช |
# ๊ธฐ๋ณธ โ ์
๋ก๋ + ๋งค๋ํ์คํธ + push
./tools/deploy-musician.sh video.mp4 \
--program P2 --composer "Chopin" --work "Nocturne Op.9 No.1" \
--ambient rain --style piano-minimal
# Drive ํฌํจ
./tools/deploy-musician.sh video.mp4 --program P2 --drive
# ์ด๋ฏธ ์
๋ก๋๋ ์์ (์ฌ์ด๋์นด ์์)
./tools/deploy-musician.sh video.mp4 --skip-upload --program P2
# ๋ญ ํ ์ง๋ง ํ์ธ
./tools/deploy-musician.sh video.mp4 --dry-run --program P2
| ํ๋๊ทธ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช | ||
| `--program` | P2 | ํ๋ก๊ทธ๋จ (P2/P3/P4/P5) | ||
|---|---|---|---|---|
| `--composer` | - | ์๊ณก๊ฐ | ||
| `--work` | - | ๊ณก๋ช | ||
| `--ambient` | - | ์ฐ๋น์ธํธ ํ์ | ||
| `--style` | piano-minimal | ์คํ์ผ | ||
| `--playlist` | ๋ฐ์จ ์ค๋์ค | ํ๋ ์ด๋ฆฌ์คํธ | ||
| `--privacy` | private | YouTube ๊ณต๊ฐ ์ค์ | ||
| `--duration` | - | ๊ธธ์ด (์ด) | ||
| `--drive` | off | Google Drive ๋๊ธฐํ ํฌํจ | ||
| `--dry-run` | off | ๊ณํ๋ง ์ถ๋ ฅ | ||
| `--skip-upload` | off | ์ ๋ก๋ ๊ฑด๋๋ |
| ์ฝ๋ | ์๋ฏธ | |
| 0 | ์ฑ๊ณต (Drive ์คํจ๋ 0) | |
|---|---|---|
| 1 | YouTube ์ ๋ก๋ ์คํจ | |
| 2 | ์ฌ์ฉ๋ฒ ์๋ฌ | |
| 3 | parksy.kr ๊ฒฝ๋ก ์์ ๋๋ ๋งค๋ํ์คํธ ์คํจ |
node tools/update-musician-manifest.js --help # ์ฌ์ฉ๋ฒ
node tools/update-musician-manifest.js \
--sidecar video.mp4.youtube.json \
--parksy-kr ~/parksy.kr \
--program P2 --composer "Chopin" --work "Nocturne Op.9 No.1" \
--ambient rain --style piano-minimal
๋ ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋์ผํ ์์๋ก parksy.kr์ ์ฐพ์:
1. $PARKSY_KR_PATH ํ๊ฒฝ๋ณ์
2. ํ์ ๋๋ ํ ๋ฆฌ ../parksy.kr (parksy-audio ๊ธฐ์ค)
3. ~/parksy.kr (Termux)
4. /d/PARKSY/parksy.kr (PC)
queue/job-NNN.json (status: pending)
โ PC์์ ์ฒ๋ฆฌ โ status: ready
โ deploy-musician.sh๋ก ๋ฐฐํฌ
Built by Claude Code โ 2026-02-23