• Like
  • Save
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autónoma de México
Upcoming SlideShare
Loading in...5
×
 

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autónoma de México

on

  • 2,652 views

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autónoma de México

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autónoma de México

Statistics

Views

Total Views
2,652
Views on SlideShare
2,626
Embed Views
26

Actions

Likes
1
Downloads
12
Comments
0

3 Embeds 26

http://jarek.members.sonic.net 22
http://www.linkedin.com 3
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autónoma de México YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autónoma de México Presentation Transcript

    • Building Video Apps with YouTube APIs UNAM Mexico City Jarek Wilkiewicz twitter.com/wjarek 04/01/2011
    • Agenda• Intro• Life of a video• APIs• Back-end (Google Data API)• Front-end (Player)• App Examples• Q&A
    • Quiz *Number of YouTube views per day ?> your answer hereNumber of mobile YouTube views per day?> your answer hereHow much video is uploaded each minute?> your answer here%-tage of views coming from outside of US?> your answer here *As of Oct 2010
    • Life of a video • Uploading • Sharing • Searching • PlaybackVideo : Evolution of Dance by Judson Laipplyhttp://www.youtube.com/watch?v=dMH0bHeiRNg
    • Life of a video : Uploading• Via YouTube.com uploader• Standard (POST)• Advanced (Java)• Mobile (mailto:xyz93a@m.youtube.com)• Using the API• Browser-based• Direct• Direct resumable (great for mobile)• Metadata (category, keyword, etc.)
    • Life of a video : Sharing • Autoshare • Embed • Publish to activity feed
    • Life of a video : Searchinghttp://gdata.youtube.com/feeds/api/videos?q=Google+Mexico&orderby=published&start-index=1&max-results=10&v=2 <?xml version=1.0 encoding=UTF-8?> <feed xmlns=http://www.w3.org/2005/Atom xmlns:openSearch=http://a9.com/-/spec/opensearch/1.1/ […] <entry gd:etag=W/&quot;C0AMRn47eCp7ImA9WxRQGUw.&quot;> <id>tag:youtube,2008:video:ZTUVgYoeN_b</id> <published>2008-07-05T19:56:35.000-07:00</published> <updated>2008-07-18T07:21:59.000-07:00</updated> <category scheme=http://schemas.google.com/g/2005#kind term=http://gdata.youtube.com/schemas/2007#video/> […] </entry> [...] </feed>
    • Life of a video : Playback On YouTube.com On other sites Custom Player Embedded Player Chromeless Player On your mobile On other devices
    • APIs
    • APIs Google Data APIs Player APIs
    • Google Data APIs Protocol REST-based ATOM syndication format (RFC 4287) ATOM publishing protocol (RFC 5023) support for XML-based ATOM (default), JSON, JSON-C, RSS Feeds Standard feeds (Top Rated, Most Viewed, ...) Users playlists, subscriptions, uploads feeds Users comments, profile, contacts feed YouTube applications interact with the feeds using the Google Data APIs
    • Feed example : Top Ratedhttp://gdata.youtube.com/feeds/api/standardfeeds/top_rated<?xml version=1.0 encoding=UTF-8?><feed xmlns=http://www.w3.org/2005/Atom […] > <updated>2008-07-18T05:00:49.000-07:00</updated> <title>Top Rated</title> <openSearch:totalResults>100</openSearch:totalResults> <entry gd:etag=W/&quot;C0AMRw.&quot;> <media:group> <media:title type=plain>Shopping for Coats</media:title> <yt:videoid>ZTUVgYoeN_b</yt:videoid> <media:content url=http://www.youtube.com/v/ZTUVgYoeN_b?f=gdata_standard... type=application/x-shockwave-flash medium=video [...] duration=215 yt:format=5/> <media:thumbnail url=http://img.youtube.com/vi/ZTUVgYoeN_b/2.jpg height=97 width=130 time=00:00:03.500/> </media:group> </entry> <entry> […] </entry></feed>
    • Feed access example in Javaimport com.google.gdata.client.youtube.YouTubeService;import com.google.gdata.data.youtube.VideoEntry;import com.google.gdata.data.youtube.VideoFeed;YouTubeService service = new YouTubeService(clientID,developer_key);VideoFeed videoFeed = service.getFeed(new URL(feedUrl), VideoFeed.class);printVideoFeed(videoFeed, true);public static void printVideoFeed(VideoFeed videoFeed, boolean detailed) { for(VideoEntry videoEntry : videoFeed.getEntries() ) {printVideoEntry(videoEntry, detailed); }}
    • Other useful things one can do with the APIs Upload Search Rate a video (Like/Dislike) Comment Add a playlist Retrieve activity feed (SUP or PubSubHubbub) Retrieve Insight video statistics Get a better grade on your exam! And more!If your application obtains OAuth/AuthSub authorization from auser, all of these can be done on users behalf.
    • Performing video search in Pythonimport gdata.youtube.servicedef PrintVideoFeed(feed): for entry in feed.entry: PrintEntryDetails(entry)yt_service = gdata.youtube.service.YouTubeService()yt_service.ssl = Falsequery = gdata.youtube.service.YouTubeVideoQuery()query.vq = search_termsquery.orderby = viewCountfeed = yt_service.YouTubeQuery(query)PrintVideoFeed(feed)
    • Direct upload in C#using Google.GData.Client;using Google.GData.Extensions;using Google.GData.YouTube;using Google.GData.Extensions.MediaRss;YouTubeService service = new YouTubeService("exampleCo-exampleApp-1", clientID, developerKey);service.setUserCredentials(username, password);YouTubeEntry newEntry = new YouTubeEntry();newEntry.Media = new MediaGroup();newEntry.Media.Title = new MediaTitle("My Test Movie");newEntry.Media.Categories.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));newEntry.Media.Keywords = new MediaKeywords("cars, funny");newEntry.Media.Description = new MediaDescription("My description");newEntry.Private = false;newEntry.Location = new GeoRssWhere(37, -122);newEntry.MediaSource = new MediaFileSource("c:file.mov", "video/quicktime");YouTubeEntry createdEntry = service.Upload(newEntry);
    • Player APIs Control the Player from your Web front-end URI parameters JavaScript API ActionScript API (Flash)
    • Player Parameters<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/u1zgFlCw8Aw?fs=1"</param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/u1zgFlCw8Aw?fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="425" height="344"></embed></object><iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/VIDEO_ID?autoplay=1" frameborder="0"></iframe>
    • Player JavaScript API : play for 6 seconds<script> const timeoutMs = 6000; var done = false; var player1 = new YT.Player(player1, {events: {onReady: onPlayerReady, onStateChange: onPlayerStateChange }}); function onPlayerReady(evt) { evt.target.playVideo(); } function onPlayerStateChange(newState) { if (newState == 1 && !done) { setTimeout(stopPlayer, timeoutMs); done = true; } } function stopPlayer() { player1.stopVideo(); }</script>
    • What about mobile ?Video: David After Dentist by booba1234http://www.youtube.com/watch?v=txqiwrbYGrs
    • Mobile : Recording JavaIntent i = new Intent();i.setAction(MediaStore.VIDEO_CAPTURE);startActivityForResult(i, CAPTURE_RETURN); Objective-CIImagePickerController *imagePicker = [[[UIImagePickerController alloc] init]autorelease];imagePicker.delegate = self;imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];[self presentModalViewController:imagePicker animated:YES];
    • Mobile : Uploading ACTION_SEND intent Use Google Data protocol to upload Libraries available for leading mobile platforms; you can use direct REST/HTTP on others
    • App Examples
    • Apps : Gaming
    • Apps : Viewchange.org Non-profit / social change Content curated from around the world Semantic analysis of video metadata Player integration
    • Apps : Shortform Curation platform for video DJs (VJs) Player integration Custom embed player
    • Apps : Storify Social curation / publishing platform Multiple data sources (Twitter, Facebook, YouTube) Google Data API integration
    • Apps : Memolane Curation app for your digital memories Integrates multiple sources
    • Apps : The History of Jazz “Coffee table” iPad application Videos help educate and discover new music Paid app, integrated with YouTube and iTunes
    • YouTube Direct
    • YouTube Direct : Mobile Easy authentication with AccountMananger Submission idea sync (JSON) Notification upon new assignments Video recording and upload to a specific submission idea Upload of a video selected from the gallery Geolocation tagging Massage and psychic readings
    • One last thing ... Read the Terms of Service Monetization Guide Branding Guide [1][1] Photo by sub_lime79 / Mistyhttp://www.flickr.com/photos/mistybushell/2303555607/
    • ToS [1]YouTube API Terms of Servicehttp://code.google.com/apis/youtube/terms.htmlMonetization Guidehttp://code.google.com/apis/youtube/creating_monetizable_applications.htmlBranding Guidehttp://code.google.com/apis/youtube/branding.html[1] Photo by sub_lime79 / Mistyhttp://www.flickr.com/photos/mistybushell/2303555607/
    • ResourcesGet the YouTube API developer key and start hacking!http://code.google.com/apis/youtube/dashboard/gwthttp://code.google.com/apis/youtube (docs)http://apiblog.youtube.com (blog)http://code.google.com/apis/youtube/forum (forum)twitter.com/wjarek (me)
    • Q&A Jarek Wilkiewicz twitter.com/wjarek