Frame.jpg

Cover - Meta.png

Cover - Meta(2).png

Banuba’s In-App Template Builder (iOS only) is a B2B feature within the Video Editor SDK, designed for Banuba’s customer teams, such as content managers, marketers and content creators, to create reusable, branded video editing templates without technical support.

Templates define music, transitions, clip lengths, FX, text, and “fillable slots” for videos. These can be drafted, previewed, tagged with metadata, published, distributed, and consumed within the SDK runtime.

The feature removes the B2B bottleneck of custom template requests to Banuba and enables client teams to launch and update templates in minutes instead of relying on engineering or service support.

Prerequisites

Launching

To present template builder within Video Editor you have to pass custom video editor argument in present method:

// 1. Set custom flag in arguments
var videoEditorArguments: [VideoEditorArg: Any] = ["CREATE_VIDEO_TEMPLATES_FLOW": true]

// 2. Update arguments. Must be called before presenting the editor.
videoEditorSDK.updateVideoEditorArgs(videoEditorArguments)

// 3. setup entry point .videoTemplates
let config = VideoEditorLaunchConfig(
  entryPoint: .videoTemplates,
  hostController: self,
  animated: true
)

// 4. Present Video Editor
videoEditorSDK.presentVideoEditor(
  withLaunchConfiguration: config,
  completion: nil
)

Configuration

Terms of Use URL

The Template Builder includes a confirmation step before a template is published. At this step, the user sees a message similar to:

«By publishing, you confirm that your content complies with the Terms of Use and does not infringe third-party rights.»

The Terms of Use link in that message leads to a page where you define the full legal terms that apply to content created and published by your team members using the Template Builder.

Setting this URL ensures that your organisation’s usage policies, IP guidelines, and content restrictions are clearly communicated to anyone who can publish templates. The link must point to a publicly accessible web page (e.g. your company’s Terms of Use or a dedicated policy document) and the URL must be valid and reachable.

var config = VideoEditorConfig()

guard let termsURL = URL(string: "<https://example.com/terms>") else {
    fatalError("Invalid Terms of Use URL")
}

config.videoTemplatesConfiguration
    .templateBuilderConfiguration
    .termsOfUseURL = termsURL