api.video Swift Player

api.video is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.

Table of contents

Project description

Easily integrate a video player for videos from api.video in your iOS application.

Getting started


Swift Package Manager

In the Project Navigator select your own project. Then select the project in the Project section and click on the Package Dependencies tab. Click on the "+" button at the bottom. Paste the below url on the search bar on the top right. Finaly click on "Add package" button.


Or add this in your Package.swift

  dependencies: [
        .package(url: "https://github.com/apivideo/api.video-swift-player.git", from: "1.1.3"),


Add pod 'ApiVideoPlayer', '1.1.3' in your Podfile

Run pod install

Retrieve your video Id

At this point, you must have uploaded a least one video to your account. If you haven't see how to upload a video. You'll need a video Id to use this component and play a video from api.video. To get yours, follow these steps:

  1. Log into your account or create one here.
  2. Copy your API key (sandbox or production if you are subscribed to one of our plan).
  3. Go to the official api.video documentation.
  4. Log into your account in the top right corner. If it's already done, be sure it's the account you want to use.
  5. Go to API Reference -> Videos -> List all videos
  6. On the right, be sure the "Authentication" section contains the API key you want to use.
  7. Generate your upload token by clicking the "Try It!" button in the right section
  8. Copy the "videoId" value of one of elements of the response in the right section.

Alternatively, you can find your video Id in the video details of your dashboard.

Code sample

  1. Imports the library
import ApiVideoPlayer
  1. Instantiates the player view
let playerView: ApiVideoPlayerView = ApiVideoPlayerView(frame: .zero, videoOptions: VideoOptions(videoId: "YOUR_VIDEO_ID", videoType: .vod)) // for private video VideoOptions(videoId: "YOUR_VIDEO_ID", videoType: .vod, token: "YOUR_PRIVATE_VIDEO_TOKEN")
  1. Adds the player view as a subview of your view controller
override func viewDidLoad() {
  1. Delegates the player events

To be able to use the player delegate, you must implement the PlayerDelegate protocol.

extension YourViewController: PlayerDelegate {
    public func didPrepare() {
        // Do what you want when didPrepare is called

    public func didReady() {
        // Do what you want when didReady is called

    public func didPause() {
        // Do what you want when didPause is called

    public func didPlay() {
        // Do what you want when didPlay is called

    public func didReplay() {
        // Do what you want when didReplay is called

    public func didMute() {
        // Do what you want when didMute is called

    public func didUnMute() {
        // Do what you want when didUnMute is called

    public func didLoop() {
        // Do what you want when didLoop is called

    public func didSetVolume(_: Float) {
        // Do what you want when didSetVolume is called

    public func didSeek(_: CMTime, _: CMTime) {
        // Do what you want when didSeek is called

    public func didEnd() {
        // Do what you want when didEnd is called

    public func didError(_: Error) {
        // Do what you want when didError is called

    public func didVideoSizeChanged(_: CGSize) {
        // Do what you want when didVideoSizeChanged is called
  1. Registers the delegate
override func viewDidLoad() {
  1. To use fullscreen, you must pass the view controller to the player view
override func viewDidAppear(_ animated: Bool) {
    playerView.viewController = self

Remote control

If you want to enable the remote control do the following:

override func viewDidLoad() {
    self.playerView.enableRemoteControl = true

When you have to remove it set enableRemoteControl to false

By default the remote control is hidden.

Sample application

A demo application demonstrates how to use player. See /example folder.

On the first run, you will have to set your video Id:

  1. Replace "YOUR_VIDEO_ID" by your video Id



We are using external library

ApiVideoPlayerAnalytics README.md


If you have any questions, ask us here: https://community.api.video or use Issues.

Was this page helpful?