music-disc-videolisted
Install: claude install-skill unbias38/my-claude-skills
# music-disc-video:一首歌 → 旋轉碟片 + 滾動歌詞
把「封面圖 + 音樂 + 歌詞」做成:
- **單一 HTML 檔** —— 雙擊就能播,圖跟音樂都內嵌,複製到任何電腦都不會破
- **MP4 影片** —— 1920×1080 / 1080×1920 / 1080×1080,可直接上傳社群
---
## 第一次使用先做這個
```bash
python3 <SKILL_DIR>/scripts/env.py
```
會檢查 numpy、Pillow、中文字型、ffmpeg 有沒有齊。有 ✗ 的照著它給的指令裝。
> **Windows 上通常沒有 `python3` 這個指令**,本文所有 `python3` 都改成 `python`。
> 跑起來說「找不到 python3」就是這個原因,不是環境壞了。
---
## 工作流(給 Claude 跟著做)
> 💡 `<SKILL_DIR>` 是本 SKILL.md 所在的資料夾。
> ⚠️ **所有產出都寫進使用者的歌曲資料夾,不要寫進 skill 資料夾。**
### 步驟 1:確認素材,建立歌曲資料夾
跟使用者要三樣東西,放進同一個資料夾:
| 素材 | 說明 |
|---|---|
| 封面圖 | `.png` / `.jpg`,**正方形最好**(會同時當背景、封面、碟片) |
| 音樂 | `.mp3` |
| 歌詞 | `.srt` / `.lrc` / 純文字都可以,沒有時間軸也沒關係(見步驟 2) |
然後在該資料夾建立 `project.json`:
```json
{
"title": "歌名",
"subtitle": "英文副標或留空",
"art": "cover.png",
"audio": "song.mp3",
"lyrics": "lyrics.txt",
"layout": "16x9",
"out_prefix": "musicdisk"
}
```
**`layout` 要問使用者想要哪一種**(用 AskUserQuestion):
| 值 | 尺寸 | 適合 |
|---|---|---|
| `16x9` | 1920×1080 | YouTube、電腦螢幕、上課投影 |
| `9x16` | 1080×1920 | IG Reels、抖音、YouTube Shorts |
| `1x1` | 1080×1080 | IG 貼文 |
| `16x9-solo` `9x16-solo` `1x1-solo` | 同上 | **純音樂版**(無歌詞,碟片放大置中) |
純音樂版不需要 `lyrics` 欄位。
### 步驟 2:歌詞沒有時間軸的話,先對時
有兩條路。**先建議方法 A,使用者做不到才走方法 B。**
#### 方法 A:請 Gemini 直接聽出時間軸(快,優先推薦)
叫使用者到 [Google AI Studio](https://aistudio.google.com/) 上傳這首歌的音檔或影片,送出這段 prompt:
```
請提取這部影片的完整字幕,格式要求如下:
1. 使用 SRT 字幕格式
2. 每一句話(以��號、問號、感嘆號為斷句點)獨立一條,不要把多句話合併
3. 時間軸精確到秒,格式為 HH:MM:SS,毫秒 --> HH:MM:SS,毫秒
4. 不要用時間區間概括一整段,要逐句對應