2015-05-01 20 views
12

Przeszukałem Internet w poszukiwaniu samouczków i instrukcji, ale nie mogłem znaleźć żadnych informacji na ten temat ... Miałem więc nadzieję, że ktoś tutaj może wskazać mi właściwy kierunek lub po prostu połączyć kilka dobrych tutoriali. (Nawiasem mówiąc, jestem gotów zrobić podstawową aplikację kliencką YouTube, która pozwala użytkownikowi wyszukiwać filmy, a nie oglądać je ... nic nadzwyczajnego).Jak korzystać z interfejsu API YouTube dla aplikacji na iOS?

Z góry dziękuję!

+1

możliwe duplikat [iOS i klienta youtube] (http://stackoverflow.com/questions/23424438/ios -app-and-youtube-client) – Yuyutsu

Odpowiedz

15

Oh kolego .... Witamy na świecie parsowania plików JSON i oddanie się ze złym udokumentowane API :)

Cóż ja patrząc na to kilka miesięcy temu i udało mi się uzyskać jego pracy. Oto rzeczy trzeba zrobić:

Krok 1 - OAuth 2.0 Integracja

Czy aplikacja pozwala użytkownikowi zalogować się do YouTube, tak aby mogły wypowiedzieć się/jak/etc ... filmy? Jeśli tak, musisz poprosić użytkownika, aby najpierw zalogował się do interfejsu API serwisu YouTube za pośrednictwem aplikacji, zanim będzie mógł wykonywać te czynności. W tym celu Twoja aplikacja będzie musiała używać OAuth 2.0 do komunikacji z interfejsem API YouTube. Oto wspaniała biblioteka, które można użyć do uwierzytelniania z API YouTube poprzez OAuth 2.0: https://github.com/BHughes3388/BAHYouTubeOAuth

Krok 2 - Brelok - Dostęp Reklamowe przechowywania

Jeśli jesteś nowy uwierzytelniania OAuth, to może być na początku zniechęcający, ale gdy już się z nim obejrzysz i zapoznasz z nim, zrozumiesz, że bardzo łatwo z nim pracować.

Ogólny sposób działania aplikacji polega na tym, że aplikacja kontaktuje się z interfejsem API (w tym przypadku z interfejsem API YouTube V3) i wysyła żądanie strony internetowej. Strona umożliwia zalogowanie się do APi i przyznanie dostępu do aplikacji. Gdy to zrobisz, API wyśle ​​twoją aplikację "token dostępu". Ten token będzie musiał być używany we wszystkich (lub większości) żądaniach API (zależy to od typu żądania).

Po uzyskaniu "tokena dostępu" należy go bezpiecznie przechowywać. Zasadniczo jest to hasło, więc musisz go chronić. Wykonaj , a nie rób to, co robią niektórzy ludzie, to jest używać numeru NSUserDefaults, który w ogóle nie jest bezpieczny. Zamiast tego będziesz musiał użyć Keychain. Jest to bezpieczna biblioteka szyfrowania/przechowywania firmy Apple, którą można z łatwością wykorzystać do zapisywania bezpiecznych ciągów, takich jak hasła.

Aby korzystać Keychain bezpiecznie przechowywać i pobierać "token dostępu", gdy jest to potrzebne, spojrzeć na to SO postu, jego wielki: How to use Keychain for saving password like GenericKeychain sample code

Krok 3 - YouTube API V3 - https://developers.google.com/youtube/v3/

Tak, teraz, tym trudniej. Musisz przeczytać Google API API V3 i przejść przez dokumenty referencyjne API, aby znaleźć konkretne adresy URL, które zwrócą dane, których szukasz. Na przykład: jeśli chcesz uzyskać listę filmów z kanału domowego użytkownika lub od prostego wyszukiwania, a następnie spojrzeć na tej stronie odniesienia API: https://developers.google.com/youtube/v3/docs/videos/list

Krok 4 - Wyciąg URL wideo

Zanim przejdę dalej do tego kroku, powinienem wspomnieć, że Google twierdzi, że należy prezentować filmy w prostym widoku internetowym za pomocą kodu HTML YouTube, który po prostu osadza widok wideo w aplikacji.Ale moim zdaniem (i wielu innych programistów) to wygląda i działa okropnie ...

Jeśli więc chcesz wyświetlać filmy z YouTube w swojej aplikacji przez natywny MPMovieplayerController, musisz najpierw wyodrębnić URL filmu zanim to zrobisz.

Po zgłoszeniu się do interfejsu API serwisu YouTube w celu uzyskania zestawu filmów wideo, otrzymasz plik JSON z powrotem, plik ten zawiera listę filmów wideo (identyfikatory wideo, tytuły, daty itp.). .

Należy przeanalizować plik JSON pod kątem identyfikatorów wideo. Gdy użytkownik lub użytkownik aplikacji wybrał żądany film, należy użyć, a następnie przekazać identyfikator wideo tego konkretnego filmu wideo do biblioteki "ekstraktora łącza wideo YouTube". Ta biblioteka następnie zwróci zestaw linków do plików wideo dla tego wideo. Łącza te mogą być używane w połączeniu z MPMovieplayerController do wyświetlania wideo natywnie.

Oto wielki plik wideo YouTube url ekstraktorze - https://github.com/runmad/RMYouTubeExtractor

Powodzenia :)

+3

Wow ... dzięki kolego! To jest jak idealna odpowiedź, której potrzebowałem. :) –

+1

To łamie Warunki korzystania z usługi YouTube. Jedynym sposobem na odtwarzanie filmów z YouTube w aplikacji na iOS bez łamania jakichkolwiek TOS jest przeglądanie YTPlayerView na YouTube: https://github.com/youtube/youtube-ios-player-helper – JAL

+0

@ BalázsVincze Serdecznie zapraszamy :) –

Powiązane problemy