Integrations
Open any album in Kdenlive: project file generators
We generate a .kdenlive project pre-loaded with your album's videos. Download, open in Kdenlive, every clip is in the Project Bin ready to drag onto the timeline.
Kdenlive is the editor of choice for KDE / Linux users (and runs on Mac and Windows too). It's open-source, GPLv3, capable enough for serious work. The problem with integrating it the "normal" way is that Kdenlive's native scripting (over D-Bus) requires a modified Kdenlive build — not a thing your average user has.
So we took a different route: generate the project file. Kdenlive's .kdenlive format is XML — specifically, it's MLT XML (Kdenlive uses MLT under the hood). We generate a project that already references your album's media, so when you open the file Kdenlive sees the clips and pulls them in.
How to use it
- Fotofolio dashboard → Integrations → Kdenlive.
- Pick an album. We list albums that have video content.
- Click Download .kdenlive. You get a file like
smith-wedding.kdenlive. - Open the file with Kdenlive (double-click usually works, or File → Open in Kdenlive). All clips appear in the Project Bin.
- Drag clips onto the timeline. Edit normally.
What's in the generated file
The project file is human-readable MLT XML. For each video in your album we emit a <producer> with a resource attribute pointing to the public S3 URL of the video, plus Kdenlive-specific properties (kdenlive:clipname, kdenlive:file_hash, kdenlive:id) that make Kdenlive show the clip nicely in the Bin.
We don't pre-build a timeline for you — that'd be presumptuous. You drag clips onto the timeline yourself in whatever order suits the edit.
Streaming vs downloading
Because the URLs in the project are public S3 URLs, Kdenlive can stream the videos directly without downloading them locally. For typical wedding-shoot footage this works well over a decent connection. If your shoot is multi-GB and you want offline editing, just Save As the project after opening it, then use Kdenlive's "render the project intermediate proxies" feature to make local proxies — same as you would for any remote source.
Why public URLs and not presigned
Presigned URLs expire (we use a 2-hour window elsewhere). If you generate the .kdenlive project then open it three days later, presigned URLs would be dead. Public URLs (with the long-lived S3 keys we use anyway for the public portfolio) just keep working.
Privacy-side: anyone who has the .kdenlive file can access the videos through those URLs. Treat the file with the same care you'd treat the original shoot folder. It's not a security boundary — it's a convenience.
Going the other way
Kdenlive doesn't have a plugin API we can reasonably target, so we don't ship an "upload your render" integration for it. Instead, configure Kdenlive's Project → Render → Output File to point at the folder our Watch Folder helper watches, and the finished render auto-uploads. Same outcome, no special plugin needed.
Mac and Windows Kdenlive
Works the same way. The .kdenlive file is identical across platforms. The only thing that differs by platform is the rendering pipeline (Kdenlive uses ffmpeg under the hood; both Mac and Windows builds bundle it) and the Watch Folder helper's native installer — but that's out of scope for this post.
Ready to try this in your own workflow?
Free tier, no card. Or book a 30-minute walkthrough.