Communitygithub.com

AnayDhawan/openvidstudio-bgmusic

Verwendet, wenn ein Video Hintergrundmusik benötigt, die über die beiden synthetisierten Betten hinausgeht, die mit openvidstudio ausgeliefert werden, oder wenn der Benutzer nach „Musik finden“, „Hintergrundmusik“, „Musikbett“, „BGM“ fragt, die Musik langweilig findet oder einen Track für ein Demo-, Launch- oder Promo-Video wünscht. Durchsucht zwei CC0-Public-Domain-Kataloge, importiert einen Track und formt ihn zu einem Musikbett. Nicht für Soundeffekte (plan_sound_effects) und nicht für Sprachausgabe (generate_narration).

Was ist openvidstudio-bgmusic?

Dieses Skill ermöglicht es, echte Musikbetten für Videos aus öffentlich zugänglichen, lizenzfreien Katalogen zu finden und zu importieren, ohne dass eine Bibliothek heruntergeladen oder ein Urhebervermerk angegeben werden muss. Es durchsucht zwei CC0-1.0-lizenzierte Quellen: „lofi“ (166 Lo-Fi-Tracks von btahir/open-lofi) und „cc0“ (ca. 9200 Tracks von SoundSafari/CC0-1.0-Music). Der Workflow besteht aus vier Schritten: `find_music_bed` (Suche nach Stimmung oder Szene), Benutzerauswahl, `import_music_bed` (Herunterladen, Trimmen, Ein- und Ausblenden, Normalisierung auf -20 LUFS) und `plan_music_cues` (Schätzung eines Cue-Gitters für Schnitte). Es unterstützt Claude Code, Cursor und Codex und benötigt `ffmpeg` für die Audiobearbeitung. Die Suche ist effizient, da große Archive über HTTP-Bereichsanfragen gelesen werden, ohne das gesamte Repository herunterzuladen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AnayDhawan/openvidstudio/tree/main/.agents/skills/bgmusic

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

bgmusic

Finde ein echtes Musikbett für ein Video aus Public-Domain-Katalogen, ohne eine Bibliothek herunterzuladen oder jemandem einen Credit schuldig zu sein.

Wenn die integrierten ausreichen

public/sfx/ liefert bereits zwei Betten mit, die keine Anfrage kosten:

  • music-bed.mp3, eine 60s Ambient-Drohne. Gut unter einer kurzen technischen Erklärung.
  • pulse-bed.mp3, 112 bpm mit einem exakten Cue-Gitter in pulse-bed.cues.json. Der einzige Track, bei dem taktgenaue Schnitte exakt und nicht geschätzt sind, weil er synthetisiert und nicht analysiert wurde.

Verwende sie, wenn das Video kurz, von einer Erzählung dominiert ist oder die Musik nur nicht leise sein muss. Suche weiter, wenn das Video ein Launch- oder Promo-Stück ist und das Musikbett die Stimmung trägt.

Die beiden Kataloge

QuelleWasGröße
lofibtahir/open-lofi, 166 Lo-Fi-Tracks in 10 Kategorien~3MB pro Track
cc0SoundSafari/CC0-1.0-Music, ~9200 Tracks von freepd, chosic, Free Music Archive, freesound und Pixabay2-15MB pro Track

Beide sind CC0-1.0. Public Domain, kommerzielle Nutzung in Ordnung, keine Namensnennung erforderlich, nichts für die Videobeschreibung. Deshalb sind diese beiden direkt eingebunden, während plan_sound_effects den Benutzer für Effekte immer noch manuell zu Pixabay schickt.

Ein Vorbehalt, den man aussprechen sollte: Das Korpus wird von der Community aggregiert und basiert auf Takedown-Anfragen. Die CC0-Angabe pro Track stammt also vom Betreuer, nicht von einer Lizenz, die Sie gelesen haben. Für ein Produktvideo ist das in Ordnung, und die Provenienzdatei zeichnet die Quelle auf. Wo eine falsche Lizenz teuer wäre, bleiben Sie bei lofi, das ein Autor, eine Veröffentlichung, eine Lizenzaussage ist.

Der Ablauf

find_music_bed -> [Benutzer hört an] -> import_music_bed -> plan_music_cues -> stitch_composition

1. find_music_bed

Abfrage mit einfachen Stimmungs- oder Szenenwörtern: "ruhig konzentriert codieren", "späte Nacht Neon", "warm fröhlich". Es werden Titel und Kategorien abgeglichen.

Der erste Aufruf erstellt einen Index, etwa sieben GitHub-API-Aufrufe, gecacht in output/music-index.json. Spätere Suchen sind lokale Lesevorgänge. Übergeben Sie refresh: true nur, nachdem ein Katalog eine neue Version veröffentlicht hat.

lofi-Kategorien sind echte Metadaten, daher funktioniert category: "ambient-lofi". Korpus-Tracks haben keine: Ein Track dort ist ein Dateiname in einem Ordner, der nach der Website benannt ist, von der er stammt. Wenn nichts passt, gibt das Tool ein einfaches Sample zurück und setzt matchedQuery: false. Das ist ein Signal, ein Wort zu versuchen, das ein Komponist tatsächlich in einen Titel setzen würde, nicht aufzugeben.

Lassen Sie den Benutzer wählen. Geben Sie drei bis fünf Kandidaten mit Titeln und Kategorien zurück. Musik ist Geschmack, und ein falsches Musikbett fällt mehr auf als eine falsche Schriftart.

2. import_music_bed

import_music_bed(id: "lofi:terminal-rain", out: "public/audio/music-bed.mp3", seconds: 45, start: 12)

Was es über das Herunterladen hinaus tut: Es trimmt seconds ab start, blendet ein und aus und normalisiert auf -20 LUFS, damit das Musikbett unter einer Erzählung sitzt, anstatt mit ihr zu konkurrieren. Übergeben Sie raw: true, um all das zu überspringen und den Track wie veröffentlicht zu behalten.

Wohin damit:

  • public/audio/music-bed.mp3 für das Musikbett der Komposition. stitch_composition hängt diesen Pfad automatisch an, sodass nichts anderes geändert werden muss.
  • public/imported_audios/ (die Voreinstellung) für alles andere, das ist der Ordner, der Material enthält, das nicht aus dem integrierten Paket stammt.

Es schreibt <datei>.source.json und eine Zeile in MUSIC-SOURCES.md neben den Track: ID, Titel, Quell-Repository, Lizenz, Datum. CC0 verlangt nichts davon. Es ist da, damit ein Jahr später die Herkunft eines Musikbetts ein Dateilesen und kein Raten ist.

Überspringen Sie die Mitte eines Tracks mit start. Intros sind normalerweise der am wenigsten nützliche Teil, und ein Musikbett, das auf einer Abwärtsbewegung beginnt, muss nicht bearbeitet werden, um absichtlich zu wirken.

3. plan_music_cues

Rufen Sie es für die importierte Datei auf. Für jeden Track, der nicht pulse-bed.mp3 ist, wird das Gitter aus einer Onset-Hüllkurve geschätzt. Behandeln Sie es also als Planungshilfe: Rasten Sie einige größere Enthüllungen in strongCues ein, nicht jeden Schnitt. docs/STYLE.md enthält die Toleranzen.

Kosten und Grenzen

  • Es wird nichts eingekauft. open-lofi veröffentlicht seine Tracks nur innerhalb eines 554 MB großen Release-Zips. Ein Import liest daher das zentrale Verzeichnis dieses Zips über HTTP-Bereichsanfragen und zieht nur die Bytes des ausgewählten Members. Die 554 MB werden nie heruntergeladen.
  • Die Formung eines Musikbetts benötigt ffmpeg im PATH. raw: true nicht.
  • Das unauthentifizierte API-Limit von GitHub beträgt 60 Anfragen pro Stunde. Ein Index-Build verbraucht etwa sieben. Setzen Sie GITHUB_TOKEN auf einem Rechner, der ihn häufig neu baut.
  • Der Index-Cache liegt unter output/, was ein generiertes Projekt bereits ignoriert.

Was Sie nicht tun sollten

  • Übernehmen Sie keinen ganzen Katalog in ein Projekt. Ein Musikbett pro Video ist die Einheit.
  • Legen Sie keinen Track in public/sfx/ ab. Dieser Ordner ist das Paket, das mit dem Paket ausgeliefert wird, und public/sfx/CREDITS.md sagt, was darin ist und warum es keine Bedingungen enthält.
  • Verwenden Sie dies nicht für Soundeffekte. plan_sound_effects überprüft zuerst das integrierte Paket und sucht dann erst weiter, das ist die richtige Reihenfolge für Effekte.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Verwandte Skills