@@ -11,22 +11,40 @@ import SwiftyJSON
1111public struct BeamVOD {
1212
1313 public let id : Int
14- public let storageNode : String
15- public let mainUrl : String
14+ public let storageNode : String ?
15+ public let baseUrl : String ?
16+ public let mainUrl : String ?
1617 public let format : String
1718 public let createdAt : NSDate ?
1819 public let updatedAt : NSDate ?
1920 public let recordingId : Int
2021
21- public var url : NSURL {
22- return NSURL ( string: " https:// \( storageNode) / \( id) / \( mainUrl) " ) !
22+ public var url: NSURL ? {
23+ func filePath( ) -> String ? {
24+ return [
25+ " dash " : " manifest.mpd " ,
26+ " hls " : " manifest.m3u8 " ,
27+ " thumbnail " : " source.json " ,
28+ " raw " : " source.mp4 " ,
29+ " chat " : " source.json "
30+ ] [ format]
31+ }
32+
33+ if let baseUrl = baseUrl, filePath = filePath ( ) {
34+ return NSURL ( string: " \( baseUrl) \( filePath) " )
35+ } else if let storageNode = storageNode, mainUrl = mainUrl {
36+ return NSURL ( string: " https:// \( storageNode) / \( id) / \( mainUrl) " )
37+ }
38+
39+ return nil
2340 }
2441
2542 init( json: JSON) {
2643 id = json [ " id " ] . int ?? 0
27- storageNode = json [ " storageNode " ] . string ?? " "
28- mainUrl = json [ " mainUrl " ] . string ?? " "
29- format = json [ " format " ] . string ?? " "
44+ storageNode = json [ " storageNode " ] . string
45+ baseUrl = json [ " baseUrl " ] . string
46+ mainUrl = json [ " mainUrl " ] . string
47+ format = json [ " format " ] . string ?? " unknown "
3048 createdAt = NSDate . fromBeam ( json [ " createdAt " ] . string)
3149 updatedAt = NSDate . fromBeam ( json [ " updatedAt " ] . string)
3250 recordingId = json [ " recordingId " ] . int ?? 0
0 commit comments