
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Gestire i video e le informazioni dei profili degli utenti direttamente dalle nostre applicazioni
YouTube ci permette da sempre di includere i video sulle nostre pagine, ma le API di YouTube espandono il concetto di embedding dei contenuti e ci permettono di accedere e di riutilizzare le informazioni disponibili sul social network.
Grazie a questa libreria è possibile, ad esempio, accedere al profilo di un utente e visualizzare l’elenco dei suoi video preferiti, ricercare un video, commentarlo, votarlo oppure addirittura caricarne uno nuovo.
Troviamo le Data API su Google Code, disponibili per diverse piattaforme: Java, .NET, PHP e Python. Naturalmente in questo articolo esaminiamo le tecniche principali per Java, utilizzando alcuni snippet di codice.
Prima di utilizzare le API, dobbiamo richiedere un account Google, se non ne abbiamo già uno. Grazie al nostro account possiamo ottenere una developer key. Una volta inserito un nome (name
) e un indirizzo internet di riferimento (website
) sarà generata la chiave che useremo per comunicare con il servizio, come vedremo negli esempi.
Finalmente possiamo a scaricare l’ultima versione della libreria (attualmente la 1.40.3), comprensiva di documentazione ed esempi d’uso.
Adesso abbiamo tutto il necessario, iniziamo con qualche esempio pratico, preso dalla sezione Getting Started di Google Code. Per accedere alle informazioni, ci si può servire dei canali di servizio, detti FEED. Alcuni di questi feed sono protetti e richiedono l’autenticazione al servizio.
Per la connessione al servizio è necessario creare un’istanza della classe com.google.gdata.client.youtube.YouTubeService
. Il costruttore di tale classe riceve in ingresso le nostre credenziali di sviluppatori: il CLIENT_ID
ed il DEVELOPER_KEY
.
YouTubeService service = new YouTubeService(CLIENT_ID, DEVELOPER_KEY);
Nota: il CLIENT_ID
corrisponde all’identificativo (name
) che abbiamo utilizzato per generare la chiave.
Per effettuare l’autenticazione è necessario impostare il nome utente (o l’indirizzo e-mail) e la password. Per avviare l’autenticazione occorre invocare il metodo setUserCredentials(username, password)
. Questo metodo potrebbe sollevare l’eccezione GoogleService$InvalidCredentialsException
, qualora le credenziali di accesso non fossero corrette.
try
{
service.setUserCredentials(USERNAME, PASSWORD);
}
catch (AuthenticationException e)
{
System.out.println("Impossibile eseguire l'autenticazione al sistema. Le credenziali non sono valide");
e.printStackTrace();
}
Per ad un profilo utente, abbiamo a disposizione il feed users.
http://gdata.youtube.com/feeds/api/users/username
L’ultima parte dell’URL, username
, va sostituito con il nome dell’utente del quale si vuole richiedere il profilo. Sostituendo l’username con la parola default
, si accede al profilo dell’utente autenticato.
Per inviare le richiesta è sufficiente lanciare il metodo getEntry()
della classe YouTubeService
che abbiamo creato precedentemente. Il metodo riceve in ingresso due parametri:
Se chiediamo informazioni relative al profilo, ad esempio, la libreria ci restituirà un’istanza della classe UserProfileEntry
. Questa classe ha tutti i metodi necessari per accedere agli attributi dell’utente, come ad esempio nome, username, età, etc.
È possibile accedere alle statistiche dell’utente con il metodo getStatistics()
che restituisce un oggetto di tipo YtUserProfileStatistics
.
String profileUrl = "http://gdata.youtube.com/feeds/api/users/default";
UserProfileEntry profileEntry = null;
try
{
profileEntry = service.getEntry(new URL(profileUrl), UserProfileEntry.class);
}
catch (MalformedURLException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
catch (ServiceException e) { e.printStackTrace(); }
if (null != profileEntry)
{
System.out.println("Username : " + profileEntry.getUsername());
System.out.println("Età : " + profileEntry.getAge());
System.out.println("Sesso : " + profileEntry.getGender());
System.out.println("Single : " + profileEntry.getRelationship());
System.out.println("Hobby : " + profileEntry.getHobbies());
System.out.println("Professione : " + profileEntry.getOccupation());
System.out.println("Scuola : " + profileEntry.getSchool());
YtUserProfileStatistics stats = profileEntry.getStatistics();
if(stats != null)
{
System.out.println("Numero di sottoscrizioni : " + stats.getSubscriberCount());
System.out.println("Data ultimo accesso : " + stats.getLastWebAccess().toUiString());
}
}
È possibile anche aggiornare i dati nel profilo dell’utente. Oltre ad i metodi ‘get’, infatti, sono disponibili anche i metodi ‘set’. Dopo aver valorizzato l’oggetto è sufficiente invocare il metodo update()
per rendere persistente la modifica.
profileEntry.setHobbies("Calcio");
try
{
profileEntry.update();
System.out.println("Profilo aggiornato");
}
catch (IOException e) { e.printStackTrace(); }
catch (ServiceException e) { e.printStackTrace(); }
Ciascun video pubblicato da YouTube, è contraddistinto da una chiave univoca mediante la quale è possibile accedere alle sue informazioni. L’URL da richiamare è:
http://gdata.youtube.com/feeds/api/videos/VIDEOID
Naturalmente, al posto di VIDEOID
va inserita la chiave che identifica univocamente il video. In questo caso, la libreria ci restituirà un’istanza della classe VideoEntry
.
String videoEntryUrl = "http://gdata.youtube.com/feeds/api/videos/cJXqFGYenRY";
VideoEntry videoEntry = null;
try
{
videoEntry = service.getEntry(new URL(videoEntryUrl), VideoEntry.class);
}
catch (MalformedURLException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
catch (ServiceException e) { e.printStackTrace(); }
L’oggetto che otteniamo contiene tutti i metodi che permetto di accedere alle informazioni del video, come il titolo e la data di pubblicazione.
Anche in questo caso è possibile accedere alle statistiche del video (numero di sottoscrizioni, numero di visualizzazioni).
if (null != videoEntry)
{
System.out.println("Titolo : " + videoEntry.getTitle().getPlainText());
System.out.println("Data pubblicazione : " + videoEntry.getPublished().toUiString());
YtStatistics stats = videoEntry.getStatistics();
if(stats != null)
{
System.out.println("Numero di sottoscrizioni : " + stats.getFavoriteCount());
System.out.println("Numero di visualizzazioni : " + stats.getViewCount());
}
}
Come ultimo esempio vediamo come ottenere l’elenco dei video più visualizzati in generale. Il feed corrispondente è
http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed
L’oggetto restituito dalla libreria, in questo caso, è VideoFeed
che contiene una collezione di oggetti VideoEntry
. È possibile ottenere un iterator semplicemente invocando il metodo getEntries().iterator()
.
String feedUrl = "http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed";
VideoFeed videoFeed = null;
try
{
videoFeed = service.getFeed(new URL(feedUrl), VideoFeed.class);
}
catch (MalformedURLException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
catch (ServiceException e) { e.printStackTrace(); }
if (null != videoFeed)
{
System.out.println("Video trovati: " + videoFeed.getEntries().size());
Iterator it = videoFeed.getEntries().iterator();
while (it.hasNext())
{
VideoEntry videoEntry = (VideoEntry) it.next();
System.out.println("Titolo : " + videoEntry.getTitle().getPlainText());
System.out.println("Data pubblicazione : " + videoEntry.getPublished().toUiString());
YtStatistics stats = videoEntry.getStatistics();
if(stats != null)
{
System.out.println("Numero di sottoscrizioni : " + stats.getFavoriteCount());
System.out.println("Numero di visualizzazioni : " + stats.getViewCount());
}
}
}
Ecco un breve elenco di feed tra i più interessanti tra gli standardfeeds
:
Tipologia di video | Feed Identifier |
---|---|
Più visualizzati | most_viewed |
Più votati | top_rated |
Visibili dal cellulare | watch_on_mobile |
Più commentati | most_discussed |
Più presenti nella lista dei favoriti | top_favorites |
Più recenti | most_recent |
li richiamiamo sostiduendo il feed identifier nell’ultima parte dell’indirizzo:
http://gdata.youtube.com/feeds/api/standardfeeds/FEED_IDENTIFIER
Se vuoi aggiornamenti su YouTube API per Java, gestire video e dati degli utenti inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Abbiamo ricevuto la tua richiesta di iscrizione. Se è la prima volta che ti registri ai nostri servizi, conferma la tua iscrizione facendo clic sul link ricevuto via posta elettronica.
Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali.
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
Come creare database e collection, inserire, estrarre, aggiornare e rimuovere dati da una base di dati MongoDB con Python
Impariamo ad utilizzare Takamaka, una blockchain Java Full Stack, per scrivere codice Java installabile ed eseguibile su una blockchain
Realizziamo un semplice visualizzatore di immagini in modalità random
Guida a Red Hat Quarkus, uno stack Java Kubernetes nativo pensato per applicazioni serverless e per la realizzazione di microservizi rapidi ed ottimizzati. Una piattaforma concepita per accedere in ambiente Cloud mettendo a disposizione un framework orientato ai microservizi, come ad esempio Spring Boot o Micronaut