emin@budak: ~/blog — zsh

emin@budak ~/blog % cat openfilm-wiro-provider-policy.md

OpenFilm Wiro Provider: The Policy Lesson

OpenFilm Wiro provider pull request overview

OpenFilm Wiro provider was a proposed provider for OpenFilm, an open-source video agent where coding agents write films as web pages and Studio lets people edit the result. I founded Wiro, and I opened pull request 308 on October 29, 2026.

The pull request was closed without merging on October 30. The maintainers’ decision followed OpenFilm’s first-party provider policy, not a finding about the quality of the implementation. That is a reasonable boundary for a curated project to draw, and it changes the lesson from this work: provider policy is part of the integration surface, not an afterthought.

OpenFilm builds in first-party services from the companies that offer them, and Wiro brings many companies’ models behind one API.

OpenFilm Wiro provider pull request overview
The pull request proposed Wiro routes for each supported media kind.

What the provider implemented

The implementation adds Wiro as an own-key route for generated pictures, video, music, sound effects, voice-over, transcripts, and subtitle translation. Pictures use Nano Banana 2, Nano Banana Pro, GPT Image 2, and FLUX.2 [pro]. Video uses Veo 3.1 Fast, Veo 3.1, Kling 3.0, and Seedance 2.0. Music uses ElevenLabs Music v2, Lyria 3 Pro, and Stable Audio 3 Medium, while sound effects use Stable Audio 3 Small SFX.

Voice-over uses Eleven v4, Eleven v4 Turbo, and Gemini 3.1 Flash TTS. Transcripts use Parakeet TDT 0.6B v3 or ElevenLabs Scribe. Subtitle translation uses GPT-6 Luna and GPT-6.1 Sol. The pull request records the media routes and the model choices in the proposed provider.

A model run is a task, not a request-response call

Each model run starts a task, then checks that task until it finishes. Wiro reports each outcome in the response body, so the provider reads that result rather than relying on the HTTP status alone.

Wiro supports API-key-only projects through x-api-key. Projects that use signed requests need a key and secret together, which is incompatible with integrations that only accept one provider key. OpenFilm’s settings pattern made that constraint visible early: the integration needed to carry paired configuration where signature authentication was used.

The small format details caused the real bugs

Music and voice duration come from the audio header. Lyria can use a higher bitrate, making a size-based estimate wrong, and Lyria 3 Pro chooses its own length. In one run asked for 30 seconds, it returned about three minutes, and OpenFilm’s receipt reports that difference.

Transparent pictures require two tasks: create the picture, then remove its background. A partner-model refusal can appear in task output rather than an error field, which is another reason to parse all completed results.

OpenFilm Wiro provider pull request engineering details
The pull request documents task handling, duration reading and file handling.

Testing against the service

Every model in the proposed provider was run through OpenFilm against the real service on October 29, 2026. Total usage was about $9.88. OpenFilm’s full test suite passed: 1,346, 391, and 20 tests across its three packages. The type check was clean.

That does not turn a pull request into a release. It does show that the routes, result parsing, file handling, and model-specific constraints were exercised against the service they were meant to call.

Using Wiro in OpenFilm today

OpenFilm’s Settings, then Providers, then Custom services takes any HTTP service with its address, a key, and a few words about what it does, and the agent calls it from there. Wiro works there with a project set to API-key-only authentication, with the key sent in the x-api-key header. A project that signs its requests does not work there, because custom services send fixed headers.

Where the work lives now

The full provider remains available in my OpenFilm fork’s provider branch. It is useful as a working reference for asynchronous media jobs, result parsing, media verification, and authentication assumptions, even though it is not part of upstream OpenFilm.

The conclusion

Check a curated project’s policy on providers before building one. An aggregator like Wiro fits better as a custom service than as a built-in provider.