Playlists
VideoKit's playlist support lets your app skip through a list of videos with minimal to no loading time.
We support the following types of playlists:
| Playlist | Description | 
|---|---|
| VKPlaylist | Implement your own playlist filter | 
| VKCustomPlaylist | Loads with a list of videos from our backend | 
| VKUserPlaylist | Load videos based on a user identity | 
| VKFilteredPlaylist | Filter list of videos by metadata | 
| VKTagsPlaylist | Load videos by associated tags | 
VKPlaylist
public class VKMyOwnPlaylist: VKPlaylist {
    init(videos: [VKVideo]) {
        self.videos = videos
    }
}
VKCustomPlaylist
Retrieve videos with ids 1a073e79-82d0-4d09-8640-44faa6ac0906 and 5fba1709-5cd5-4fb3-9b77-7987d550f9f3 and add them to the playlist
VKVideos.shared.get(byVideoIds: ["1a073e79-82d0-4d09-8640-44faa6ac0906", "5fba1709-5cd5-4fb3-9b77-7987d550f9f3"]) { (response: VKVideosResponse?, error: Error?) in
    if let videos = response?.videos {
        let playlist = VKCustomPlaylist(videos: videos)
    }
}
Retrieve videos with ids 1a073e79-82d0-4d09-8640-44faa6ac0906 and 5fba1709-5cd5-4fb3-9b77-7987d550f9f3 and let VKCustomPlaylist do the video fetching for you.
You can retrieve the videos using VKPlaylistDelegate.
let playlist = VKCustomPlaylist(videoIds: ["1a073e79-82d0-4d09-8640-44faa6ac0906", "5fba1709-5cd5-4fb3-9b77-7987d550f9f3"])
playlist.delegate = self
extension YourClass: VKPlaylistDelegate {
    func loaded(videos: [VKVideo]) {
        // videos loaded    
    }
}
Or alternatively through the VKPlaylistUpdated Notification
NotificationCenter.default.addObserver(forName: .VKPlaylistUpdated, object: self, queue: nil) { [weak self] (notification) in
    if let newIndexes = notification.userInfo["newIndexes"] as? [Int] {
        print("Updated playlist has \(newIndexes.count) videos.")
    }
}
let playlist = VKCustomPlaylist(videoIds: ["1a073e79-82d0-4d09-8640-44faa6ac0906", "5fba1709-5cd5-4fb3-9b77-7987d550f9f3"])
extension YourClass: VKPlaylistDelegate {
    func loaded(videos: [VKVideo]) {
        // videos loaded    
    }
}
VKUserPlaylist
let playlist = VKUserPlaylist(withUserIdentity: "unique-user-id")
VKFilteredPlaylist
let filter = VKVideoFilter()
let playlist = VKFilteredPlaylist(withFilter: filter, sortOrder: .asc)
VKTagsPlaylist
let playlist = VKTagsPlaylist(withTags: ["music", "dancing"], sortOrder: .asc)