struct DRMParams { let type: String? let licenseServer: String? let headers: [String: Any]? let contentId: String? let certificateUrl: String? let base64Certificate: Bool? let localSourceEncryptionKeyScheme: String? let json: NSDictionary? init(_ json: NSDictionary!) { guard json != nil else { self.json = nil self.type = nil self.licenseServer = nil self.contentId = nil self.certificateUrl = nil self.base64Certificate = nil self.headers = nil self.localSourceEncryptionKeyScheme = nil return } self.json = json self.type = json["type"] as? String self.licenseServer = json["licenseServer"] as? String self.contentId = json["contentId"] as? String self.certificateUrl = json["certificateUrl"] as? String self.base64Certificate = json["base64Certificate"] as? Bool if let headers = json["headers"] as? [[String: Any]] { var _headers: [String: Any] = [:] for header in headers { if let key = header["key"] as? String, let value = header["value"] { _headers[key] = value } } self.headers = _headers } else { self.headers = nil } localSourceEncryptionKeyScheme = json["localSourceEncryptionKeyScheme"] as? String } }