Publicar image / video en twitter en swift

Estoy usando TwitterKit y necesito publicar un estado con una image o un video junto con la descripción. El problema es que no me está dando ningún tipo de código de error, así que no sé por qué no funciona. Aquí está el código que tengo hasta ahora:

EDIT: Ok ahora estoy recibiendo un error impreso. El error es

Error uploading image Optional(Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x14604e90 {NSErrorFailingURLStringKey=https://upload.twitter.com/1.1/media/upload.json, NSErrorFailingURLKey=https://upload.twitter.com/1.1/media/upload.json, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x14611520 "The request timed out."}) 

EDIT 2: ok, todo el código a continuación está funcionando, excepto cuando trato de upload un video, devuelve una request errónea de 400 errores

así que todo es lo mismo, excepto que cambié la línea de código de medios de esto:

 var imageData : NSData = UIImageJPEGRepresentation(self.image!, 0.5) parameters["media"] = imageData.base64EncodedStringWithOptions(nil) 

a esto

 parameters["media"] = self.video!.base64EncodedStringWithOptions(nil) //self.video is NSData 

Y este es el código:

  Twitter.shanetworkingInstance().logInWithCompletion { (session, error) -> Void in if session != nil { println("signed in as \(session.userName)") let strUploadUrl = "https://upload.twitter.com/1.1/media/upload.json" let strStatusUrl = "https://api.twitter.com/1.1/statuses/update.json" UIApplication.shanetworkingApplication().networkActivityIndicatorVisible = true var twAPIClient = Twitter.shanetworkingInstance().APIClient var error: NSError? var parameters:Dictionary = Dictionary<String, String>() // get image from bundle var imageData : NSData = UIImagePNGRepresentation(self.image!) parameters["media"] = imageData.base64EncodedStringWithOptions(nil) //for uploading video would I just do this parameters["media'] = NSData.dataWithContentsOfMappedFile(url.relativePath!) as? NSData var twUploadRequest = twAPIClient.URLRequestWithMethod("POST", URL: strUploadUrl, parameters: parameters, error: &error) if true { twAPIClient.sendTwitterRequest(twUploadRequest) { (uploadResponse, uploadResultData, uploadConnectionError) -> Void in if (uploadConnectionError == nil) { // using SwiftyJSON to parse result let json = JSON(data: uploadResultData!) // check for media id in result if (json["media_id_string"].string != nil) { println("result = \(json)") // post a status with link to media parameters = Dictionary<String, String>() parameters["status"] = "Hey look at this" parameters["media_ids"] = json["media_id_string"].string! var twStatusRequest = twAPIClient.URLRequestWithMethod("POST", URL: strStatusUrl, parameters: parameters, error: &error) if true //(twStatusRequest != nil) { twAPIClient.sendTwitterRequest(twStatusRequest) { (statusResponse, statusData, statusConnectionError) -> Void in if (statusConnectionError != nil) { println("Error posting status \(statusConnectionError)") } } // completion } else { println("Error creating status request \(error)") } } else { println("Media_id not found in result = \(json)") } } else { println("Error uploading image \(uploadConnectionError)") } } // completion } else { println("Error creating upload request \(error)") } UIApplication.shanetworkingApplication().networkActivityIndicatorVisible = false } }