iphone Gdata youtube api ограничивает количество полученных видео - PullRequest
0 голосов
/ 01 апреля 2011

Hy Я пытаюсь получить все видео от пользователя и поместить их в список.Я последовал учебник о том, как сделать это на iphone и придумал это.Но так как этот конкретный пользователь имеет более 500 видео, этот метод тратит много времени на загрузку заголовков видео.Я видел, что есть способ получить ссылку на видео http://gdata.youtube.com/feeds/api/users/PsyStarcraft/uploads?max-results=50&start-index=51 Есть ли какие-нибудь идеи о том, как загрузить их все, кроме как заставить пользователя телефона ждать?

'GDataServiceGoogleYouTube *service = [self youTubeService];

NSString *uploadsID = kGDataYouTubeUserFeedIDUploads;
NSURL *feedURL = [GDataServiceGoogleYouTube youTubeURLForUserID:@"HuskyStarcraft"
                                                     userFeedID:uploadsID];

[service fetchFeedWithURL:feedURL
                 delegate:self
        didFinishSelector:@selector(request:finishedWithFeed:error:)];

[super viewDidLoad];'

1 Ответ

1 голос
/ 04 апреля 2011

Я сделал это, но запрос setMaxResults не будет работать.Установить стартовый индекс работает нормально.Любые идеи?

GDataServiceGoogleYouTube *service = [self youTubeService];

        NSString *uploadsID = kGDataYouTubeUserFeedIDUploads;
        NSURL *feedURL = [GDataServiceGoogleYouTube youTubeURLForUserID:ytid
                                                             userFeedID:uploadsID
                          ];

            NSLog(@"%@", [feedURL path]);
        GDataQueryYouTube* query = [GDataQueryYouTube  youTubeQueryWithFeedURL:feedURL];
        [query setStartIndex:1];
        [query setMaxResults:2];



            [service fetchFeedWithQuery:query
                               delegate:self
                      didFinishSelector:@selector(request:finishedWithFeed:error:)];

Позже решили:

- (GDataServiceGoogleYouTube *)youTubeService {
static GDataServiceGoogleYouTube* _service = nil;

if (!_service) {
    _service = [[GDataServiceGoogleYouTube alloc] init];

    [_service setUserAgent:@"AppWhirl-UserApp-1.0"];
    [_service setShouldCacheDatedData:YES];
    [_service setServiceShouldFollowNextLinks:NO];
}

// fetch unauthenticated
[_service setUserCredentialsWithUsername:nil
                                password:nil];

return _service;
}

Измененная строка:

[_ service setServiceShouldFollowNextLinks: NO];

Кстати, это изменено из этого кода: http://pastebin.com/vmV2c0HT

...