2012-05-29 3 views
11

Я хочу, чтобы загрузить видео на YouTube из моего iPhone приложения .. Я попытался это http://urinieto.com/2010/10/upload-videos-to-youtube-with-iphone-custom-app/ , но в конце концов я получаю ошибку домен = com.google.GDataServiceDomain Code = 400 " Операция не может быть выполнена. (Com.google.GDataServiceDomain error 400.) «UserInfo = 0x4d921f0 {}Загрузить видео на YouTube из iphone приложения

Может ли кто-нибудь мне помочь. Thanx !!!

Мой код

NSString *devKey = [mDeveloperKeyField text]; 

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

    NSString *username = [mUsernameField text]; 
    NSString *clientID = [mClientIDField text]; 

    NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:username 
                  clientID:clientID]; 

    // load the file data 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"YouTubeTest" ofType:@"m4v"]; 
    NSData *data = [NSData dataWithContentsOfFile:path]; 
    NSString *filename = [path lastPathComponent]; 

    // gather all the metadata needed for the mediaGroup 
    NSString *titleStr = [mTitleField text]; 
    GDataMediaTitle *title = [GDataMediaTitle textConstructWithString:titleStr]; 

    NSString *categoryStr = [mCategoryField text]; 
    GDataMediaCategory *category = [GDataMediaCategory mediaCategoryWithString:categoryStr]; 
    [category setScheme:kGDataSchemeYouTubeCategory]; 

    NSString *descStr = [mDescriptionField text]; 
    GDataMediaDescription *desc = [GDataMediaDescription textConstructWithString:descStr]; 

    NSString *keywordsStr = [mKeywordsField text]; 
    GDataMediaKeywords *keywords = [GDataMediaKeywords keywordsWithString:keywordsStr]; 

    BOOL isPrivate = mIsPrivate; 

    GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup]; 
    [mediaGroup setMediaTitle:title]; 
    [mediaGroup setMediaDescription:desc]; 
    [mediaGroup addMediaCategory:category]; 
    [mediaGroup setMediaKeywords:keywords]; 
    [mediaGroup setIsPrivate:isPrivate]; 

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

    // create the upload entry with the mediaGroup and the file data 
    GDataEntryYouTubeUpload *entry; 
    entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup 
                  data:data 
                 MIMEType:mimeType 
                  slug:filename]; 

    SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:); 
    [service setServiceUploadProgressSelector:progressSel]; 

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

    [self setUploadTicket:ticket]; 
+0

Можете ли вы разместить свой код? – Zakaria

+0

Да .. я использую свою учетную запись google –

+0

@SurenderRathore: Я тоже сталкиваюсь с той же проблемой ... может у меня помочь? –

ответ

1

Первые вещи первых, проверьте API YouTube для любых обновлений для его библиотеки GData (они изменили в прошлом я использовал их и сломал мое приложение).

http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html

Затем проверьте глупую вещь. Получили все импортированные заголовки, все проверено и т. Д.?

Попробуйте установить info.plist, чтобы использовать Wi-Fi. Я слышал, что некоторые из новых API API GData могут объяснить вашу ошибку 400, ваше приложение может не пинговать серверы YouTube.