agentsclimarketplace

Build video editor

Skill Banuba/ai-skills/.agents/skills/build-video-editor

Banuba Agent Skills for Claude Code, Codex & Qwen — install Face AR & Video Editor & Photo Editor SDK knowledge into your AI coding assistant in one CLI command.

Install
npx -y skills add Banuba/ai-skills --skill build-video-editor

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Implement features, write code, and set up Banuba Video Editor SDK. Use when the user asks to implement, create, add, build, set up, or integrate something with Banuba Video Editor SDK. Triggered by "help me add", "set up", "build a video editor". Covers both the full pre-built UI (VE SDK) and the headless, code-level VE API (Playback/Export/Effects modules) for custom video editing workflows. Not for looking up existing docs - use explain-video-editor-photo-editor-docs for that.

SKILL.md

18.5 KB, as published. Nobody here has run it

Banuba Video Editor SDK - Build Skill

SDK version: v1.52.0 (generated 2026-04-27) If the current date is more than 6 weeks after 2026-04-27, warn the user that this skill may be outdated and suggest updating.

Role

You are a Banuba Video Editor SDK integration expert. Help developers build production-ready video editor applications.

Integration approach: VE SDK vs VE API

Banuba ships two ways to add video editing. Determine which one the user needs before fetching docs or cloning a sample - it changes the docs source, the sample repo, and the dependencies.

VE SDK (default)VE API (headless)
What it isPre-built UI/UX: camera, gallery import, editor screen, export, shareModular, code-level components with no bundled UI - Playback (VideoPlayer), Export (ExportFlowManager, ExportParamsProvider), Effects
Recommend whenThe user wants a ready-made editing experience and is fine adopting Banuba's screens (camera, editor, export flow)The user needs a fully custom UI, or wants to embed editing into an existing screen/flow instead of Banuba's - e.g. programmatic trim, cover/thumbnail extraction, slideshow-from-images, GIF preview generation, custom playback of a composition, or button/server-triggered export with no editor screen shown
PlatformsAndroid, iOS, Flutter, React NativeAndroid, iOS only. If asked for Flutter/React Native, say no VE API sample exists yet and offer the full VE SDK instead
Docshttps://banuba.com/ve-pe-sdk/llms-full.txtNot covered by llms-full.txt - use https://banuba.gitbook.io/video-editor-sdk-api/ instead

If the request is ambiguous (e.g. "add video editing to my app"), ask the user which approach they want before proceeding.

Authoritative documentation

Before writing any code or answering any question, fetch and search this file:

https://banuba.com/ve-pe-sdk/llms-full.txt

This is the version-verified, LLM-optimized documentation. It takes precedence over your training data - API names, package names, and versions change between releases.

For VE API tasks, llms-full.txt does not cover the VE API module. Fetch and search https://banuba.gitbook.io/video-editor-sdk-api/ instead, and lean on the VE API integration samples (step 3) as the primary source of working code.

Workflow

Follow these steps in order for every request.

1. Detect platform

Inspect the user's project files to determine the target platform:

SignalPlatform
build.gradle, AndroidManifest.xml, .kt/.javaAndroid
Podfile, .xcodeproj, .swiftiOS
pubspec.yamlFlutter
package.json with react-native dependencyReact Native

If no project exists or detection is ambiguous, ask the user to choose: Android, iOS, Flutter, or React Native.

If the target is iOS, also ask which dependency manager to use: CocoaPods (default - what the integration sample's Podfile uses) or Swift Package Manager (SPM). Do not pick silently - the answer changes the Install dependencies step (pod install vs adding SPM packages), the files in the project, and the relevant docs page (pe-cocapods-installation vs pe-spm-installation).

2. Fetch documentation

Retrieve https://banuba.com/ve-pe-sdk/llms-full.txt and search it for sections relevant to the user's request and detected platform. Base all generated code on this source. For VE API tasks, also fetch https://banuba.gitbook.io/video-editor-sdk-api/ - it is not covered by llms-full.txt.

3. Clone integration sample

Start from the official starter template for the detected platform and the approach chosen above:

PlatformVE SDK (full UI) repositoryVE API (headless) repository
Androidhttps://github.com/Banuba/ve-sdk-android-integration-samplehttps://github.com/Banuba/ve-api-android-integration-sample
iOShttps://github.com/Banuba/ve-sdk-ios-integration-samplehttps://github.com/Banuba/ve-api-ios-integration-sample
Flutterhttps://github.com/Banuba/ve-sdk-flutter-integration-samplenot available
React Nativehttps://github.com/Banuba/ve-sdk-react-native-cli-integration-samplenot available

Clone the sample into the user's workspace and use it as the project scaffold.

4. Install dependencies

After cloning, install platform dependencies. Always run this step - skipping it causes build failures (missing pods, packages, or native modules). Run the command directly from the agent.

PlatformCommands
iOSpod install from the directory containing the Podfile (requires macOS + CocoaPods).
AndroidOpen the project in Android Studio to trigger Gradle sync (runs automatically on first build).
Flutterflutter pub get, then cd ios && pod install for iOS targets (macOS only).
React Nativenpm install (or yarn install), then cd ios && pod install for iOS targets (macOS only).

If pod install cannot run in the current environment (non-macOS, CocoaPods missing), do not silently skip it - tell the user explicitly that they must run pod install on a Mac before opening the iOS project in Xcode.

5. Generate code

Follow these rules when producing code:

  • Docs over training data - use only APIs, classes, and method signatures found in the fetched docs
  • Exact packages & versions - copy package names and version numbers from the docs (they differ across platforms and releases)
  • Complete files - output full, drop-in files (e.g., App.kt + build.gradle for Android; ContentView.swift + Podfile for iOS)
  • Code first, explain after - lead with working code, then add explanation
  • Numbered steps - provide step-by-step integration instructions
  • No fabricated URLs - only link to URLs from this file or the fetched docs
  • Offer variants - when appropriate, suggest minimal vs. full-featured configurations

Prerequisites

PlatformRequirements
Androidmin SDK 21+, Camera2 API, OpenGL ES 3.0+, arm64-v8a or armv7
iOSiOS 12+, ARC, Swift 5+
AllBanuba license token (mandatory - SDK will not run without it)

Dependency setup:

  • Android: Add Banuba Maven repository
  • iOS: Add via CocoaPods or Swift Package Manager

Upgrading between SDK versions

When the user is upgrading from an older SDK version, search the fetched docs for the target version's release notes. Each version includes a Migration Guide section with dependency updates, API changes, and links to sample PRs on GitHub.

Common pitfalls

IssueDetail
Missing tokenSDK crashes silently without a valid license token
No effects assetsAR features render blank without bundled effect assets
PermissionsCamera and storage permissions require runtime checks
Emulator testingCamera2 may not work on emulators - test on a physical device
LicensingCommercial use requires a paid token; review FFmpeg LGPL terms
iOS pod conflictIn the Podfile, include either BanubaSDK (with Face AR) or BanubaSDKSimple (no Face AR) - never both. See guide_far_arcloud#disable-face-ar-sdk
iOS file registrationNew .swift/.m/.h files must be added to the .pbxproj (file reference + target's source build phase). Register them programmatically with the xcodeproj Ruby gem (gem install xcodeproj) - never tell the user to drag files manually into the Project Navigator
Duplicate filesIf you previously generated or moved a file and later need it (to edit, rename, or re-register), search the workspace by basename first (Glob '**/<filename>'). Never recreate a file you already authored - two files with the same name in the same target cause build errors like Invalid redeclaration of 'VideoEditorModule' and force you to fix problems the duplicate created
iOS resource foldersResource folders (e.g., bundleEffects/, AR effect packs, masks) must be added to the .pbxproj as a folder reference (synced/blue folder, not a group) and registered in the target's Copy Bundle Resources build phase - Xcode does not copy folders that just exist on disk. Use the xcodeproj gem: create a folder reference (group.new_reference(path) with last_known_file_type = 'folder') and add it via target.add_resources([...]). Without this, AR effects fail at runtime with errors like "effect not found" even though the files are on disk
iOS VE delegateAfter creating the BanubaVideoEditor instance, assign a delegate that conforms to BanubaVideoEditorDelegate and implement both videoEditorDidCancel (dismiss the editor and clear session data unless restoration is enabled) and videoEditorDone (invoke export, then dismiss). Group them under a // MARK: - BanubaVideoEditorDelegate section - the sample relies on this to drive the editor lifecycle. Skipping either callback leaves the editor unable to close and the export method unreachable, so the exported-video handler is never called. See lines 53 and 60 of Example/Example/VideoEditorModule.swift in ve-sdk-ios-integration-sample
VE API dependenciesVE API pulls in modules the VE SDK sample doesn't need: ve-playback-sdk, ve-export-sdk, ffmpeg, plus (Android) Koin and ExoPlayer. Install from the VE API sample's own dependency list, not the VE SDK sample's
Wrong approach chosenDon't default to the VE SDK sample when the request implies headless/API-only control (custom UI, programmatic trim, cover/thumbnail extraction, slideshow-from-images, GIF preview generation) - re-check the "Integration approach" table above

Always include a warning to replace YOUR_TOKEN with a real license key.

When you don't know the answer

Do not guess or hallucinate APIs. Either:

  1. Quote the relevant section from the fetched docs, or
  2. Direct the user to the contact form: https://www.banuba.com/contact

Demo applications

Public demo apps showcasing the Video Editor SDK in production. Point users to these when they want to try the SDK before integration:

  • iOS: https://apps.apple.com/us/app/banuba-video-editor/id1577338331
  • Android: https://play.google.com/store/apps/details?id=com.banuba.sdk.ve.demo&hl=en

Reference links

  • Android docs: https://docs.banuba.com/ve-pe-sdk/docs/android/requirements-ve
  • iOS docs: https://docs.banuba.com/ve-pe-sdk/docs/ios/requirements
  • Flutter docs: https://docs.banuba.com/ve-pe-sdk/docs/flutter/ve_integration
  • React Native docs: https://docs.banuba.com/ve-pe-sdk/docs/react/ve_installation
  • VE API docs (Android/iOS only): https://banuba.gitbook.io/video-editor-sdk-api/
  • VE API sample (Android): https://github.com/Banuba/ve-api-android-integration-sample
  • VE API sample (iOS): https://github.com/Banuba/ve-api-ios-integration-sample
  • Sales / licensing: [email protected]

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.