Risorse per lo sviluppo mobile con YouTube

Jarek Wilkiewicz, team dell'API di YouTube
Settembre 2010

Introduzione

Gli sviluppatori che vogliono integrare la registrazione, il caricamento, la condivisione e la riproduzione di video nelle loro applicazioni mobile possono utilizzare la piattaforma YouTube per semplificare il proprio lavoro e migliorare i prodotti finali. Questo articolo mette in evidenza alcune delle tecnologie che potresti utilizzare nelle tue applicazioni.

Registrazione

La procedura di registrazione video viene eseguita utilizzando la piattaforma mobile sottostante. Ad esempio, la tua applicazione potrebbe attivare un intent VIDEO_CAPTURE su Android:

Intent i = new Intent();
i.setAction(MediaStore.VIDEO_CAPTURE);
startActivityForResult(i, CAPTURE_RETURN);

In alternativa, avvia UIImagePickerController su iPhone iOS:

IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentModalViewController:imagePicker animated:YES];

Per opzioni di registrazione più avanzate su iOS 4 e versioni successive, puoi anche utilizzare la classe AVCaptureSession del framework AV Foundation.  

Caricamento

La tua applicazione può caricare un video e i relativi metadati su YouTube inviando un'email a un indirizzo email speciale associato all'account YouTube dell'utente o utilizzando uno dei tre metodi dell'API: caricamento tramite browser, caricamento diretto o caricamento diretto con possibilità di ripresa. Per le applicazioni mobile, il caricamento diretto ripristinabile è la scelta più affidabile, in quanto consente a un'applicazione di riprendersi in modo corretto da errori di connettività e di riprendere un caricamento dal punto in cui si è verificato l'errore. Il protocollo di caricamento con possibilità di ripresa di YouTube sfrutta il meccanismo Content-Range/Range di HTTP 1.1 per trasferire i video in blocchi e, in caso di interruzione, per identificare il numero di byte trasferiti correttamente.

Sebbene i contenuti video effettivi siano il componente più importante di un caricamento, i metadati del video sono parte integrante del processo, in quanto consentono agli utenti di trovare i video nella Ricerca e attivano anche altre funzionalità descritte più avanti in questo articolo. Oltre a elementi comuni come una categoria, una descrizione e un titolo, le applicazioni mobile possono includere facilmente i dati di geolocalizzazione del dispositivo GPS dello smartphone. Questi dati ti consentono di fornire una ricerca basata sulla posizione o di tracciare le posizioni dei video su una mappa. Per le applicazioni di caricamento video che cercano di ridurre al minimo l'interazione degli utenti, i caricamenti senza metadati sono un'altra opzione. Ulteriori informazioni sono disponibili in questa conferenza di Google I/O.

Condivisione

L'API YouTube Data offre anche funzionalità avanzate per le attività di condivisione video. Come le altre API di dati di Google, l'API di YouTube utilizza un protocollo ispirato a REST che supporta le rappresentazioni dei dati Atom, JSON e JSON-C. Le risposte API compatte di JSON-C sono particolarmente adatte per gli ambienti mobile, che spesso hanno risorse limitate. L'API espone funzionalità di ricerca video flessibili; la possibilità di commentare e valutare video; accesso a iscrizioni, video preferiti, playlist e un motore per suggerimenti; e una serie di funzionalità per la community che ti aiutano a integrare i video nelle applicazioni social.

Tutte queste funzioni possono essere incorporate in un'applicazione mobile utilizzando librerie client specifiche dei linguaggi di programmazione o interagendo direttamente con i server API di YouTube tramite HTTP. Il primo approccio astrae la maggior parte della complessità del protocollo a scapito di un'applicazione più ampia. Quest'ultimo approccio ti consente di creare interazioni manuali con i servizi API specifici utilizzati dalla tua applicazione. Alla fine la scelta è specifica per l'applicazione. Per iniziare, consulta la libreria GData Java per Android o la libreria GData Objective-C per iPhone. Le applicazioni video mobile più complesse possono trarre vantaggio dall'integrazione con un backend del server. Una di queste applicazioni è YouTube Direct (Figura 1), che presenta un codice server open source preconfigurato per l'esecuzione su Google App Engine, nonché implementazioni client di riferimento per il caricamento di video per Android (ytd-android, illustrato nella Figura 1) e iPhone (ytd-iphone).

Applicazione YouTube Direct per Android
Figura 1: applicazione YouTube Direct per Android

Sicurezza

Anche la sicurezza e l'autenticazione sono aspetti importanti dello sviluppo delle applicazioni YouTube per i dispositivi mobili. Sebbene alcune operazioni dell'API siano disponibili per i client non autenticati, altre richieste richiedono l'autorizzazione, che viene eseguita tramite un token di autenticazione inviato nella richiesta API. Queste operazioni includono i caricamenti di video, nonché qualsiasi altra operazione che modifichi o scriva dati o che acceda a informazioni private degli utenti.

L'API supporta tre metodi di autenticazione: AuthSub, OAuth e ClientLogin. ClientLogin è il metodo più semplice da utilizzare per le applicazioni mobile e su Android AccountManager può essere utilizzato per ottenere facilmente i token di autenticazione. Tuttavia, le applicazioni che integrano un client mobile e più backend web dovrebbero prendere in considerazione l'utilizzo di OAuth, che è preferito come standard aperto, o AuthSub, che è specifico di Google. Consulta questa applicazione per un'implementazione di esempio dell'autenticazione OAuth su Android e GDataOAuthViewControllerTouch per un'implementazione di esempio su iPhone iOS.  

Riproduzione

Infine, i video sono disponibili in modo che le persone possano guardarli. Come già detto, la piattaforma YouTube offre diverse opzioni.

  • La maggior parte delle piattaforme mobile moderne è fornita in bundle con un'applicazione del player di YouTube, che consente un'integrazione rapida. Se la tua piattaforma non include un'applicazione per il player di YouTube, puoi scaricarne una. Un'applicazione mobile avvia un player utilizzando un servizio della piattaforma. Ad esempio, su Android un'applicazione utilizza l'intent ACTION_VIEW, mentre su iPhone un'applicazione può avviare il player utilizzando il metodo openURL della classe UIApplication, come descritto in questo post del blog.
  • Il sito web mobile di YouTube, http://m.youtube.com, ti consente di integrare facilmente la riproduzione dei video in un'applicazione web.
  • Per un controllo più preciso sull'esperienza di riproduzione, le applicazioni sulle piattaforme compatibili con Adobe Flash possono estendere il player AS3 di YouTube, che offre una riproduzione di qualità superiore.