bgmusic
ビデオ用の本格的なBGMを、パブリックドメインカタログから見つけます。ライブラリのダウンロードやクレジット表記は不要です。
内蔵BGMで十分な場合
public/sfx/ にはあらかじめ2つのBGMが同梱されており、リクエスト不要で使用できます。
music-bed.mp3:60秒のアンビエントドローン。短い技術解説ビデオに最適です。pulse-bed.mp3:112bpmで、pulse-bed.cues.jsonに正確なキューグリッドが付属。シンセサイズで生成されたため、ビートロックカットが推定ではなく正確です。
ビデオが短い、ナレーション主体、または音楽が無音でなければ十分という場合はこれらを使ってください。ローンチやプロモーションビデオでBGMが雰囲気を担う場合は、新しい曲を探しましょう。
2つのカタログ
| ソース | 内容 | サイズ |
|---|---|---|
lofi | btahir/open-lofi、10カテゴリ・166曲のローファイトラック | 1トラックあたり約3MB |
cc0 | SoundSafari/CC0-1.0-Music、freepd、chosic、Free Music Archive、freesound、Pixabayからの約9200トラック | 1トラックあたり2~15MB |
どちらもCC0-1.0ライセンスです。パブリックドメイン、商用利用可、帰属表示不要、ビデオ説明文にも不要です。これが、plan_sound_effects がユーザーに手動でPixabayを勧めるのに対して、この2つが自動接続されている理由です。
1つ注意点:このコーパスはコミュニティ収集で、削除リクエストに依存しています。各トラックのCC0主張はメンテナーの判断であり、あなたが読んだライセンスではありません。製品ビデオであれば問題ありませんが、ライセンス違反が重大な影響を与える場合は、単一作者・単一リリース・単一ライセンスの lofi を使用してください。
フロー
find_music_bed -> [ユーザーが試聴] -> import_music_bed -> plan_music_cues -> stitch_composition
1. find_music_bed
ムードやシーンを表すプレーンな単語でクエリします。例:"calm focus coding"、"late night neon"、"warm upbeat"。タイトルとカテゴリがマッチング対象です。
初回呼び出しでインデックスを構築(約7回のGitHub API呼び出し)し、output/music-index.json にキャッシュします。以降の検索はローカル読み取りです。カタログが新しいリリースを公開した場合のみ refresh: true を指定してください。
lofi のカテゴリは実際のメタデータなので、category: "ambient-lofi" のように使えます。cc0カタログのトラックにはカテゴリがなく、ファイル名とサイト名のフォルダのみです。何も一致しない場合、ツールはプレーンなサンプルを返し、matchedQuery: false を設定します。これは諦める合図ではなく、作曲家が実際にタイトルに使うような単語を試すように促すものです。
ユーザーに選ばせてください。 3~5件の候補をタイトルとカテゴリとともに返します。音楽は好みの問題であり、間違ったBGMは間違ったフォントよりも目立ちます。
2. import_music_bed
import_music_bed(id: "lofi:terminal-rain", out: "public/audio/music-bed.mp3", seconds: 45, start: 12)
ダウンロード以外の機能:start から seconds 秒にトリミング、フェードイン・アウト、-20 LUFSにノーマライズ(BGMがナレーションと喧嘩しないように)。raw: true でこれらの加工をスキップし、公開されたままのトラックを保持します。
保存先:
public/audio/music-bed.mp3:コンポジションのBGM用。stitch_compositionが自動的にこのパスを参照するため、他に変更は不要です。public/imported_audios/(デフォルト):その他の素材用。内蔵パックに含まれない素材を保存するフォルダです。
トラックと一緒に <file>.source.json と MUSIC-SOURCES.md の行が書き込まれます(id、タイトル、ソースリポジトリ、ライセンス、日付)。CC0ではこれらは不要ですが、1年後にBGMの出所を推測ではなくファイルで確認できます。
start でトラックの中盤から開始できます。イントロは最も役に立たない部分であることが多く、ダウンビートで始まるBGMは編集なしでも意図的に感じられます。
3. plan_music_cues
インポートしたファイルに対して呼び出します。pulse-bed.mp3 以外のトラックでは、グリッドはオンセットエンベロープから推定されるため、計画のガイダンスとして扱ってください:すべてのカットではなく、主要な演出のいくつかを strongCues にスナップします。docs/STYLE.md に許容差が記載されています。
コストと制限
- ベンダリングはありません。open-lofi は554MBのリリースzip内にのみトラックを公開しているため、インポート時はHTTP range requestでそのzipの中央ディレクトリを読み取り、選択したメンバーのバイトだけを取得します。554MB全体がダウンロードされることはありません。
- BGMの整形には
ffmpegがPATH上にある必要があります。raw: trueの場合は不要です。 - GitHubの未認証API制限は1時間あたり60リクエストです。インデックス構築には約7回かかります。頻繁に再構築するマシンでは
GITHUB_TOKENを設定してください。 - インデックスキャッシュは
output/に保存されます。スキャフォールドされたプロジェクトでは既にgitignoreされています。
やってはいけないこと
- カタログ全体をプロジェクトにコミットしないでください。1ビデオあたり1つのBGMが単位です。
- トラックを
public/sfx/に置かないでください。そのフォルダはパッケージに同梱されたパックであり、public/sfx/CREDITS.mdに内容と利用条件が記載されています。 - 効果音には使用しないでください。
plan_sound_effectsは最初に内蔵パックを確認し、その後で検索するため、効果音には適切な順序です。