Your SlideShare is downloading. ×
0
Building Video Apps with YouTube APIs        UNAM Mexico City           Jarek Wilkiewicz         twitter.com/wjarek       ...
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...
Life of a video • Uploading • Sharing • Searching • PlaybackVideo : Evolution of Dance by Judson Laipplyhttp://www.youtube...
Life of a video : Uploading• Via YouTube.com uploader• Standard (POST)• Advanced (Java)• Mobile (mailto:xyz93a@m.youtube.c...
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-r...
Life of a video : Playback  On YouTube.com  On other sites    Custom Player    Embedded Player    Chromeless Player  On yo...
APIs
APIs       Google Data APIs   Player APIs
Google Data APIs  Protocol     REST-based     ATOM syndication format (RFC 4287)     ATOM publishing protocol (RFC 5023)  ...
Feed example : Top Ratedhttp://gdata.youtube.com/feeds/api/standardfeeds/top_rated<?xml version=1.0 encoding=UTF-8?><feed ...
Feed access example in Javaimport com.google.gdata.client.youtube.YouTubeService;import com.google.gdata.data.youtube.Vide...
Other useful things one can do with the APIs   Upload   Search   Rate a video (Like/Dislike)   Comment   Add a playlist   ...
Performing video search in Pythonimport gdata.youtube.servicedef PrintVideoFeed(feed): for entry in feed.entry:  PrintEntr...
Direct upload in C#using Google.GData.Client;using Google.GData.Extensions;using Google.GData.YouTube;using Google.GData.E...
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"</p...
Player JavaScript API : play for 6 seconds<script>  const timeoutMs = 6000;  var done = false;  var player1 = new YT.Playe...
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...
Mobile : Uploading  ACTION_SEND intent  Use Google Data protocol to  upload  Libraries available for leading  mobile platf...
App Examples
Apps : Gaming
Apps : Viewchange.org  Non-profit / social  change  Content curated from  around the world  Semantic analysis of  video me...
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 ...
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, integ...
YouTube Direct
YouTube Direct : Mobile Easy authentication with AccountMananger Submission idea sync (JSON) Notification upon new assignm...
One last thing ...       Read the Terms of       Service       Monetization Guide       Branding Guide                    ...
ToS                                                                             [1]YouTube API Terms of Servicehttp://code...
ResourcesGet the YouTube API developer key and start hacking!http://code.google.com/apis/youtube/dashboard/gwthttp://code....
Q&A        Jarek Wilkiewicz      twitter.com/wjarek
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
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
Upcoming SlideShare
Loading in...5
×

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

2,549

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,549
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Building Video Apps with YouTube APIs UNAM Mexico City Jarek Wilkiewicz twitter.com/wjarek 04/01/2011
  2. 2. Agenda• Intro• Life of a video• APIs• Back-end (Google Data API)• Front-end (Player)• App Examples• Q&A
  3. 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. 4. Life of a video • Uploading • Sharing • Searching • PlaybackVideo : Evolution of Dance by Judson Laipplyhttp://www.youtube.com/watch?v=dMH0bHeiRNg
  5. 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. 6. Life of a video : Sharing • Autoshare • Embed • Publish to activity feed
  7. 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. 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. 9. APIs
  10. 10. APIs Google Data APIs Player APIs
  11. 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. 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. 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. 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. 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. 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. 17. Player APIs Control the Player from your Web front-end URI parameters JavaScript API ActionScript API (Flash)
  18. 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. 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. 20. What about mobile ?Video: David After Dentist by booba1234http://www.youtube.com/watch?v=txqiwrbYGrs
  21. 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. 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. 23. App Examples
  24. 24. Apps : Gaming
  25. 25. Apps : Viewchange.org Non-profit / social change Content curated from around the world Semantic analysis of video metadata Player integration
  26. 26. Apps : Shortform Curation platform for video DJs (VJs) Player integration Custom embed player
  27. 27. Apps : Storify Social curation / publishing platform Multiple data sources (Twitter, Facebook, YouTube) Google Data API integration
  28. 28. Apps : Memolane Curation app for your digital memories Integrates multiple sources
  29. 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. 30. YouTube Direct
  31. 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. 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. 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. 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. 35. Q&A Jarek Wilkiewicz twitter.com/wjarek
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×