2012-06-03 2 views
3

Я пытаюсь отправить видео на youtube из моего iPhone-приложения с помощью API GData. Вот код, я использую:Загрузите видео на ошибку youtube 400 InvalidRequestUriException с использованием API GData

GDataServiceGoogleYouTube* service = [self youTubeService]; 
[service setYouTubeDeveloperKey:youtubeAppKey]; 

NSString *username = service.username; 
NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:username]; 

NSData *data = [NSData dataWithContentsOfFile:self.videoPath]; 
NSString *filename = @"My Cool Video"; 
NSString *titleStr = @"Title"; 
GDataMediaTitle *mediaTitle = [GDataMediaTitle textConstructWithString:titleStr]; 

NSString *categoryStr = @"Comedy"; 
GDataMediaCategory *mediaCategory = [GDataMediaCategory mediaCategoryWithString:categoryStr]; 
[mediaCategory setScheme:kGDataSchemeYouTubeCategory]; 

NSString *descStr = @"Description"; 
GDataMediaDescription *mediaDesc = [GDataMediaDescription textConstructWithString:descStr]; 

NSString *keywordsStr = @"iOS"; 
GDataMediaKeywords *mediaKeywords = [GDataMediaKeywords keywordsWithString:keywordsStr]; 

GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup]; 
[mediaGroup setMediaTitle:mediaTitle]; 
[mediaGroup setMediaDescription:mediaDesc]; 
[mediaGroup addMediaCategory:mediaCategory]; 
[mediaGroup setMediaKeywords:mediaKeywords]; 
[mediaGroup setIsPrivate:isPrivate]; 

NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:self.videoPath 
              defaultMIMEType:@"video/mp4"]; 

GDataEntryYouTubeUpload *entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup 
                       data:data 
                      MIMEType:mimeType 
                       slug:filename]; 

GDataServiceTicket *ticket = [service fetchEntryByInsertingEntry:entry 
                 forFeedURL:url 
                 delegate:self 
               didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)]; 
[self setUploadTicket:ticket]; 

И у меня этот ответ:

ServiceBase: objectFetcher: GTMHTTPUploadFetcher 0x48af0a0 (https://uploads.gdata.youtube.com/resumable/feeds /api/users/my[email protected]/uploads?upload_id=heregoesidiremoved) failedWithStatus: 400 данных: GData InvalidRequestUriException сообщение об исключении недоступны

Я попытался Google образец кода и имели один и тот же результат. Я использовал устройство и симулятор (5.0). Я пробовал готовое видео до тех пор, пока записанный с iPhone один. Я создал проект в разделе API Google и получил ключ приложения.

Пожалуйста, помогите найти решение проблемы!

+0

так же обстоит дело с моим кодом. если у вас есть рабочая демонстрация загрузки видео на youtube, поделитесь им со мной. Thnks. мой id is [email protected] –

ответ

10

Проблемы здесь:

NSString *username = service.username; 
NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:username]; 

Не знаю почему, но я изменил идентификатор_пользователь от «имени пользователя» в kGDataServiceDefaultUser и дело начало работать. Так просто и так странно, но это было трюк.

Правильный код:

NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:kGDataServiceDefaultUser]; 
+0

Awesome .... (y) – Muzammil

 Смежные вопросы

  • Нет связанных вопросов^_^