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

  • 2,463 views
Uploaded on

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,463
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
15
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Building Video Apps with YouTube APIs UNAM Mexico City Jarek Wilkiewicz twitter.com/wjarek 04/01/2011
  • 2. Agenda• Intro• Life of a video• APIs• Back-end (Google Data API)• Front-end (Player)• App Examples• Q&A
  • 3. 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
  • 4. Life of a video • Uploading • Sharing • Searching • PlaybackVideo : Evolution of Dance by Judson Laipplyhttp://www.youtube.com/watch?v=dMH0bHeiRNg
  • 5. 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.)
  • 6. Life of a video : Sharing • Autoshare • Embed • Publish to activity feed
  • 7. 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>
  • 8. Life of a video : Playback On YouTube.com On other sites Custom Player Embedded Player Chromeless Player On your mobile On other devices
  • 9. APIs
  • 10. APIs Google Data APIs Player APIs
  • 11. 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
  • 12. 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>
  • 13. 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); }}
  • 14. 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.
  • 15. 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)
  • 16. 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);
  • 17. Player APIs Control the Player from your Web front-end URI parameters JavaScript API ActionScript API (Flash)
  • 18. 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>
  • 19. 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>
  • 20. What about mobile ?Video: David After Dentist by booba1234http://www.youtube.com/watch?v=txqiwrbYGrs
  • 21. 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];
  • 22. 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
  • 23. App Examples
  • 24. Apps : Gaming
  • 25. Apps : Viewchange.org Non-profit / social change Content curated from around the world Semantic analysis of video metadata Player integration
  • 26. Apps : Shortform Curation platform for video DJs (VJs) Player integration Custom embed player
  • 27. Apps : Storify Social curation / publishing platform Multiple data sources (Twitter, Facebook, YouTube) Google Data API integration
  • 28. Apps : Memolane Curation app for your digital memories Integrates multiple sources
  • 29. Apps : The History of Jazz “Coffee table” iPad application Videos help educate and discover new music Paid app, integrated with YouTube and iTunes
  • 30. YouTube Direct
  • 31. 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
  • 32. 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/
  • 33. 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/
  • 34. 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)
  • 35. Q&A Jarek Wilkiewicz twitter.com/wjarek