Carga de video a YouTube usando AFNetworking 2.0

Estoy intentando upload un video a YouTube usando la API v3 usando AFNetworking 2.0. La carga en sí está funcionando bien y puedo ver un video en mi canal. Lo que estoy teniendo un problema son los parameters (el recurso de video ) para especificar el título, la descripción, etc. que tengo que poner como mi cuerpo de request (junto con el video en sí). Aquí está el código que estoy usando.

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; [manager.requestSerializer setValue:@"Bearer #_token_goes_here#" forHTTPHeaderField:@"Authorization"]; NSDictionary *parameters = @{@"snippet" : @{@"title" : @"random_title", @"description" : @"random_description"}}; NSURL *filePath = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"]]; [manager POST:@"https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { [formData appendPartWithFileURL:filePath name:@"video" fileName:@"video.mov" mimeType:@"video/*" error:NULL]; } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Success: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

¿Cómo configuro correctamente los parameters JSON para la request? Gracias.

Ok, entonces si alguien está interesado, la única solución que encontré para esto es enviar la segunda request de actualización PUT para establecer el título y la descripción adecuados.

Tienes que anexar el fragment a los datos del formulario multiparte.

  NSData *jsonData = [NSJSONSerialization dataWithJSONObject: parameters options:NSJSONWritingPrettyPrinted error:NULL]; NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary]; [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"", @"snippet"] forKey:@"Content-Disposition"]; [mutableHeaders setValue:@"application/json" forKey:@"Content-Type"]; [formData appendPartWithHeaders:mutableHeaders body:jsonData]; [formData appendPartWithFileURL:filePath name:@"video" fileName:@"video.mov" mimeType:@"video/*" error:NULL]; 

Una request, y solo necesita los permissions para cargar.