/Tool/Sonilo
app icon

Sonilo

Verified by a Dify partnerVerified by Dify
No ratings yet
123
S
sonilo-ai/sonilo

Generate licensed music, video soundtracks, and frame-accurate sound effects with the Sonilo API. Bring your own Sonilo API key.

ProductivityVideosEntertainment

Sonilo Plugin for Dify

Licensed AI music, video-to-music soundtracks, and frame-accurate sound
effects for Dify workflows and agents, backed by the
Sonilo API (). One provider, four
tools, bring your own Sonilo API key.

Tools

ToolEndpointPurpose
Text to Music ()Original, licensed music from a text prompt.
Video to Music ()A soundtrack generated from and matched to a video's pacing/mood.
Text to Sound Effects ()Isolated SFX/Foley/impacts/ambience/UI sounds from a text prompt.
Video to Sound Effects ()Frame-accurate SFX aligned to a video's cuts, motion, and on-screen moments.

All four tools:

  • Submit the request as (required — see "How it
    works" below) and always run the task-polling path: the two SFX
    endpoints are unconditionally async on Sonilo's side, and this plugin
    always requests on the two music endpoints too.
  • Return a artifact (, , ,
    , , , , ) so results are
    easy to chain in Workflow nodes.
  • Return a short text summary.
  • Attach the generated audio as a downloadable file ( message) when a
    URL is available, so the audio also shows up directly in chat.

Setup

  1. Install this plugin from the Dify Marketplace (or import the packaged
    file directly).
  2. Open the Sonilo provider settings in Dify.
  3. Paste your Sonilo API key into Sonilo API Key. Dify stores it as an
    encrypted secret and validates it with one read-only request
    () that does not consume generation credits.
  4. Save, then add any of the four Sonilo tools to an Agent or Workflow.

Each Dify workspace supplies its own Sonilo API key — this plugin ships
with no default key, and the Sonilo team never sees your key.

Get a Sonilo API key

Create an account and an API key at https://platform.sonilo.com. See the
API docs at https://platform.sonilo.com/docs.

Scope of this version

  • Video tools take a , not a file upload.
    and send as a field —
    it must be a public or signed HTTPS location Sonilo's servers can fetch
    directly. Uploading raw video bytes (a file field on the same
    endpoints) is not implemented in this version; host the video first
    (e.g. in object storage) and pass its URL.
  • The music endpoints' default streaming mode is not implemented.
    and accept (default) or
    . returns an NDJSON event stream
    (/// events) rather than a single
    JSON body. This plugin always sends instead and polls
    , so it never has to parse that streaming
    protocol. A future version could add real streaming support.
  • Segment-level control is not exposed. The API supports an optional,
    JSON-encoded field (per-segment start/end/prompt) on the
    video endpoints. This version does not expose it as a tool parameter,
    since Dify tool parameter forms don't map cleanly onto nested arrays.
  • / / are not exposed on
    , and () is
    not included
    as a fifth tool. Both are out of scope for this initial
    submission, which focuses on the four generation endpoints named above.

How it works

Each tool calls the Sonilo REST API directly over HTTPS with , built directly against the backend's route contract
rather than through a third-party SDK. Two details matter here because they
are easy to get wrong from documentation alone:

  • Requests are , not JSON. Sonilo's backend binds
    every field on these five POST routes with FastAPI
    parameters, so a JSON body will not bind — always
    sends fields as multipart form fields (via ' construction, which multipart-encodes plain values with
    no attached file).
  • Task status values are / / — not
    the /// values an earlier draft of
    this plugin used (see "Testing status" below). is the only
    success terminal state; there is no state.

The shared client () submits the request, then polls
until the task reaches or ,
or a 10-minute timeout elapses.

Field names also differ by endpoint family: the music endpoints use
( default, or ) and accept ; the SFX
endpoints use a differently named field (///
, no documented default) and accept no field at all.

Testing status

No live call against has been made from the environment
that built this plugin
— no API key was available there.

An earlier draft of this plugin was built against
and used JSON request bodies and a
status enum. That spec turned out to be significantly wrong — the real
backend requires and uses a
status enum, among other field-level
differences (see "How it works" above). This version has been corrected
against the confirmed backend contract, but that correction itself has
only been checked for internal consistency (unit-level request/response
shaping, YAML/manifest validation, and successful packaging with the
official CLI) — not against a live response from
.

Before relying on this in production, run one real generation with a live
key against each of the four tools (a short text-to-music and text-to-sfx
call, plus a short video-to-music and video-to-sfx call against a small
public test video) and confirm the response shape matches what
expects ( is written defensively
for this reason, but hasn't been exercised against a real payload).

Privacy

See PRIVACY.md. Short version: the plugin forwards your
prompt / video URL / generation options, plus your configured API key, to
. It does not persist prompts, video URLs, generated audio,
or credentials anywhere outside of a single tool invocation.

Source and support

  • Source for this plugin: this directory
    () in
    .
  • Sonilo API / product: https://sonilo.com
  • Official SDKs (used as a reference while building this plugin):
    ,
    .
  • Support: https://sonilo.com/contact-sales or [email protected].
  • Security reports: follow Dify's
    security disclosure process.

License

MIT for this plugin's code (see LICENSE). Generated audio is
subject to Sonilo's own terms of service.

CATEGORY
Tool
VERSION
0.0.4
sonilo-ai·Updated a month ago
REPOSITORY
https://github.com/langgenius/dify-plugins/tree/main/sonilo-ai/sonilo
REQUIREMENTS
LLM invocation
Tool invocation
Maximum memory
256MB
Access domain

Some outbound calls build their address at runtime, so the list may be incomplete.

Detected
Security
Security Rating

Last checked 09/08/2026 08:54 AM · version 0.0.4

Give a rate
SHARE WITH