Skip to content

About

Sonilo plugin for Kestra

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Kestra workflow orchestrator

Event-Driven Declarative Orchestrator

Last Version License Github star
Kestra infinitely scalable orchestration and scheduling platform Slack

twitter linkedin youtube


Get started in 3 minutes with Kestra

Get started with Kestra in 3 minutes.

Kestra Sonilo Plugin

Why

  • Teams that already run media workflows in Kestra can generate a score, sound effects, or a ducked voice-and-music mix without leaving the flow.
  • Finished audio is copied into Kestra internal storage, so later tasks can use audioUri after Sonilo's presigned URLs expire.
  • A polling trigger starts a flow when a Sonilo task reaches a terminal status. Sonilo does not offer webhooks.

What

  • Plugin tasks and the trigger live in io.kestra.plugin.sonilo.
  • GenerateMusicFromText and GenerateMusicFromVideo call the Sonilo music endpoints. Streaming NDJSON is the default. wav, mp3, multiple variants, stems, ducking, and preserveSpeech run asynchronously and are polled.
  • GenerateSfxFromText and GenerateSfxFromVideo generate sound effects. DuckAudio ducks music under a voice track. Both are asynchronous.
  • Trigger polls GET /v1/tasks/{taskId} and fires once per terminal task id and status.
  • Platform keys come from platform.sonilo.com and are separate from sonilo.com app logins. Usage of generated audio is covered by Sonilo's Terms of Service.

Running Kestra locally with this plugin

  1. Build the shadow JAR: ./gradlew shadowJar. The output lands in build/libs/.
  2. Run docker compose up. docker-compose.yml builds kestra/kestra:latest and mounts build/libs/ to /app/plugins/, so Kestra picks up the jar on startup.
  3. Kestra UI is available at localhost:8080.

Plugins folder gotcha

Mounting a host folder onto /app/plugins/ replaces the container's plugins directory rather than adding to it. Core plugins (the ones logged as Registered N core plugins) are compiled into Kestra itself and aren't affected, but any additional plugin normally bundled in the base image under /app/plugins/ (e.g. the Python script plugin) gets hidden once the mount is in place. If a flow you're testing depends on another plugin, copy its jar into build/libs/ too before starting the container.

JFR startup error

On some hosts, command: server local fails with:

Unable to create JFR repository directory using base location (/tmp)

docker-compose.yml works around this by mounting /tmp as tmpfs. If you build your own compose file or run Kestra via docker run, add the same workaround, e.g. -v /tmp:/tmp or --tmpfs /tmp. Tracked upstream in kestra-io/kestra#17405.

Documentation

License

Apache 2.0 © Kestra Technologies

Stay up to date

We release new versions every month. Give the main repository a star to stay up to date with the latest releases and get notified about future updates.

Star the repo

About

Sonilo plugin for Kestra

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages