Login Photo uploads with comments New theme editor Facebook API integration Mobile theme Analytics 356 DAYS AFTER SWITCHING TO DISQUS, WITH NO DEDICATED DEVELOPMENT Monday, December 17, 12
Knowledge sharing Journalism Branding Internal communication Trainings Events + Conferences Product demonstrations Media Archives Documentation 23 VIDEO MAKES VIDEO WEBSITES AVAILABLE FOR COMPANIES & ORGANIZATIONS Monday, December 17, 12
Analytics and tracking Social distribution Section and subtitles Unlimited uploads Upload once, play anywhere Native mobile and HTML5 Playflow and advertising Open upload Access control Built-in CDN Secure, OAuth-based API ... TO HELP BUILD A RELATIONSHIP TO YOUR AUDIENCE THROUGH VIDEO Monday, December 17, 12
(that’s the bullshit marketing way of saying that 23 Video is a hosted platform -- but we haven’t invented anything new for you to learn. It’s just HTML, CSS, graphic files, JavaScript and the glue to bind it together. The di erent is that it’s built from the ground up specifically for video.) Monday, December 17, 12
</div> <div class="view-video-length">3:45</div> <div class="view-title"> <a href="/video/123/my-video-clip">My video clip</a> </div> <div class="view-words">I have made a video, and this is it.</div> Monday, December 17, 12
di erent players and configs as needed A configuration can change both the player code and the display settings One player will be the default and is used in most cases. Editors can choose to use other player when getting embed code from the backend Such players can also be used in integrations with other systems, for example through the API Configs are loaded dynamically, so embed codes won’t change when the configuration does Monday, December 17, 12
CSS and Flash Every embed code loads a piece of HTML, which in turn does feature detection and builds the player Using the standard embed code, we handle Flash, HTML5 and mobile devices Cross-browser support for WebM and H.264 files (Safari 5+, Chrome, Firefox 4+, Opera 10+, Internet Explorer 9+) Monday, December 17, 12
&token=abcd &album_id=67890 &tag=demodemo "/> src="/v.ihtml? backgroundColor=yellow &showTray=0 &autoPlay=1 &start=120 "/> HOW TO SHOW THE PLAYER? (explicitly overrides the config for the player) // Which video should be played? // If the video is unpublished, a secret token is needed // Which channel to include videos from? // Which tag to include video from? // Make sure the player background is yellow // Don't show the player controls in the tray // Start playing immediately on load // And start the video 2 minutes in Monday, December 17, 12
Flash. A SWF file is bootstrapped through the iframe. The SWF file talks to the API. Feature-detection and fallback is handled through JavaScript. We use native browser <video> players. Quite soon: We will move to building the player entirely in HTML. The code base is open source and built on Liquid. The video playback may run in Flash or in HTML5, but this is handled transparently through Eingebaut.js. Monday, December 17, 12
be hacked $ git clone git://github.com/23/videoplayer.git VideoPlayer Initialized empty Git repository in VideoPlayer/.git/ $ cd VideoPlayer $ git branch MyPlayer $ git checkout MyPlayer Switched to branch "MyPlayer" $ git branch * MyPlayer master * You can get the code https://github.com/23/videoplayer and http://www.23developer.com/design/player-build goes into details Monday, December 17, 12
of HTML in your control. We have created a full stack, but it’s still just an API consumer. This means that you can build your own player entirely from scratch (or by reusing some of our tools) Monday, December 17, 12
from which domain has been requested? Get videos through the API Ask for detailed information about the videos to be played with /api/photo/list Support sections+subtitles? Requires further requests to /api/photo/subtitle/list and /api/photo/section/list Report back to analytics Make sure your custom player is sending information back to /api/analytics/report/*. Monday, December 17, 12
‣Methods available under http://domain.tld/api/... ‣Responses available in common formats ‣XML ‣JSON ‣All documentation available on http://www.23video.com/api/ COMMUNICATION Monday, December 17, 12
‣Anonymous access ‣Methods are categorized in six levels of access ‣none – just go ahead, we don’t care who you are! ‣anonymous – you’re allowed, if you have basic access ‣read – read access to the API ‣write – read and write access to the API ‣admin – access to all but critical API calls ‣super – full access to the API AUTHENTICATION Monday, December 17, 12
SHA1 signature signing ‣Loads of great libraries ‣Signing requires tokens for an application ‣Consumer key and consumer secret ‣Access token and access token secret AUTHENTICATION Monday, December 17, 12
the tag “23video” in JSON http://sample.23video.com/api/photo/list?tag=23video&size=20&orderby=created &order=desc&format=json ‣Breakdown ‣/api/photo/list – the API method ‣tag=23video – the tag we want ‣size=20 – the number of videos we want listed ‣orderby=created – the sorting mechanism used for selecting videos ‣order=desc – descending sorting ‣format=json – we want the response in JSON USING THE API Monday, December 17, 12
THE API Get token Method: /api/session/get-token Returns: access token Permission level: super Redirect the user Method: /api/session/redeem-token Returns: signs the end user in and redirects them to a desired URL Permission level: none … and the user is in! Monday, December 17, 12
USING THE API Get token for upload Method: /api/photo/get-upload-token Returns: upload token that can be used for uploading Permission level: write Post the upload with the token Method: /api/photo/redeem-upload-token Returns: accepts the upload and returns the user to a specified URL Permission level: none Viola! Present the user to an upload form Style and create an upload form as you need. Monday, December 17, 12
a site ‣Currently only notifies of changes in videos and encoding states ‣Great for speeding up API implementations through caching USING THE API Monday, December 17, 12