SDKApiVideo 0.1.7

SDKApiVideo 0.1.7

api.videoRomain Petitapi.video 生态系统团队 维护。



 
依赖
HaishinKit~> 1.0.4
Logboard~> 2.1.2
 

  • romain petit

IOS SDK API.VIDEO

Language

api.video 服务帮助您轻松地将视频上传到网上。此文档帮助您使用相应的 IOS 客户端。这是一个早期版本,请随时报告任何问题。

安装

Cocoapod

  1. 将以下条目添加到您的 Podfile 中
pod ‘sdkApiVideo’
  1. 然后运行 pod install
  2. 别忘了在每个需要使用 api.video sdk 的文件中导入 sdkApiVideo

快速开始

1. 在 AppDelegate.swift 中创建一个新的 Client 实例

let authClient = Client()

2. 在 didFinishLaunchingWithOptions 方法中添加以下代码

  • 如果想要使用生产环境,请使用 createProduction 方法
  • 如果想要使用沙盒环境,请使用 createSandbox 方法
authClient.createSandbox(key: « YOUR_SANDBOX_API_KEY »){ (created, reponse) in
}

3. 在您的 ViewController.swift 文件中导入 SDK

import sdkApiVideo

4. 创建变量

let appDelegate = UIApplication.shared.delegate as! AppDelegate

5. 在 viewDidLoad 方法中

self.videoApi = appDelegate.authClient.videoApi

6. 创建并上传一个视频文件

self.videoApi.create(title: «title», description: «description», fileName: «filename», filePath: «filePath», url: «url»){ (uploaded, resp) in
    if(resp != nil){
        print("error : \((resp?.statusCode)!) -> \((resp?.message)!)")
    }else{
        if(uploaded){
            //Do whatever you want
        }else{
            // Do whatever you want
        }
    }
}

完整API

客户端

//Create production environnement
let client =  Client()
client.createProduction(key: YOUR_PRODUCTON_API_KEY){ (created, reponse) in
    if(reponse != nil && reponse?.statusCode != "200"){
        // Error
        // Do whatever you want
        // created == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // created == true uri & resp == nil
    }
}
//Create sandbox environnement
let client =  Client()
client.createSandbox(key: YOUR_SANDBOX_API_KEY){ (created, reponse) in
    if(reponse != nil && reponse?.statusCode != "200"){
        // Error
        // Do whatever you want
        // created == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // created == true uri & resp == nil
    }
}

视频

//Create video
let videoApi = client.videoApi
            
videoApi.initVideo(title: title, description: description){ (uri, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uri == "" & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uri == video uri & resp == nil
    }
}
//Upload small video <128Mb
let videoApi = client.videoApi
            
videoApi.uploadSmallVideoFile(videoUri: VIDEO_URI, fileName: FILE_NAME, filePath: FILE_PATH, url: URL){ (uploaded, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    }
}
//Upload big video
let videoApi = client.videoApi
            
videoApi.uploadBigVideoFile(videoUri: VIDEOURI, fileName: FILENAME, filePath: FILEPATH, url: URL){ (uploaded, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    }
}
//Create and auto upload video
let videoApi = client.videoApi
            
videoApi.create(title: title, description: description, fileName: filename, filePath: filepath, url: url){ (created, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // created == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // created == true & resp == nil
    }
}
//Update video
let videoApi = client.videoApi
            
videoApi.updateVideo(video: Video){ (updated, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // updated == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // updated == true & resp == nil
    }
}
//Get video with his id 
let videoApi = client.videoApi
            
videoApi.getVideoByID(videoId: VIDEO_ID){ (video, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // video == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // video != nil & resp == nil
    }
}
//Get list of video
let videoApi = client.videoApi
            
videoApi.getAllVideos(){(videos, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // videos == nil & resp == nil
    }else{
        // Success
        // Do whatever you want
        // videos != nil & resp == nil
    }
}
//Delete video
let videoApi = client.videoApi
            
videoApi.deleteVideo(videoId: VIDEO_ID){ (deleted, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // isDeleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // isDeleted == true & resp == nil
    }
}
//Get video status
let videoApi = client.videoApi
            
videoApi.getStatus(videoId: VIDEO_ID){(stat, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // isDeleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // isDeleted == true & resp == nil
    }
}
//Pick thumbnail
let videoApi = client.videoApi
            
videoApi.pickThumbnail(videoId: VIDEO_ID, timecode: "00:01:00.00"){(changed, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // changed == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // changed == true & resp == nil
    }
}
//Upload image as thumbnail
let videoApi = client.videoApi
            
videoApi.uploadImageThumbnail(videoId: VIDEO_ID, url: IMAGE_URL, filePath: FILEPATH, fileName: FILENAME, imageData: DATA){(uploaded, resp) in
    if uploaded{
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    }
}

播放器

//Create player
let playerApi = client.playerApi

playerApi.createPlayer(player: PLAYER){ (created, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // created == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // created == true & resp == nil
    }
}
//Get player with id 
let playerApi = client.playerApi

playerApi.getPlayerById(playerId: PLAYER_ID){(player, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // created == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // created == true & resp == nil
    }
}
//Get player with id
let playerApi = client.playerApi

playerApi.getPlayerById(playerId: PLAYER_ID){(player, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // player == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // player != nil & resp == nil
    }
}
//Get list of players
let playerApi = client.playerApi

playerApi.getAllPlayers(){(players, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // players == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // players != nil & resp == nil
    }
}
//Update player
let playerApi = client.playerApi

playerApi.updatePlayer(player: PLAYER){(updated, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // updated == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // updated == true & resp == nil
    }
}
//Upload logo
let playerApi = client.playerApi

playerApi.uploadLogo(playerId: PLAYER_ID, url: URL, filePath: FILEPATH, fileName: FILENAME, imageData: DATA){ (uploaded, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    }
}
//Delete player
let playerApi = client.playerApi

playerApi.deletePlayer(playerId: PLAYER_ID){ (deleted, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // deleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // deleted == true & resp == nil
    }
}

直播流

//Create live stream
let liveStreamApi = client.liveStreamApi

liveStreamApi.create(name: NAME, record: RECORD, playerId: PLAYER_ID){(created, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // created == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // created == true & resp == nil
    }
}
//Get live stream with id
let liveStreamApi = client.liveStreamApi

liveStreamApi.getLiveStreamById(liveStreamId: LIVE_STREAM_ID){(live, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // live == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // live != nil & resp == nil
    }
}
//Get list of livestreams
let liveStreamApi = client.liveStreamApi

liveStreamApi.getAllLiveStreams(){(lives, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // lives == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // lives != nil & resp == nil
    }
}
//Delete livestream
let liveStreamApi = client.liveStreamApi

liveStreamApi.deleteLiveStream(liveStreamId: LIVE_STREAM_ID){(deleted, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // deleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // deleted == true & resp == nil
    }
}
//Upload thumbnail livestream
let liveStreamApi = client.liveStreamApi

liveStreamApi.uploadImageThumbnail(liveStreamId: LIVE_STREAM_ID, url: URL, filePath: FILEPATH, fileName: FILENAME, imageData: DATA){(uploaded, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    }
}
//Delete thumbnail livestream
let liveStreamApi = client.liveStreamApi

liveStreamApi.deleteThumbnail(liveStreamId: LIVE_STREAM_ID){ (deleted, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // deleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // deleted == true & resp == nil
    }
}

字幕

//Upload caption
let captionApi = client.captionApi
            
captionApi.upload(videoId: VIDEO_ID, url: URL, filePath: FILEPATH, fileName: FILENAME, language: LANGUAGE){ (uploaded, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    } 
}
//Get caption with id
let captionApi = client.captionApi
            
captionApi.getCaption(videoId: VIDEO_ID, language: LANGUAGE){ (caption, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // caption == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // caption != nil & resp == nil
    } 
}
//Get list of captions
let captionApi = client.captionApi
            
captionApi.getAllCaptions(videoId: VIDEO_ID){ (captions, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // captions == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // captions != nil & resp == nil
    } 
}
//Update default caption
let captionApi = client.captionApi
            
captionApi.updateDefaultValue(videoId: VIDEO_ID, language: LANGUAGE, isDefault: BOOL){ (updated, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // updated == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // updated == true & resp == nil
    } 
}
//Delete caption
let captionApi = client.captionApi
            
captionApi.(videoId: VIDEO_ID, language: LANGUAGE){ (deleted, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // deleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // deleted == true & resp == nil
    } 
}

章节

//Upload chapter
let chapterApi = client.chapterApi
            
chapterApi.uploadChapter(videoId: VIDEO_ID, url: URL, filePath: FILEPATH, fileName: FILENAME, language: LANGUAGE){ (uploaded, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // uploaded == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // uploaded == true & resp == nil
    } 
}
//Get chapter with id
let chapterApi = client.chapterApi
            
chapterApi.getChapter(videoId: VIDEO_ID, language: LANGUAGE){ (chapter, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // chapter == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // chapter != nil & resp == nil
    } 
}
//Get list of chapters
let chapterApi = client.chapterApi
            
chapterApi.getAllChapters(videoId: VIDEO_ID){ (chapters, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // chapters == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // chapters != nil & resp == nil
    } 
}
//Delete chapter
let chapterApi = client.chapterApi
            
chapterApi.deleteChapter(videoId: VIDEO_ID, language: LANGUAGE){ (deleted, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // deleted == false & resp != nil
    }else{
        // Success
        // Do whatever you want
        // deleted == true & resp == nil
    } 
}

分析视频

//Get analytics of video
let analyticsVideoApi = client.analyticsVideoApi
            
analyticsVideoApi.searchVideoAnalyticsById(idVideo: VIDEO_ID, period : PERIOD){ (analytics, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // analytics == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // analytics != nil & resp == nil
    } 
}

分析直播流

//Get analytics of live stream
let analyticsLiveApi = client.analyticsLiveApi
            
analyticsLiveApi.searchLiveAnalyticsById(idLiveStream: LIVE_STREAM_ID, period: PERIOD){ (analytics, resp) in
    if(resp != nil && resp?.statusCode != "200" && resp?.statusCode != "201" && resp?.statusCode != "202"){
        // Error
        // Do whatever you want
        // analytics == nil & resp != nil
    }else{
        // Success
        // Do whatever you want
        // analytics != nil & resp == nil
    } 
}

插件

API.Video sdk 使用外部库

插件 README
HaishinKit https://github.com/shogo4405/HaishinKit.swift

常见问题

如果您有任何疑问,请在此提问: https://community.api.video。或者使用 问题

许可

Apache-2.0