SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
CTO & Co-founder
@ste entchr
ste en@23company.com
Lead Developer
@nickbruun
nick@23company.com
The developer         AGENDA

                      ‣  The Overview
 ntroduction to the     Overview and demo of 23 Video

                      ‣  The Design
product– or             Customizing every detail of a videosite

                      ‣  The Player
merely 23 Video         Using and customizing video players

                      ‣  The API
for geeks…              Mash up, extend and integrate the product

                      ‣  The Community
                        Getting more info and keeping updated


                      (We'll do the nitty-gritty details and end o
                      each part with plenty of examples and an
                      overview of our roadmap.)
Powering 200+ customers
Through a network of 100+ partners
demo!
It’s easy!
‣  Full control over design
‣  Upload anything, play anywhere
‣  Plays nice with the social web
‣  No installation and lock-in
‣  Hosted as service with full support
One price.

$675 / month
         including 1TB tra   c & all software updates
Some examples of   ‣  Brand channels
                     Novozymes | http:/www./novozymes.tv

how people are     ‣  Community
                     Hjemmeværnet | http://film.hjv.dk

using 23 Video     ‣  Ecommerce
                     Unisport | http://webtv.unisport.dk

                   ‣  Ecommerce
                     Unisport | http://webtv.unisport.dk

                   ‣  Archive
                     Byen I Byen| http://byenibyen.frederiksberg.dk

                   ‣  Internal sharing
                     (No links, unfortunately)

                   ‣  Events
                     TedX | http://video.tedxcopenhagen.dk

                   ‣  Media
                     Bilmagasinet | http://www.bilmagasinettv.dk

                   ‣  Campaigns
                     Carlsberg Sport | http://tv.carlsbergsport.dk
ROADMAP

Sections & Subtitles

‣  Subdivide video clips into sections or chapters, with automatic search
  integration.
‣  Internationalize content by adding captions and subtitles.
‣  Also a beginning requirement in public sector project to ensure
  accessibility.
‣  Support for current subtitle formats, but build for html5 around WebSRT
ROADMAP

Global Delivery Platform

‣  The core challenge of video is bandwidth and quick delivery of bytes.
‣  Built-in content delivery network, but not just for video.
‣  Handles all the asset of a videosite including the custom design elements
  and resources.
‣  Currently in 5 locations around the world, covering 3 continents.
‣  Expanding with more nodes.
ROADMAP

Open Upload 2.0

‣  Custom variables in upload forms
‣  Embeddable open upload for easy integration with existing sites
ROADMAP

Analytics 2.0

‣  Current analytics holds about a million data points, per day.
  SQL and traditional RDBMS systems become a bottleneck.
‣  Building next version adding in new variables such as user sessions,
  geography, screen size, content source and player events.
‣  Dedicated service with scalable routines to handle the data.
‣  On Air: Live data view as reporting immediately when visitors are playing
  your clips.
THE DESIGN DNA

The Grid

‣ The shape of a 23 Video site
THE DESIGN DNA

Block Driven Layout

‣ The basic piece of a 23 Video site: “the layout block”
‣ A generic container for information
‣ Positioned anywhere within the layout grid
‣ A wide variety of blocks available

About the site                Channel list                 Comments form
Contextual video player       Download videos              Footer
HTML Block                    Import HTML from URL         Link to login
Links to pages                List of comments             Menu
Name and logo                 New videos                   Open upload
Play list                     Popular videos               Rate object
Search box                    Sections                     Share
Subscribe                                Tag cloud                    Users
Video overview                Video thumbnails             Web analytics
THE DESIGN DNA

The E ect

‣ Same building blocks – completely di erent looks
CUSTOMIZING

The Technologies

‣ Standard web technologies
   ‣ CSS
   ‣ HTML
   ‣ JavaScript
‣ Everything is editable from the backend
‣ All content is hosted by 23
CUSTOMIZING

The Layout in HTML
CUSTOMIZING

The Block in HTML
<div id="block<unique block ID>"
class="layout-block <block-specific
class> [layout-block-empty]">
..
</div>
Let’s have a
 crack at it!
GOING ADVANCED

Customizable Stylesheets

‣ Stylesheets can be made user-customizable
‣ Perfect for customers requiring multiple sites with same layout
‣ Let users pick and choose specific data types
   ‣ Colors
   ‣ Graphics
   ‣ Fonts
   ‣ Text
   ‣ A custom value (justification, inset etc.)
GOING ADVANCED

The Syntax for Customization
%background-color%
{
  name: 'Site background color';
  type: color;
  default: #fafafa;
}

body
{
  background-color: %background-color%;
}
GOING ADVANCED

Tricks with Custom Colors
%background-color%
{
  ..
}

body
{
  background-color: %background-color%;
}

#header
{
  background-color: %background-color+15%;
}
ROADMAP

Customization at the Next Level

‣ Fully editable templates based on the Liquid Markup Language
‣ Easily customizable thumbnails
‣ Fully customizable mobile site – the same way you work on primary sites
Setting up players
and embedding
‣  Admins can create a many di erent player styles and configs as needed
‣  A configuration can both change the SWF file behind the player and the settings for
  displaying
‣  One player is default and can be changed at any time. This player is used for the video
  site.
‣  Other player configs can be use by admin from the backend.
‣  Configs are loaded dynamically, so embed codes won't change when a configuration
  does
The anatomy of an embed code
SIMPLE FLASH VERSION

 <embed width="580" height="435" src="http://videos.example.com/v.swf"         	
   allowfullscreen="true" allowscriptaccess="always" flashvars="photo_id=12345"/>	



NOT AS PRETTY JAVASCRIPT VERSION – BUT HANDLES FALLBACK TO HTML5 WHEN FLASH ISN'T AVAILABLE

 <script src="http://videos.example.com/resources/um/script/swfobject/swfobject.js"></script>	
 <div id="player" class="embedded-video">	
   <div class="no-flash">	
    <iframe src="http://videos.example.com/v.html?photo_id=103770" width="580" 	
      height="435" frameborder=0 border=0 scrolling=no></iframe>	
   </div>	
 </div>	
 <script>swfobject.embedSWF("http://videos.example.com/v.swf", "player", "580", "435",
 "9.0.0", "/resources/um/script/swfobject/expressInstall.swf", {"photo_id": "103770"},
 {allowscriptaccess:'always', allowfullscreen:'true', wmode:'transparent'}, {id:'player',
 name:'player'});</script>
f you embed          On devices such as iPhone, iPad and most
                      mobiles, Flash isn't available to handle the
                      video playback. Here, we fall back
correctly, html5 is   automatically to html5.


supported out of      Currently, we'll be using the browser's standar
                      player design for the video; but this is changing

the box –             With the transition of styling to Liquid and

 ncluding on          control of all html, we want to use the same
                      templating model for customizing the html5


mobile devices.
                      player.


                      Cross-browser support mixing WebM and H.
                      264 files: Safari 5, Chrome, Firefox 4, Opera 10
                      Internet Explorer 9.
The anatomy of an embed code
WHAT TO SHOW IN THE PLAYER?

 flashvars="	
   photo_id=12345	                          // Which video should be played?	
   &token=abcd	                             // If the video is unpublished, a secret token is needed	
   &album_id=67890	                         // Which channel to include videos from?	
   &tag=demodemo	                           // Which tag to include video from?	
 "/>	

HOW TO SHOW THE PLAYER? (explicitly overrides the config for the player)

 flashvars="	
   backgroundColor=yellow	                    // Make sure the player background is yellow	
   &showTray=0	                               // Don't show the player controls in the tray	
   &autoPlay=1	                               // Start playing immediately on load	
   &start=120	                                // And start the video 2 minutes in	
 "/>	


* http://www.23developer.com/design/player-embed has a full list of options.
Our own players are all open
sourced and ready to 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
But I want to build my own player…

So far, we've just been changing the set-up of the 23 Video standard players, but:



   Custom players are just SWF files reading the
            embed and using the API

… and you can create a really custom player simply by uploading a SWF.
Easy to change   LET'S PLAY AROUND…
                 ‣  Remove a few controls
a few minor
                 ‣  Kill the rounded corners
details…
                 ‣  Change padding between
                  button

                 ‣  A new play icon

                 ‣  Make the srubber ugly
… and still enough   You don't have to use the 23 Video player if you
                     don't want to – since the player is just an
                     ordinary API consumer.
control to do
                     ‣ Read in embed parameters
whatever you          Which videos from which domain has been
                      requested?
want                 ‣ Get videos through the API
                      Ask for detailed information about the video
                      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 our analytics api. Will
ome examples of custom
When you restyle the open source player, make
sure you allow yourself to be kept up-to-date

$ git fetch origin	
$ git merge master	
Merge made by recursive.	




* If you make sure to keep the git repository intact when you download the source code, you can always retrieve and
Control the Flash player from JavaScript

START PLAYING ON LOAD

 function getFlexApp(appName) {	
      return(document[appName] ? document[appName] : window[appName]);	
 }	
 Event.observe(window, 'load', function({	
        getFlexApp(playerName).play();	
      });	




* You can find a list of all available methods for this kind of interaction at http://www.23developer.com/design/player-javascript
Control the Flash player from JavaScript

JUMP TO A SPECIFIC TIME IN THE PLAYER

 function getFlexApp(appName) {	
      return(document[appName] ? document[appName] : window[appName]);	
 }	
 function playVideoFromSecond(sec, playerName){	
      playerName = playerName||'videoplayer';	
      var v = getFlexApp(playerName);	
      if (v) {	
           var state = v.getPlayState(); 	
           v.playVideo();	
           window.setTimeout(function(){v.setPlayheadTime(sec);}, (state==='playing' ? 0 : 1000));	
           return(false);	
      } else {	
           return(true);	
      }	
 };	
 Event.observe(window, 'load', function({	
           playVideoFromSecond(65);
Control the Flash player from JavaScript

LIVE EXAMPLE

How to retrieve titles, descriptions
thumbnails and more for the currently
playing clip?
ROADMAP

Flash Builder 4

‣  We've o   cially been on Flex 3 until now.
‣  This week we're switching to Flash Builder 4 as the supported platform.
‣  In this release, we'll also have support for Sections & Subtitles.
COMMUNICATION

Talking to a 23 Video Site
‣ Simple RESTful HTTP communication
‣ Methods available under http://domain.tld/api/...
‣ Responses available in common formats
   ‣ XML
   ‣ JSON
‣ All documentation available on http://www.23developer.com/api/
AUTHENTICATION

Getting Permission
‣ Three ways to authenticate
   ‣ OAuth 1.0a
   ‣ API tokens
   ‣ 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

OAuth 1.0a
authentication
‣ Secure protocol
   ‣ No password exchanges
   ‣ Relies on 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

API Tokens
‣ Designed for giving third parties specific access
‣ Requires a certain access level to obtain
‣ No access level required to redeem
DATA MODEL

The Grand Picture

            Video                        Site

  Section           Subtitle   Session           User



   Tag                    Comment               Channel
USING THE API

Calling an API Method
‣ Getting the 20 latest videos with 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

Session Signing
‣ Perfect way to control access to content


                          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!
USING THE API

Enabling Uploads
‣ Allow people to upload videos, without being administrators


                     Get token for upload
              Method: /api/photo/get-upload-token
         Returns: upload token that can be used for uploading
                       Permission level: write


           Present the user to an upload form
             Style and create an upload form as you need.


              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!
USING THE API

Pingbacks
‣ Having 23 Video tell you, when something changes on a site
‣ Currently only notifies of changes in videos and encoding states
‣ Great for speeding up API implementations through caching
ROADMAP

O cial CMS Implementations

‣ We’re constantly working on more implementations for popular CMS’
‣ Umbraco 5.0 Universal Media Picker Provider package
‣ We’d love your help and contributions!
ROADMAP

Better, Faster, Stronger

‣ Pingbacks as a central element in API usage
‣ Most new functionality will be exposed through the API
   ‣ Sections and subtitles are newly additions
‣ Development is developer driven – your input matters
‣  O    cial libraries
Libraries,         23 maintains an o   cial .NET implementation writt

samples and        in C# 3.5


mplementations   ‣  O    cial implementations
                   We have an o   cial implementation for signing
                   sessions as a Microsoft SharePoint Webpart



                 ‣  Sample code
                   Using something else? No problem! We have samp
                   code for both PHP and Ruby readily available for yo
                   use
‣  Design guide
Resources for        Details on how to set up the design on a 23 Video s

getting more         how to design it and how to build players.


nformation, code    ‣  API documentation
examples, modules    All the information about accessing and using the
                     including sample scripts and libraries.
and more
                    ‣  Github
                     Open sourced code from 23, including the video pla
                     libraries and sample code.



                    ‣  Forums/Community
                     Asked and answered question for developers.
NEW STREAM

Follow @23developer
as a source of news,
examples, oddities.

(Will probably also work great for
asking quick questions and getting
quick answers)
Or just ask us…

   @STEFFENTCHR   STEFFENTCHR   STEFFEN@23COMPANY.COM




   @NICKBRUUN     NICK_BRUUN    NICK@23COMPANY.COM
Developer Training for 23 Video

Mais conteúdo relacionado

Mais procurados

Paella player 4 - Presentation at Opencast Summit 2015 at Manchester
Paella player 4 - Presentation at Opencast Summit 2015 at ManchesterPaella player 4 - Presentation at Opencast Summit 2015 at Manchester
Paella player 4 - Presentation at Opencast Summit 2015 at ManchesterCarlos Turró Ribalta
 
Modern Web Application Development Workflow - web2day 2014
Modern Web Application Development Workflow - web2day 2014Modern Web Application Development Workflow - web2day 2014
Modern Web Application Development Workflow - web2day 2014Stéphane Bégaudeau
 
OSDC 2008 talk: An open source "YouTube"
OSDC 2008 talk:  An open source "YouTube"OSDC 2008 talk:  An open source "YouTube"
OSDC 2008 talk: An open source "YouTube"Silvia Pfeiffer
 
Movies On Custom Web Sites 2
Movies On Custom Web Sites 2Movies On Custom Web Sites 2
Movies On Custom Web Sites 2CO767
 
State of Media Accessibility in HTML5
State of Media Accessibility in HTML5State of Media Accessibility in HTML5
State of Media Accessibility in HTML5Silvia Pfeiffer
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webappFred Lin
 
Warsawclouddays video
Warsawclouddays videoWarsawclouddays video
Warsawclouddays videoDoug Sillars
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOSFred Lin
 
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)Fabien Potencier
 
MacVide FlashVideo Converter UserGuide
MacVide FlashVideo Converter UserGuideMacVide FlashVideo Converter UserGuide
MacVide FlashVideo Converter UserGuideMacVide
 

Mais procurados (20)

Paella player 5
Paella player 5Paella player 5
Paella player 5
 
Paella player 4 - Presentation at Opencast Summit 2015 at Manchester
Paella player 4 - Presentation at Opencast Summit 2015 at ManchesterPaella player 4 - Presentation at Opencast Summit 2015 at Manchester
Paella player 4 - Presentation at Opencast Summit 2015 at Manchester
 
Modern Web Application Development Workflow - web2day 2014
Modern Web Application Development Workflow - web2day 2014Modern Web Application Development Workflow - web2day 2014
Modern Web Application Development Workflow - web2day 2014
 
OSDC 2008 talk: An open source "YouTube"
OSDC 2008 talk:  An open source "YouTube"OSDC 2008 talk:  An open source "YouTube"
OSDC 2008 talk: An open source "YouTube"
 
Movies On Custom Web Sites 2
Movies On Custom Web Sites 2Movies On Custom Web Sites 2
Movies On Custom Web Sites 2
 
State of Media Accessibility in HTML5
State of Media Accessibility in HTML5State of Media Accessibility in HTML5
State of Media Accessibility in HTML5
 
vMix Registration Key
vMix Registration KeyvMix Registration Key
vMix Registration Key
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webapp
 
Krakow video
Krakow videoKrakow video
Krakow video
 
Video js zagreb
Video js zagrebVideo js zagreb
Video js zagreb
 
Gdg lublin video
Gdg lublin videoGdg lublin video
Gdg lublin video
 
Vilnius py video
Vilnius py videoVilnius py video
Vilnius py video
 
Warsawclouddays video
Warsawclouddays videoWarsawclouddays video
Warsawclouddays video
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
 
Portogdg video
Portogdg videoPortogdg video
Portogdg video
 
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
 
Corkgdg video
Corkgdg videoCorkgdg video
Corkgdg video
 
Rija js video
Rija js videoRija js video
Rija js video
 
MacVide FlashVideo Converter UserGuide
MacVide FlashVideo Converter UserGuideMacVide FlashVideo Converter UserGuide
MacVide FlashVideo Converter UserGuide
 
Armadajs video
Armadajs videoArmadajs video
Armadajs video
 

Semelhante a Developer Training for 23 Video

Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual CloudSimplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual CloudLiz Warner
 
Mobile Meow at Mobilism
Mobile Meow at MobilismMobile Meow at Mobilism
Mobile Meow at MobilismGreg Schechter
 
[1C5]Lessons from developing a web browser for raspberry pi
[1C5]Lessons from developing a web browser for raspberry pi[1C5]Lessons from developing a web browser for raspberry pi
[1C5]Lessons from developing a web browser for raspberry piNAVER D2
 
Video Killed My Data Plan: Helsinki
Video Killed My Data Plan: HelsinkiVideo Killed My Data Plan: Helsinki
Video Killed My Data Plan: HelsinkiDoug Sillars
 
Jun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By ExampleJun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By Example360|Conferences
 
How to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo WiiHow to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo WiiPongsakorn U-chupala
 
JS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat VideosJS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat VideosGreg Schechter
 
Command central 9.6 - Features Overview
Command central 9.6 - Features OverviewCommand central 9.6 - Features Overview
Command central 9.6 - Features OverviewSoftware AG
 
iOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityiOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityMichał Zygar
 
GDD HTML5, Flash, and the Battle for Faster Cat Videos
GDD HTML5, Flash, and the Battle for Faster Cat VideosGDD HTML5, Flash, and the Battle for Faster Cat Videos
GDD HTML5, Flash, and the Battle for Faster Cat VideosGreg Schechter
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidXavier Hallade
 
2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkitCocoaHeads Tricity
 
Bitmovin LIVE Tech Talks: Data Driven Video Workflows
Bitmovin LIVE Tech Talks: Data Driven Video WorkflowsBitmovin LIVE Tech Talks: Data Driven Video Workflows
Bitmovin LIVE Tech Talks: Data Driven Video WorkflowsBitmovin Inc
 
HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014RZasadzinski
 
Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...
Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...
Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...Amazon Web Services
 
Video production in the cloud for live streaming
Video production in the cloud for live streamingVideo production in the cloud for live streaming
Video production in the cloud for live streamingPaul Richards
 

Semelhante a Developer Training for 23 Video (20)

Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual CloudSimplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual Cloud
 
JS Days Mobile Meow
JS Days Mobile MeowJS Days Mobile Meow
JS Days Mobile Meow
 
Mobile Meow at Mobilism
Mobile Meow at MobilismMobile Meow at Mobilism
Mobile Meow at Mobilism
 
[1C5]Lessons from developing a web browser for raspberry pi
[1C5]Lessons from developing a web browser for raspberry pi[1C5]Lessons from developing a web browser for raspberry pi
[1C5]Lessons from developing a web browser for raspberry pi
 
Video Killed My Data Plan: Helsinki
Video Killed My Data Plan: HelsinkiVideo Killed My Data Plan: Helsinki
Video Killed My Data Plan: Helsinki
 
Jun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By ExampleJun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By Example
 
How to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo WiiHow to develop a homebrew application for Nintendo Wii
How to develop a homebrew application for Nintendo Wii
 
Web DU Mobile Meow
Web DU Mobile MeowWeb DU Mobile Meow
Web DU Mobile Meow
 
T3fest video
T3fest videoT3fest video
T3fest video
 
JS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat VideosJS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat Videos
 
Command central 9.6 - Features Overview
Command central 9.6 - Features OverviewCommand central 9.6 - Features Overview
Command central 9.6 - Features Overview
 
iOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityiOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3city
 
GDD HTML5, Flash, and the Battle for Faster Cat Videos
GDD HTML5, Flash, and the Battle for Faster Cat VideosGDD HTML5, Flash, and the Battle for Faster Cat Videos
GDD HTML5, Flash, and the Battle for Faster Cat Videos
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on Android
 
2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit
 
Bitmovin LIVE Tech Talks: Data Driven Video Workflows
Bitmovin LIVE Tech Talks: Data Driven Video WorkflowsBitmovin LIVE Tech Talks: Data Driven Video Workflows
Bitmovin LIVE Tech Talks: Data Driven Video Workflows
 
Mile High Video 2019
Mile High Video 2019Mile High Video 2019
Mile High Video 2019
 
HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014
 
Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...
Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...
Stream Video, Analyze It in Real Time, and Share It in Real Time (ANT357) - A...
 
Video production in the cloud for live streaming
Video production in the cloud for live streamingVideo production in the cloud for live streaming
Video production in the cloud for live streaming
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Developer Training for 23 Video

  • 1.
  • 2. CTO & Co-founder @ste entchr ste en@23company.com
  • 4. The developer AGENDA ‣  The Overview ntroduction to the Overview and demo of 23 Video ‣  The Design product– or Customizing every detail of a videosite ‣  The Player merely 23 Video Using and customizing video players ‣  The API for geeks… Mash up, extend and integrate the product ‣  The Community Getting more info and keeping updated (We'll do the nitty-gritty details and end o each part with plenty of examples and an overview of our roadmap.)
  • 5.
  • 7. Through a network of 100+ partners
  • 9. It’s easy! ‣  Full control over design ‣  Upload anything, play anywhere ‣  Plays nice with the social web ‣  No installation and lock-in ‣  Hosted as service with full support
  • 10. One price. $675 / month including 1TB tra c & all software updates
  • 11. Some examples of ‣  Brand channels Novozymes | http:/www./novozymes.tv how people are ‣  Community Hjemmeværnet | http://film.hjv.dk using 23 Video ‣  Ecommerce Unisport | http://webtv.unisport.dk ‣  Ecommerce Unisport | http://webtv.unisport.dk ‣  Archive Byen I Byen| http://byenibyen.frederiksberg.dk ‣  Internal sharing (No links, unfortunately) ‣  Events TedX | http://video.tedxcopenhagen.dk ‣  Media Bilmagasinet | http://www.bilmagasinettv.dk ‣  Campaigns Carlsberg Sport | http://tv.carlsbergsport.dk
  • 12. ROADMAP Sections & Subtitles ‣  Subdivide video clips into sections or chapters, with automatic search integration. ‣  Internationalize content by adding captions and subtitles. ‣  Also a beginning requirement in public sector project to ensure accessibility. ‣  Support for current subtitle formats, but build for html5 around WebSRT
  • 13. ROADMAP Global Delivery Platform ‣  The core challenge of video is bandwidth and quick delivery of bytes. ‣  Built-in content delivery network, but not just for video. ‣  Handles all the asset of a videosite including the custom design elements and resources. ‣  Currently in 5 locations around the world, covering 3 continents. ‣  Expanding with more nodes.
  • 14. ROADMAP Open Upload 2.0 ‣  Custom variables in upload forms ‣  Embeddable open upload for easy integration with existing sites
  • 15. ROADMAP Analytics 2.0 ‣  Current analytics holds about a million data points, per day. SQL and traditional RDBMS systems become a bottleneck. ‣  Building next version adding in new variables such as user sessions, geography, screen size, content source and player events. ‣  Dedicated service with scalable routines to handle the data. ‣  On Air: Live data view as reporting immediately when visitors are playing your clips.
  • 16.
  • 17. THE DESIGN DNA The Grid ‣ The shape of a 23 Video site
  • 18. THE DESIGN DNA Block Driven Layout ‣ The basic piece of a 23 Video site: “the layout block” ‣ A generic container for information ‣ Positioned anywhere within the layout grid ‣ A wide variety of blocks available About the site Channel list Comments form Contextual video player Download videos Footer HTML Block Import HTML from URL Link to login Links to pages List of comments Menu Name and logo New videos Open upload Play list Popular videos Rate object Search box Sections Share Subscribe Tag cloud Users Video overview Video thumbnails Web analytics
  • 19. THE DESIGN DNA The E ect ‣ Same building blocks – completely di erent looks
  • 20. CUSTOMIZING The Technologies ‣ Standard web technologies ‣ CSS ‣ HTML ‣ JavaScript ‣ Everything is editable from the backend ‣ All content is hosted by 23
  • 22. CUSTOMIZING The Block in HTML <div id="block<unique block ID>" class="layout-block <block-specific class> [layout-block-empty]"> .. </div>
  • 23. Let’s have a crack at it!
  • 24. GOING ADVANCED Customizable Stylesheets ‣ Stylesheets can be made user-customizable ‣ Perfect for customers requiring multiple sites with same layout ‣ Let users pick and choose specific data types ‣ Colors ‣ Graphics ‣ Fonts ‣ Text ‣ A custom value (justification, inset etc.)
  • 25. GOING ADVANCED The Syntax for Customization %background-color% { name: 'Site background color'; type: color; default: #fafafa; } body { background-color: %background-color%; }
  • 26. GOING ADVANCED Tricks with Custom Colors %background-color% { .. } body { background-color: %background-color%; } #header { background-color: %background-color+15%; }
  • 27. ROADMAP Customization at the Next Level ‣ Fully editable templates based on the Liquid Markup Language ‣ Easily customizable thumbnails ‣ Fully customizable mobile site – the same way you work on primary sites
  • 28.
  • 29. Setting up players and embedding ‣  Admins can create a many di erent player styles and configs as needed ‣  A configuration can both change the SWF file behind the player and the settings for displaying ‣  One player is default and can be changed at any time. This player is used for the video site. ‣  Other player configs can be use by admin from the backend. ‣  Configs are loaded dynamically, so embed codes won't change when a configuration does
  • 30. The anatomy of an embed code SIMPLE FLASH VERSION <embed width="580" height="435" src="http://videos.example.com/v.swf" allowfullscreen="true" allowscriptaccess="always" flashvars="photo_id=12345"/> NOT AS PRETTY JAVASCRIPT VERSION – BUT HANDLES FALLBACK TO HTML5 WHEN FLASH ISN'T AVAILABLE <script src="http://videos.example.com/resources/um/script/swfobject/swfobject.js"></script> <div id="player" class="embedded-video"> <div class="no-flash"> <iframe src="http://videos.example.com/v.html?photo_id=103770" width="580" height="435" frameborder=0 border=0 scrolling=no></iframe> </div> </div> <script>swfobject.embedSWF("http://videos.example.com/v.swf", "player", "580", "435", "9.0.0", "/resources/um/script/swfobject/expressInstall.swf", {"photo_id": "103770"}, {allowscriptaccess:'always', allowfullscreen:'true', wmode:'transparent'}, {id:'player', name:'player'});</script>
  • 31. f you embed On devices such as iPhone, iPad and most mobiles, Flash isn't available to handle the video playback. Here, we fall back correctly, html5 is automatically to html5. supported out of Currently, we'll be using the browser's standar player design for the video; but this is changing the box – With the transition of styling to Liquid and ncluding on control of all html, we want to use the same templating model for customizing the html5 mobile devices. player. Cross-browser support mixing WebM and H. 264 files: Safari 5, Chrome, Firefox 4, Opera 10 Internet Explorer 9.
  • 32. The anatomy of an embed code WHAT TO SHOW IN THE PLAYER? flashvars=" photo_id=12345 // Which video should be played? &token=abcd // If the video is unpublished, a secret token is needed &album_id=67890 // Which channel to include videos from? &tag=demodemo // Which tag to include video from? "/> HOW TO SHOW THE PLAYER? (explicitly overrides the config for the player) flashvars=" backgroundColor=yellow // Make sure the player background is yellow &showTray=0 // Don't show the player controls in the tray &autoPlay=1 // Start playing immediately on load &start=120 // And start the video 2 minutes in "/> * http://www.23developer.com/design/player-embed has a full list of options.
  • 33. Our own players are all open sourced and ready to 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
  • 34. But I want to build my own player… So far, we've just been changing the set-up of the 23 Video standard players, but: Custom players are just SWF files reading the embed and using the API … and you can create a really custom player simply by uploading a SWF.
  • 35. Easy to change LET'S PLAY AROUND… ‣  Remove a few controls a few minor ‣  Kill the rounded corners details… ‣  Change padding between button ‣  A new play icon ‣  Make the srubber ugly
  • 36. … and still enough You don't have to use the 23 Video player if you don't want to – since the player is just an ordinary API consumer. control to do ‣ Read in embed parameters whatever you Which videos from which domain has been requested? want ‣ Get videos through the API Ask for detailed information about the video 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 our analytics api. Will
  • 37. ome examples of custom
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. When you restyle the open source player, make sure you allow yourself to be kept up-to-date $ git fetch origin $ git merge master Merge made by recursive. * If you make sure to keep the git repository intact when you download the source code, you can always retrieve and
  • 44. Control the Flash player from JavaScript START PLAYING ON LOAD function getFlexApp(appName) { return(document[appName] ? document[appName] : window[appName]); } Event.observe(window, 'load', function({ getFlexApp(playerName).play(); }); * You can find a list of all available methods for this kind of interaction at http://www.23developer.com/design/player-javascript
  • 45. Control the Flash player from JavaScript JUMP TO A SPECIFIC TIME IN THE PLAYER function getFlexApp(appName) { return(document[appName] ? document[appName] : window[appName]); } function playVideoFromSecond(sec, playerName){ playerName = playerName||'videoplayer'; var v = getFlexApp(playerName); if (v) { var state = v.getPlayState(); v.playVideo(); window.setTimeout(function(){v.setPlayheadTime(sec);}, (state==='playing' ? 0 : 1000)); return(false); } else { return(true); } }; Event.observe(window, 'load', function({ playVideoFromSecond(65);
  • 46. Control the Flash player from JavaScript LIVE EXAMPLE How to retrieve titles, descriptions thumbnails and more for the currently playing clip?
  • 47. ROADMAP Flash Builder 4 ‣  We've o cially been on Flex 3 until now. ‣  This week we're switching to Flash Builder 4 as the supported platform. ‣  In this release, we'll also have support for Sections & Subtitles.
  • 48.
  • 49. COMMUNICATION Talking to a 23 Video Site ‣ Simple RESTful HTTP communication ‣ Methods available under http://domain.tld/api/... ‣ Responses available in common formats ‣ XML ‣ JSON ‣ All documentation available on http://www.23developer.com/api/
  • 50. AUTHENTICATION Getting Permission ‣ Three ways to authenticate ‣ OAuth 1.0a ‣ API tokens ‣ 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
  • 51. AUTHENTICATION OAuth 1.0a authentication ‣ Secure protocol ‣ No password exchanges ‣ Relies on SHA1 signature signing ‣ Loads of great libraries ‣ Signing requires tokens for an application ‣ Consumer key and consumer secret ‣ Access token and access token secret
  • 52. AUTHENTICATION API Tokens ‣ Designed for giving third parties specific access ‣ Requires a certain access level to obtain ‣ No access level required to redeem
  • 53. DATA MODEL The Grand Picture Video Site Section Subtitle Session User Tag Comment Channel
  • 54. USING THE API Calling an API Method ‣ Getting the 20 latest videos with 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
  • 55. USING THE API Session Signing ‣ Perfect way to control access to content 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!
  • 56. USING THE API Enabling Uploads ‣ Allow people to upload videos, without being administrators Get token for upload Method: /api/photo/get-upload-token Returns: upload token that can be used for uploading Permission level: write Present the user to an upload form Style and create an upload form as you need. 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!
  • 57. USING THE API Pingbacks ‣ Having 23 Video tell you, when something changes on a site ‣ Currently only notifies of changes in videos and encoding states ‣ Great for speeding up API implementations through caching
  • 58. ROADMAP O cial CMS Implementations ‣ We’re constantly working on more implementations for popular CMS’ ‣ Umbraco 5.0 Universal Media Picker Provider package ‣ We’d love your help and contributions!
  • 59. ROADMAP Better, Faster, Stronger ‣ Pingbacks as a central element in API usage ‣ Most new functionality will be exposed through the API ‣ Sections and subtitles are newly additions ‣ Development is developer driven – your input matters
  • 60. ‣  O cial libraries Libraries, 23 maintains an o cial .NET implementation writt samples and in C# 3.5 mplementations ‣  O cial implementations We have an o cial implementation for signing sessions as a Microsoft SharePoint Webpart ‣  Sample code Using something else? No problem! We have samp code for both PHP and Ruby readily available for yo use
  • 61.
  • 62. ‣  Design guide Resources for Details on how to set up the design on a 23 Video s getting more how to design it and how to build players. nformation, code ‣  API documentation examples, modules All the information about accessing and using the including sample scripts and libraries. and more ‣  Github Open sourced code from 23, including the video pla libraries and sample code. ‣  Forums/Community Asked and answered question for developers.
  • 63. NEW STREAM Follow @23developer as a source of news, examples, oddities. (Will probably also work great for asking quick questions and getting quick answers)
  • 64. Or just ask us… @STEFFENTCHR STEFFENTCHR STEFFEN@23COMPANY.COM @NICKBRUUN NICK_BRUUN NICK@23COMPANY.COM