minimax-music-playlist
ユーザーの音楽の好みや生成フィードバック履歴を分析し、パーソナライズされた音楽プレイリストを生成します。プレイリスト作成、音楽の好みのプロファイリング、パーソナライズされた音楽レコメンドに関するリクエストでトリガーされます。多言語のトリガーに対応しており、あらゆる言語の同等フレーズを認識します。
description の原文を見る
> Generate personalized music playlists by analyzing the user's music taste and generation feedback history. Triggers on any request involving playlist generation, music taste profiling, or personalized music recommendations. Supports multilingual triggers — match equivalent phrases in any language.
SKILL.md 本文
MiniMax Music Playlist — パーソナライズプレイリストジェネレーター
ユーザーの音楽の好みをスキャンし、好みのプロファイルを構築し、パーソナライズされたプレイリストを生成し、アルバムカバーを作成します。このスキルはエージェントと直接ユーザーの両方の呼び出しのために設計されています — コンテキストに応じてインタラクションスタイルを適応させてください。
前提条件
- mmx CLI — 音楽と画像生成。インストール:
npm install -g mmx-cli。認証:mmx auth login --api-key <key>。 - Python 3 — スキャンスクリプト実行用(標準ライブラリのみ、pip不要)。
- オーディオプレイヤー —
mpv、ffplay、またはafplay(macOS組み込み)。
言語
ユーザーのメッセージから言語を検出します。すべてのユーザー向けテキストはユーザーのプロンプトと同じ言語である必要があります — 言語を混在させないでください。ユーザーが中国語で書いた場合、すべての出力(プロファイル概要、テーマ提案、プレイリスト計画、再生情報)は完全に中国語である必要があります。英語の場合は、すべて英語です。
すべての mmx 生成プロンプトは最高の品質のために英語である必要があります。
各曲の歌詞言語はジャンルに従います(K-pop → 韓国語、J-pop → 日本語など)、
ユーザーのUI言語ではなく。
ワークフロー
1. ローカル音楽アプリをスキャン → 2. 好みプロファイルを構築 → 3. プレイリストを計画
→ 4. 曲を生成(mmx music) → 5. カバーを生成(mmx image) → 6. 再生 → 7. 保存とフィードバック
ステップ1: 音楽リスニングデータを収集
利用可能なソースからユーザーのリスニングデータを収集します。
サポートされているソース:
| ソース | 方法 | データ形式 |
|---|---|---|
| Apple Music | osascript を使用して Music.app を照会(公式 AppleScript インターフェース) | トラック名、アーティスト、アルバム、ジャンル、再生回数 |
| Spotify | ユーザーが Spotify プライバシー設定 経由で自分のデータをエクスポート | ZIP内のJSONファイル(Streaming_History_Audio_*.json) |
| 手動入力 | ユーザーが自分の好みを直接説明 | フリーテキスト |
Spotify データ エクスポート フロー: Spotify はローカルに有用なデータを保存しません。Spotify リスニング履歴を含めるために、 ユーザーがすでに Spotify データ エクスポートを持っているか最初に確認します:
- 既存のエクスポートを検索:
find ~ -maxdepth 4 -name "my_spotify_data.zip" -o -name "Streaming_History_Audio_*.json" 2>/dev/null - 見つかった場合、ユーザーがそれを使用したいか確認
- ZIP の場合、解凍して
Spotify Extended Streaming History/Streaming_History_Audio_*.jsonを探す - 見つからない場合、Spotify プライバシー ページを開く:
open https://www.spotify.com/account/privacy/ - ユーザーにログインし、「Download your data」までスクロールして「Request data」をクリックするよう伝える
- Spotify をスキップして他のソースで続行 — ユーザーにデータ エクスポート到着後(通常は数日後) プレイリストスキルを再実行できることを伝える
Spotify データ形式:
エクスポートには Streaming_History_Audio_YYYY.json ファイル(年ごとに1つ)が含まれ、
各ファイルはリスニングイベントの JSON 配列です。抽出するキーフィールド:
master_metadata_album_artist_name— アーティスト名master_metadata_track_name— トラック名master_metadata_album_album_name— アルバム名ms_played— 再生時間(ミリ秒)(重み付けとして使用: 長い = より強い信号)ts— タイムスタンプ
ms_played < 30000 のエントリをフィルタリング(30秒未満、スキップされた可能性)。
ip_addr または他の機密フィールドを使用または保存しないでください。
各ソースから抽出するもの:
- トラック名 + アーティスト名(主要な信号)
- プレイリスト名とメンバーシップ(例:「Chinese Traditional」という名前のプレイリストはジャンル好みを示します)
- 再生回数またはストリーミング期間(利用可能な場合)(頻繁に再生されたトラックの重み付けを高くします)
- シーン/ムードタグ(利用可能な場合)
アプローチ:
- Apple Music が利用可能か確認(
osascriptクエリを試す) - ユーザーが Spotify データ エクスポート ZIP を提供できるか確認
- 利用可能なソースがない場合、ユーザーに好みを手動で説明するよう依頼
プライバシー ルール: 生のトラック リストをユーザーに表示しないでください。集計統計のみを表示します。
ステップ2: 好みプロファイルを構築
スキャンされたデータから、以下をカバーする好みプロファイルを構築します:
- ジャンル分布 — ユーザーが聴くスタイル(例: J-pop 20%、R&B 15%、Classical 10%)
- ムード傾向 — 感情的なトーン選好(メランコリック、エネルギッシュ、穏やか、ロマンティックなど)
- ボーカル好み — 男性対女性ボイスの比率
- テンポ好み — スロー/中程度/アップビート/速い分布
- 言語分布 — zh、en、ja、ko など
- トップアーティスト —最も聴かれたアーティスト
アーティスト名からジャンル/ムードを推測する方法: ほとんどの生データには、ジャンルタグなしのアーティスト + トラック名のみがあります。これを充実させるために:
<SKILL_DIR>/data/artist_genre_map.jsonのローカルマッピング テーブルでアーティストを検索 — このテーブルはジャンル、ボーカル タイプ、および言語がマッピングされた 20,000 のポピュラー アーティストをカバーしています- マッピング テーブルにないアーティストの場合、MusicBrainz API を照会します:
https://musicbrainz.org/ws/2/artist/?query=artist:<name>&fmt=json— レスポンスからジャンル タグを抽出します;レート制限を尊重(1 req/秒) —<SKILL_DIR>/data/artist_cache.jsonに結果をキャッシュして再クエリを避ける - MusicBrainz が結果を返さない場合、そのアーティストをスキップ
プロファイル キャッシング:
- プロファイルを
<SKILL_DIR>/data/taste_profile.jsonに保存 - 7日以内のプロファイルが存在する場合、それを再利用(再スキャン オプションを提供)
- より古いまたは欠けている場合、再構築
ユーザーに概要を表示:
Your Music Profile:
Sources: Apple Music 230 | Spotify 140
Genres: J-pop 20% | R&B 15% | Classical 10% | Indie Pop 9%
Moods: Melancholic 25% | Calm 20% | Romantic 18%
Vocals: Female 65% | Male 35%
Top artists: Faye Wong, Ryuichi Sakamoto, Taylor Swift, Jay Chou, Taeko Onuki
エージェントが明確なパラメーターで呼び出された場合、確認をスキップして続行します。 ユーザーが直接呼び出した場合、続行する前にプロファイルが正しいか確認します。
ステップ3: プレイリストを計画
生成する前にユーザーにテーマ/シーンを尋ねます。 これはワークフローの唯一の インタラクティブ ステップです。他のすべてのステップは自動的に実行されます。
テーマがすでに呼び出しで提供されている場合(例:エージェントまたはユーザーが 「レイト ナイト チル プレイリストを生成」と言った場合)、それを直接使用して 質問をスキップします。そうでない場合、尋ねます:
What theme would you like for your playlist? Here are some suggestions:
- "Late night chill" — relaxing slow songs
- "Commute" — upbeat and energizing
- "Rainy day" — melancholic & cozy
- "Surprise me" — random based on your taste
Or tell me your own vibe!
ユーザーがテーマを選択したら、生成、カバー、再生、保存を自動的に進めます — それ以上の確認は不要です。
プレイリスト パラメーターを決定します:
- テーマ/ムード — ユーザー入力から、またはプロファイルのトップ ムードにデフォルト
- 曲数 — ユーザー入力から、またはデフォルト 5
- ジャンル ミックス — プロファイルで重み付け、多様性を持たせる
曲ごとの歌詞言語 はジャンルに従います:
| ジャンル | 歌詞言語 |
|---|---|
| K-pop、韓国 R&B/バラード | 韓国語 |
| J-pop、シティ ポップ、J-rock | 日本語 |
| C-pop、中国風、Mandopop | 中国語 |
| Western pop/indie/rock/jazz/R&B | 英語 |
| ラテン ポップ、ボサノバ | スペイン語/ポルトガル語 |
| インストルメンタル、lo-fi、アンビエント | 歌詞なし(--instrumental) |
mmx プロンプトにボーカル説明を介して言語を自然に埋め込む:
- 良い例:
"A melancholy Chinese R&B ballad with a gentle introspective male voice, electric piano, bass, slow tempo" - 悪い例:
"R&B ballad, melancholy... sung in Chinese"
生成する前にプレイリスト計画を表示します。 各曲を 2 行で表示します:
最初の行はジャンル、ムード、ボーカル/言語タグを表示;2 番目の行は
曲の簡潔な説明を表示します。すべてのユーザー向けテキスト(計画、説明、ムード、
ラベル)はユーザーのプロンプトと同じ言語である必要があります。 実際の mmx に渡される
--prompt のみ英語であるべき — これは内部であり、ユーザーに表示してはいけません。例:
Playlist Plan: Late Night Chill (5 songs)
1. Neo-soul R&B — introspective English/male vocal
A mellow neo-soul R&B ballad with warm baritone, electric piano, smooth bass
2. Lo-fi hip-hop — dreamy Instrumental
Dreamy lo-fi with sampled piano, vinyl crackle, soft electronic drums
3. Smooth jazz — romantic English/female vocal
Silky female voice, saxophone, piano, romantic starlit night
4. Indie folk — melancholic English/male vocal
Tender male voice, acoustic guitar, harmonica, quiet solitude
5. Ambient electronic — calm Instrumental
Soft synth pads, gentle arpeggios, dreamy atmosphere
計画を表示した後、生成に直接進みます — 確認は不要です。 ユーザーはすでにテーマを選択しています;計画は透明性のため表示され、承認ではなく。
ステップ4: 曲を生成
mmx music generate を使用してすべての曲を作成します。並行して生成(最大 5 つまで)。
# 例: 5 曲を並行して
mmx music generate --prompt "<english_prompt_1>" --lyrics-optimizer \
--out ~/Music/minimax-gen/playlists/<name>/01_desc.mp3 --quiet --non-interactive &
mmx music generate --prompt "<english_prompt_2>" --instrumental \
--out ~/Music/minimax-gen/playlists/<name>/02_desc.mp3 --quiet --non-interactive &
# ... more songs ...
wait
キー フラグ:
--lyrics-optimizer— プロンプトから歌詞を自動生成(ボーカル トラック用)--instrumental— ボーカルなし--vocals "<description>"— ボーカル スタイル(例:"warm Chinese male baritone")--genre、--mood、--tempo、--instruments— 細かい制御--quiet --non-interactive— バッチ モード用のインタラクティブ出力を抑制--out <path>— ファイルに保存
ファイル命名: <NN>_<short_desc>.mp3(例:01_rnb_midnight.mp3)
出力ディレクトリ: ~/Music/minimax-gen/playlists/<playlist_name>/
曲が失敗した場合、スキップする前に 1 回再試行。エラーをログして残りを続行します。
ステップ5: アルバム カバーを生成
アルバム カバーを曲と並行して生成(ステップ4)、その後ではなく。
mmx image generate 呼び出しを曲生成呼び出しと並行して起動します。
プレイリストのテーマ、ムード、ジャンル ミックスを反映するプロンプトを作成します。 イメージはアルバム カバーのように感じるべき — 芸術的で、喚起的で、文字通りではなく。
mmx image generate \
--prompt "<cover description based on playlist theme and mood>" \
--aspect-ratio 1:1 \
--out-dir ~/Music/minimax-gen/playlists/<playlist_name>/ \
--out-prefix cover \
--quiet
プロンプト ガイダンス:
- 抽象的/芸術的スタイルはアルバム カバーに最適
- 支配的なムードとジャンルを参照(例:"dreamy late-night cityscape, neon reflections, lo-fi aesthetic")
- イメージ プロンプトにテキストまたは曲タイトルを含めないでください
- アスペクト比は 1:1(正方形、標準アルバム カバー)
ステップ6: 再生
利用可能なプレイヤーを検出し、プレイリストを順番に再生します:
| プレイヤー | コマンド | コントロール |
|---|---|---|
| mpv | mpv --no-video <file> | q スキップ、Space 一時停止、矢印キー シーク |
| ffplay | ffplay -nodisp -autoexit <file> | q スキップ |
| afplay | afplay <file> | Ctrl+C スキップ |
プレイリスト ディレクトリのすべての .mp3 ファイルをファイル名順に再生します。
このセッションで生成された曲のみを再生 — ディレクトリに以前の実行からの古いファイルがある場合、
最初にそれらをクリーンアップするか、既知のファイル名でフィルター。
プレイヤーが見つからない場合、ファイル パスを表示するだけです。
ステップ7: 保存とフィードバック
プレイリスト メタデータを <playlist_dir>/playlist.json に保存:
{
"name": "Late Night Chill",
"theme": "late night chill",
"created_at": "2026-04-11T22:00:00",
"song_count": 5,
"cover": "cover_001.png",
"songs": [
{"index": 1, "filename": "01_rnb_midnight.mp3", "prompt": "...", "rating": null}
]
}
ユーザーが存在する場合、フィードバック(曲ごと、または全体)を求めます。 好みのプロファイルのフィードバック セクションを好みの/嫌いなジャンルと プロンプトで更新して、今後のプレイリストを改善します。
プレイリストの再生
前のプレイリストを再生するよう求められた場合: ls ~/Music/minimax-gen/playlists/、
利用可能なプレイリストを表示し、選択したものを再生します。
注記
- エージェント対ユーザーの呼び出し: テーマ/シーン質問(ステップ3)は単一の インタラクティブ タッチポイントです。テーマがすでに呼び出しで提供されている場合、 質問をスキップします。他のすべては自動実行されます。
- ハードコードされたスクリプトなし: 必要に応じてスキャン/分析スクリプトをオンザフライで作成。 Python 標準ライブラリのみを使用。冗長な作業を避けるために結果をキャッシュ。
- スキル ディレクトリ:
<SKILL_DIR>= この SKILL.md ファイルを含むディレクトリ。 データ/キャッシュ ファイルは<SKILL_DIR>/data/に入ります。 - すべての mmx プロンプトは英語で 最高の生成品質のため。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- minimax-ai
- リポジトリ
- minimax-ai/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/minimax-ai/skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。