Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer...
-
Upload
cecilia-ward -
Category
Documents
-
view
223 -
download
3
Transcript of Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer...
![Page 1: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/1.jpg)
![Page 2: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/2.jpg)
Brightcove Developer TrainingBob de Wit
![Page 3: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/3.jpg)
© 2008 Brightcove, Inc. All rights reserved. 3
Developer Training
Provides a comprehensive overview of the extensive programming capabilities of the Brightcove platform and how to use them in creating customized experiences
BEML
Media API's
Player API's
Designed for developers with JavaScript or ActionScript experience
![Page 4: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/4.jpg)
© 2008 Brightcove, Inc. All rights reserved. 4
Introductions
![Page 5: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/5.jpg)
© 2008 Brightcove, Inc. All rights reserved. 5
Schedule
Start on time, end on time9:00 – 5:00ish
15 minute break in the morning and afternoon
1 hour for lunch
![Page 6: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/6.jpg)
© 2008 Brightcove, Inc. All rights reserved. 6
Agenda
Section I: Brightcove Developer Basics - MorningBrightcove Service Platform ComponentsThe Studio: Videos, Playlists & Players
Customizing Players - MorningBEMLThe Player API
LUNCH
The Media API - AfternoonThe Read Methods
Metadata, CMS Integration, SEO, …
The Write Methods
Custom Upload Apps, UGC, …
![Page 7: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/7.jpg)
© 2008 Brightcove, Inc. All rights reserved. 7
Set Up
Brightcove Accounthttp://studio3.brightcove.com
Login: [email protected]@training.com
Password: Training
Sandboxhtpp://localhost
![Page 8: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/8.jpg)
Section I: Brightcove Developer Basics
![Page 9: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/9.jpg)
© 2008 Brightcove, Inc. All rights reserved. 9
Section I: Brightcove Developer Basics
In this section:The workflow of the service platformCreating a Brightcove experience in the Studio
• Location of the main settings for the components
• How to upload content
• How to set metadata using in the Studio
• How to create playlists and players
• How to enable access to the APIs
• How to style a player
• How to get the player publishing code
Referencing players, playlists and videos
![Page 10: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/10.jpg)
The workflow of the Brightcove Service Platform
![Page 11: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/11.jpg)
© 2008 Brightcove, Inc. All rights reserved. 11
The Brightcove Service Platform
Your Web Server Brightcove
Admin ClientUser
CDN
![Page 12: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/12.jpg)
© 2008 Brightcove, Inc. All rights reserved. 12
The Brightcove Service Platform : Media Upload
Your Web Server Brightcove
Admin ClientUser
CDN
storage
1
2
![Page 13: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/13.jpg)
© 2008 Brightcove, Inc. All rights reserved. 13
The Brightcove Service Platform : Media Upload
Your Web Server Brightcove
Admin ClientUser
CDN
storage
1
2
transcoding3
![Page 14: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/14.jpg)
© 2008 Brightcove, Inc. All rights reserved. 14
The Brightcove Service Platform : Media Upload
Your Web Server Brightcove
Admin ClientUser
CDN
storage
1
2
transcoding3CDN XFer
4
![Page 15: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/15.jpg)
© 2008 Brightcove, Inc. All rights reserved. 15
The Brightcove Service Platform: Player Creation
Your Web Server Brightcove
Admin ClientUser
CDN
PlayListPlayer+ Settings
1
![Page 16: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/16.jpg)
© 2008 Brightcove, Inc. All rights reserved. 16
The Brightcove Service Platform: Player Publishing
Your Web Server
Player Embed Code
Admin ClientUser
1
2 Web PageHTML, JS, PHP, ASP, JSP, …
Brightcove CDN
![Page 17: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/17.jpg)
© 2008 Brightcove, Inc. All rights reserved. 17
The Brightcove Service Platform: Viewing
Your Web Server
Page Load
Admin ClientUser
1
Brightcove CDN
![Page 18: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/18.jpg)
© 2008 Brightcove, Inc. All rights reserved. 18
The Brightcove Service Platform: Viewing
Your Web Server
Page with embedded BC player
Admin ClientUser
2
Brightcove.com
![Page 19: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/19.jpg)
© 2008 Brightcove, Inc. All rights reserved. 19
The Brightcove Service Platform: Viewing
Your Web Server
Player ID Request to brightcove
Admin ClientUser
3
Brightcove CDN
![Page 20: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/20.jpg)
© 2008 Brightcove, Inc. All rights reserved. 20
The Brightcove Service Platform: Viewing
Your Web Server
Player + Metadata sent to user
Admin ClientUser
4
Brightcove CDN
![Page 21: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/21.jpg)
© 2008 Brightcove, Inc. All rights reserved. 21
The Brightcove Service Platform: Viewing
Your Web Server
CDN Request for video
Admin ClientUser
5
Brightcove CDN
![Page 22: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/22.jpg)
© 2008 Brightcove, Inc. All rights reserved. 22
The Brightcove Service Platform: Viewing
Your Web Server
Video streamed/loaded from CDN
Admin ClientUser
6
Brightcove CDN
![Page 23: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/23.jpg)
Creating a Brightcove Experience in the Studio
![Page 24: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/24.jpg)
© 2008 Brightcove, Inc. All rights reserved. 24
Creating A Brightcove Experience in the Studio
Uploading Content
Content Settings & Metadata
Creating a Playlist
Creating A Player
Associating A Playlist with A Player
Player Settings
Styling A Player
Publishing A Player
![Page 25: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/25.jpg)
© 2008 Brightcove, Inc. All rights reserved. 25
Upload Content: Using the Studio Interface
![Page 26: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/26.jpg)
© 2008 Brightcove, Inc. All rights reserved. 26
Content Settings & Metadata: Basic Presentation
![Page 27: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/27.jpg)
© 2008 Brightcove, Inc. All rights reserved. 27
Content Settings & Metadata: Economics & Distribution
![Page 28: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/28.jpg)
© 2008 Brightcove, Inc. All rights reserved. 28
Content Settings & Metadata: Scheduling and Geo Filtering
![Page 29: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/29.jpg)
© 2008 Brightcove, Inc. All rights reserved. 29
Content Settings & Metadata: Logo Overlay
![Page 30: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/30.jpg)
© 2008 Brightcove, Inc. All rights reserved. 30
Playlist Creation & Settings
![Page 31: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/31.jpg)
© 2008 Brightcove, Inc. All rights reserved. 31
Player CreationCheck this for
access to the APIs
A high number of support calls come in simply A high number of support calls come in simply because this setting has not be selected!!!because this setting has not be selected!!!
![Page 32: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/32.jpg)
© 2008 Brightcove, Inc. All rights reserved. 32
Player Settings
![Page 33: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/33.jpg)
© 2008 Brightcove, Inc. All rights reserved. 33
Player Settings
![Page 34: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/34.jpg)
© 2008 Brightcove, Inc. All rights reserved. 34
Player Settings
![Page 35: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/35.jpg)
© 2008 Brightcove, Inc. All rights reserved. 35
Player Settings
![Page 36: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/36.jpg)
© 2008 Brightcove, Inc. All rights reserved. 36
Player Customization
Best PracticesConsider the use of the player
Full screen? Language? Domain Restricted?
Geo restricted? Syndicated? Sync with page content?
Widgets? Playlist? Flash Embedded?
Each of these settings in the Player configuration has impact on the Player behavior and availability
Choose the appropriate Player Template
![Page 37: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/37.jpg)
© 2008 Brightcove, Inc. All rights reserved. 37
Standard Player Templates
![Page 38: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/38.jpg)
© 2008 Brightcove, Inc. All rights reserved. 38
Standard Player Templates
![Page 39: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/39.jpg)
© 2008 Brightcove, Inc. All rights reserved. 39
Standard Player Templates
![Page 40: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/40.jpg)
© 2008 Brightcove, Inc. All rights reserved. 40
Player Styling in the BC3 Studio Style Editor
![Page 41: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/41.jpg)
© 2008 Brightcove, Inc. All rights reserved. 41
Player Publishing
![Page 42: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/42.jpg)
Exercise 1: The Brightcove Studio
![Page 43: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/43.jpg)
© 2008 Brightcove, Inc. All rights reserved. 43
Exercise 1: The Brightcove Studio
The goal of this exercise is to create a player in the Studio
1. Upload a Video
2. Create A Playlist
3. Create A Player
4. Style A Player
5. Publish A Player
GuidelinesYour account: www.brightcove.com
Videos are located in C:\XAMPP\Videos
![Page 44: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/44.jpg)
Referencing Players, Playlists and Videos
![Page 45: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/45.jpg)
© 2008 Brightcove, Inc. All rights reserved. 45
Component IDs
Are Unique IDs
Enable you to control experiencesQuickly
Dynamically
Add your own selection logic
…
Independent of the development language used
Are subject to the settings configured for that component
Are NOT the Reference ID field in the video metadata
API access
![Page 46: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/46.jpg)
© 2008 Brightcove, Inc. All rights reserved. 46
Getting the ID
![Page 47: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/47.jpg)
© 2008 Brightcove, Inc. All rights reserved. 47
The ID in Player HTML Publishing Code
<embed src="http://c.brightcove.com/services/viewer/federated_f9/1847353697?isVid=1&publisherID=1705665024" bgcolor="#FFFFFF" flashVars="playerID=1847353697playerID=1847353697&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="486" height="412" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>
![Page 48: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/48.jpg)
© 2008 Brightcove, Inc. All rights reserved. 48
The ID in Player JavaScript Publishing Code
<!-- Start of Brightcove Player -->
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<object id="myPlayer" class="BrightcoveExperience"><param name="bgcolor" value="#FFFFFF" /><param name="width" value="486" /><param name="height" value="412" /><param name="playerID" value="1315753393" /><param name="playerID" value="1315753393" /><param name="isVid" value="true" /></object>
<!-- End of Brightcove Player -->
![Page 49: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/49.jpg)
© 2008 Brightcove, Inc. All rights reserved. 49
The ID in Player ActionScript Publishing Code
public class BrightcovePlayer extends Sprite {
private var bcPlayer:Object;
public function BrightcovePlayer() {
init();
}
private function init():void {
var config:Object = new Object();
// change the playerID to load a different player
config["playerID"] = 1911416498;config["playerID"] = 1911416498;
config["width"] = 650;
config["height"] = 630;
![Page 50: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/50.jpg)
© 2008 Brightcove, Inc. All rights reserved. 50
Assigning Content To A Player using IDs
For a single videosingle video in a Single Video templateSingle Video template: <param name="@videoPlayer" value="123456" />
For a single videosingle video, using its reference IDreference ID: <param name="@videoPlayer"
value="ref:myVid12345" />
For one playlistone playlist in a multi-playlist templatemulti-playlist template: <param name="@playlistTabs" value="123456" />
For multiple playlistsmultiple playlists: <param name="@playlistTabs" value="123456,
7891011" />
![Page 51: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/51.jpg)
Section II: Customizing Players
![Page 52: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/52.jpg)
© 2008 Brightcove, Inc. All rights reserved. 52
Section II: Customizing Players
In this section:What BEML is
• The elements of BEML
• Creating a simple BEML template
• Localizing a player with BEML
• Data binding
The Player API• The Player API and JavaScript
• The Player API and ActionScript
Advanced players
![Page 53: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/53.jpg)
© 2008 Brightcove, Inc. All rights reserved. 53
What is BEML?
BEML
Brightcove Experience Markup Language
Brightcove's system for creating custom player
templates, defined in an XML template file that you can
upload using the Publishing module.
![Page 54: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/54.jpg)
© 2008 Brightcove, Inc. All rights reserved. 54
Where to use BEML
A player is specified by an XML document called a player template
Brightcove gives you the ability to create custom player templates
Once you have created the XML document that specifies your custom player template, add it to your Brightcove account using the Publishing module.
Once the custom player template is added, you can use the Publishing module to create as many players as you want using the same template
![Page 55: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/55.jpg)
© 2008 Brightcove, Inc. All rights reserved. 55
Creating A Player Template
![Page 56: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/56.jpg)
© 2008 Brightcove, Inc. All rights reserved. 56
BEML Code Validation
![Page 57: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/57.jpg)
© 2008 Brightcove, Inc. All rights reserved. 57
BEML Code Validation
Who can spot the error?
![Page 58: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/58.jpg)
The Elements of BEML
![Page 59: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/59.jpg)
© 2008 Brightcove, Inc. All rights reserved. 59
The Elements of BEML
The XML you use in a player template is defined by the document type definition (DTD) for the Brightcove Experience Markup Language (BEML).
Each element in a player template defines some visual or non-visual aspect of a player.
The main elements in a player template include:LabelsThemes and StylesLayoutsComponentsModules
![Page 60: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/60.jpg)
© 2008 Brightcove, Inc. All rights reserved. 60
BEML = XML!
BEML is an XML document
Primer on XML, here are a few basic resources:Extensible Markup Language (XML) at the W3C (http://www.w3.org/XML/)
The XML FAQ (http://xml.silmaril.ie/)
XML at Wikipedia (http://en.wikipedia.org/wiki/XML)
![Page 61: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/61.jpg)
© 2008 Brightcove, Inc. All rights reserved. 61
BEML: UI Elements
![Page 62: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/62.jpg)
© 2008 Brightcove, Inc. All rights reserved. 62
BEML: Labels
Labels element: Customize and localize text
Can customize the text of every label in your playerStyling
Branding
Promotion
Other
Can create a player with labels in most languages
![Page 63: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/63.jpg)
© 2008 Brightcove, Inc. All rights reserved. 63
BEML: Themes
Theme element: Customize look and feel
Can customize the look and feel of your custom Brightcove players
Set a default theme or style for the entire player template
For example, set the theme to Deluxe, Flat and Minimal or the style to Light or Dark
Set a custom global style, using a Style element to point to an external CSS file.
Set styles for individual components using Style elements with in-line CSS.
![Page 64: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/64.jpg)
© 2008 Brightcove, Inc. All rights reserved. 64
BEML: Layout
Layout element: Customize positioning
Control which UI elements are includedincluded in a player and where they are positionedpositioned within the player
Canvas
HBox
VBox
Grid
![Page 65: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/65.jpg)
© 2008 Brightcove, Inc. All rights reserved. 65
BEML: Layout
CanvasThe simplest of the layout boxesChild elements in a Canvas are positioned absolutely within the canvas box at the (x, y) position specified in the child element
HBoxA horizontal box that lays out all its child elements horizontallyChild elements in an HBox are positioned sequentially from left to right, with each child element being placed directly to the right of the preceding child element, with an optional gutter between
VBoxA vertical box that lays out all its child elements verticallyChild elements in a VBox are positioned sequentially from top to bottom, with each child element being placed directly below the preceding child element, with an optional gutter between
GridA layout box that allows for a more complex layoutChild elements laid out in columns and rows
![Page 66: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/66.jpg)
© 2008 Brightcove, Inc. All rights reserved. 66
BEML Exercises
Go to the BEML Section in the Sandbox Top MenuBC3Lingo - Brightcove3 UI Translation ToolSimple BEML PlayerLocalizing A Player With BEMLLocalized Player with BEML + External XMLBEML Compact Tabbed PlayerBEML Localization XMLBEML Custom Example 1BEML Custom Example 2
After this, we’ll take an in-depth look at some of the features used in these templates
![Page 67: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/67.jpg)
Creating a simple BEML template
![Page 68: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/68.jpg)
© 2008 Brightcove, Inc. All rights reserved. 68
Creating A Simple BEML Template
<Runtime>
<Theme name='Deluxe' style='Light'/>
<Layout>
<VBox padding='3'>
<VideoPlayer id='videoPlayer'/>
</VBox>
</Layout>
</Runtime>
Specify 486 x 412 Pixels Size
![Page 69: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/69.jpg)
© 2008 Brightcove, Inc. All rights reserved. 69
Creating A Simple BEML Template - Result
![Page 70: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/70.jpg)
Localizing a player with BEML
![Page 71: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/71.jpg)
© 2008 Brightcove, Inc. All rights reserved. 71
Localizing A Player With BEML
<Runtime>
<Theme name="Deluxe" style="Light" />
<Labels>
<label<label key="controls play" key="controls play">>Go!Go!</label></label> </Labels>
<Layout width="486" height="416">
<VBox padding="3">
<VideoPlayer id="videoPlayer" /> </VBox>
</Layout>
</Runtime>
![Page 72: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/72.jpg)
© 2008 Brightcove, Inc. All rights reserved. 72
Localizing A Player With BEML – External XML
<Runtime>
<Theme name="Deluxe" style="Light" />
<Labels <Labels file="http://your.site.com/example.xml" file="http://your.site.com/example.xml" />/>
<Layout width="486" height="416"> <VBox padding="3">
<VideoPlayer id="videoPlayer" />
</VBox>
</Layout>
</Runtime>
![Page 73: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/73.jpg)
© 2008 Brightcove, Inc. All rights reserved. 73
Localizing A Player With BEML – External XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Labels xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Video player chrome controls -->
<label key="controls play">PLAY</label> <label key="controls play">PLAY</label>
<label key="controls pause">PAUSE</label> <label key="controls pause">PAUSE</label>
<label key="controls menu">MENU</label> <label key="controls menu">MENU</label>
<label key="controls play tooltip">Play</label> <label key="controls play tooltip">Play</label>
<label key="controls pause tooltip">Pause</label><label key="controls pause tooltip">Pause</label>
…
![Page 74: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/74.jpg)
© 2008 Brightcove, Inc. All rights reserved. 74
BEML Custom Example 1
![Page 75: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/75.jpg)
© 2008 Brightcove, Inc. All rights reserved. 75
BEML Custom Example 1 - Result
![Page 76: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/76.jpg)
© 2008 Brightcove, Inc. All rights reserved. 76
BEML Custom Example 1 - Code<Runtime> <Theme name='Deluxe' style='Light'> <Style id='default'> <![CDATA[.titleText {fontSize: 12;}.bodyText {fontSize: 10;}]]> </Style> </Theme> <Layout id='application' width='480' height='230' boxType='vbox'> <TabBar id='playlistTabs' height='15' tabAlign='right' hideSingleTab='true' /> <HBox width='480' height='215'> <VideoPlayer id='videoPlayer' width='300' height="215" video='{videoList.selectedItem}' /> <Spacer width='1' /> <VBox width='179' height='215' vAlign='middle'> <List id='videoList' rowHeight='52' automaticAdvance='true'
data='{playlistTabs.selectedItem.videoDTOs}' selectOnClick='true' itemInsetH='2' itemInsetV='2' itemLeading='1'>
<ListItem boxType='vbox' padding='2'> <TitleLabel height='16' text='{currentItem.displayName}' truncate='true' /> <Label multiline='true' text='{currentItem.shortDescription}' truncate='true' /> </ListItem> </List> </VBox> </HBox> </Layout></Runtime>
![Page 77: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/77.jpg)
© 2008 Brightcove, Inc. All rights reserved. 77
BEML Custom Example 1 - ResultboxType=‘vBox’
First vertical element
Second vertical element = hBox
First element of hBoxWithin vBox 2nd Element
= videoPlayer
Second element of hBox
Within vBox 2nd Element
= videoList
![Page 78: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/78.jpg)
© 2008 Brightcove, Inc. All rights reserved. 78
BEML Custom Example 2
![Page 79: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/79.jpg)
© 2008 Brightcove, Inc. All rights reserved. 79
BEML Custom Example 2 - Result
![Page 80: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/80.jpg)
© 2008 Brightcove, Inc. All rights reserved. 80
BEML Custom Example 2 - Code<Runtime><Theme name='Deluxe' style='Light'> <Style id='default'> <![CDATA[.titleText {fontSize: 12;}.bodyText {fontSize: 11;}.linkText {fontSize: 11;}]]> </Style></Theme><Layout id='application' width='588' height='410' boxType='vbox' gutter='11' hAlign='right'> <VBox padding='10'> <VideoPlayer id='videoPlayer' height='316' width='480' video='{videoList.selectedItem}' /> </VBox> <TileList id='videoList' width='100' height='316' automaticAdvance='true' selectOnClick='true' rowHeight='60'
columnWidth='78' numRows='4' useBlur='true' scrollDirection='vertical'> <ListItem boxType='vbox' showBack='false'> <ThumbnailButton data='{currentItem}' source='{currentItem.thumbnailURL}' imageInset='3'/> <Spacer height='1' /> </ListItem> </TileList> <HBox height='80' padding='10'> <Canvas> <Label id='videoTitle' x='-2' y='-6' height='24' width='320' type='title' size='14'
text='{videoPlayer.video.displayName}' truncate='true' /> <Label id='videoDescription' x='-2' y='14' height='35' width='320' size='11'
text='{videoPlayer.video.shortDescription}' truncate='true' multiline='true' /> <Link id='relatedLink' x='-2' y='44' height='18' width='320' size='11' text='{videoPlayer.video.linkText}'
url='{videoPlayer.video.linkURL}' /> </Canvas> <Canvas width='234' height='60'><Image id='logo' scaleMode='scaleDown' hAlign='right' vAlign='bottom' /> </Canvas> </HBox></Layout></Runtime>
![Page 81: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/81.jpg)
© 2008 Brightcove, Inc. All rights reserved. 81
BEML for the Standard Compact Tabbed Navigation
![Page 82: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/82.jpg)
© 2008 Brightcove, Inc. All rights reserved. 82
BEML for the Standard Compact Tabbed Navigation
![Page 83: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/83.jpg)
© 2008 Brightcove, Inc. All rights reserved. 83
BEML for the Standard Compact Tabbed Navigation
<Runtime>
<Theme name='Deluxe' style='Light'> <Style id='default'> <![CDATA[.titleText {size: 12;}.bodyText {size: 10;}.linkText {size: 10;}]]> </Style> </Theme> <Layout id='application' width='798' height='603' boxType='vbox' padding='6' gutter='4'> <HBox height='40' vAlign='bottom' gutter='9'> <Image id='logo' width='300' scaleMode='scaleDown' hAlign='left' vAlign='bottom' /> <TabBar id='playlistTabs' height='22' tabAlign='right' hideSingleTab='true' /> </HBox>
<HBox height='406' gutter='6'> <VideoPlayer id='videoPlayer' width='480' video='{videoList.selectedItem}' /> <List id='videoList' rowHeight='78' automaticAdvance='true' data='{playlistTabs.selectedItem.videoDTOs}' selectOnClick='true' itemInsetV='4' itemLeading='2'> <ListItem boxType='hbox'> <Spacer width='8' /> <VBox width='80' height='74' vAlign='middle'> <ThumbnailButton height='60' data='{currentItem}' source='{currentItem.thumbnailURL}' /> </VBox> <Spacer width='7' /> <VBox> <Spacer height='3' /> <TitleLabel height='18' text='{currentItem.displayName}' truncate='true' /> <Label multiline='true' text='{currentItem.shortDescription}' truncate='true' /> </VBox> …
![Page 84: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/84.jpg)
© 2008 Brightcove, Inc. All rights reserved. 84
Single Title Player With Hidden Playlist
<Runtime>
<Theme name="Deluxe" style="Light"/>
<Layout>
<VBox padding="3">
<VideoPlayer id="videoPlayer" video="{videoList.selectedItem}"video="{videoList.selectedItem}" />
</VBox>
<List id='videoList' automaticAdvance='true' data='{playlistTabs.selectedItem.videoDTOs}'data='{playlistTabs.selectedItem.videoDTOs}' visible='false'>
<ListItem></ListItem>
</List>
</Layout>
</Runtime>
![Page 85: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/85.jpg)
Data Binding
![Page 86: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/86.jpg)
© 2008 Brightcove, Inc. All rights reserved. 86
BEML: Data Binding
Data Binding in Player Templates
Can use a simple binding to set the values of attributes using the ID and properties of another object
The simple binding syntax looks like this:
<Element attribute="{object.property.property}" /><Element attribute="{object.property.property}" />
![Page 87: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/87.jpg)
© 2008 Brightcove, Inc. All rights reserved. 87
Data Binding Elements
Component Binding Object Description
TabBar, List and TileList
selectedItem The currently selected item.
ListItem currentItem The data that corresponds to the ListItem's position in its parent list.
VideoPlayer and VideoDisplay
video The video currently loaded in the player.
![Page 88: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/88.jpg)
© 2008 Brightcove, Inc. All rights reserved. 88
Data Binding Examples
A Label displaying the name of the video currently loaded in the player:
<Label
width="160" height="40" text="{videoPlayer.selectedItem.displayName}"text="{videoPlayer.selectedItem.displayName}" type="title"
/>
![Page 89: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/89.jpg)
© 2008 Brightcove, Inc. All rights reserved. 89
Data Binding Examples
Display the thumbnail image of the video that corresponds to the ListItem's position in the list: :
<List id="playlist" rowHeight="60" > <ListItem id="videoItem" boxType="hbox"
padding="5" gutter="10">
<Image width="67" height="50" source="{currentItem.thumbnailURL}" />
</ListItem>
</List>
![Page 90: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/90.jpg)
The Player API
![Page 91: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/91.jpg)
© 2008 Brightcove, Inc. All rights reserved. 91
The Player API
What is the Player API
The Player API and JavaScript• Studio generated code
• Event Handlers
• Widget integration
The Player API and ActionScript• Studio generated code
• Event handlers
Advanced players
![Page 92: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/92.jpg)
© 2008 Brightcove, Inc. All rights reserved. 92
The Player API?
Use the Player API to customize, integrate with or add functionality to your players
Allows you to access and control the player and its components
JavaScript
ActionScript
Must enable the API for your player
The Player API Reference lists all of the methods and events each component supports.
help.brightcove.com
![Page 93: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/93.jpg)
© 2008 Brightcove, Inc. All rights reserved. 93
Player API Modules
Brightcove Experience
Advertising Module
Content Module
CuePoints Module
Experience Module
Image
Label
LayoutBox
Link
List
SWFLoader
Synched Banner
TabBar
VideoPlayer Module
Social Module
Menu Module
Search Module
![Page 94: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/94.jpg)
© 2008 Brightcove, Inc. All rights reserved. 94
Remember: The Player API is EVENT-DRIVEN
Function Foo()
{
Player = LoadPlayer();
Player.loadVideo(123);
Player.start();
}
Create Experience Object
OnTemplateLoaded
OnTemplateReady
OnContentLoad
OnVideoLoad
![Page 95: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/95.jpg)
The Player API & JavaScript
![Page 96: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/96.jpg)
© 2008 Brightcove, Inc. All rights reserved. 96
JavaScript Approach
In Brightcove StudioGet the publishing code
Enable the APIs (*)
Assign content
In JavaScript:(*) Include API Reference
Get references to player components
Load content
Listen for user interaction events
![Page 97: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/97.jpg)
© 2008 Brightcove, Inc. All rights reserved. 97
Studio Generated JS Code
<!-- Start of Brightcove Player -->
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<script src="http://admin.brightcove.com/js/APIModules_all.js"> </script><script src="http://admin.brightcove.com/js/APIModules_all.js"> </script>
<object id="myExperience" class="BrightcoveExperience"> <param name="bgcolor" value="#FFFFFF" /> <param name="width" value="966" /> <param name="height" value="546" /> <param name="playerID" value="12000045388" /><param name="playerID" value="12000045388" /> <param name="publisherID" value="18786002"/> <param name="isVid" value="true" /> <param name="isUI" value="true" /> <param name="@playlistTabs" value="276897321, 12000044025" /> <param name="@playlistTabs" value="276897321, 12000044025" />
</object>
<!-- End of Brightcove Player -->
![Page 98: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/98.jpg)
© 2008 Brightcove, Inc. All rights reserved. 98
Studio Generated JS Code
<!-- Start of Brightcove Player -->
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<script src="http://admin.brightcove.com/js/APIModules_all.js"> </script><script src="http://admin.brightcove.com/js/APIModules_all.js"> </script>
<object id="myExperience" class="BrightcoveExperience"> <param name="bgcolor" value="#FFFFFF" /> <param name="width" value="966" /> <param name="height" value="546" /> <param name="playerID" value="12000045388" /><param name="playerID" value="12000045388" /> <param name="publisherID" value="18786002"/> <param name="isVid" value="true" /> <param name="isUI" value="true" /> <param name="@playlistTabs" value="276897321, 12000044025" /> <param name="@playlistTabs" value="276897321, 12000044025" />
</object>
<!-- End of Brightcove Player -->
Enable API(JS Part)
Player Ref ID
AssignContent
![Page 99: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/99.jpg)
© 2008 Brightcove, Inc. All rights reserved. 99
Assigning Content
// for a single video in a Single Video template:
<param name="@videoPlayer" value="123456" />
// for a single video, using its reference ID:
<param name="@videoPlayer" value="ref:myVid12345" />
// for one playlist in a multi-playlist template:
<param name="@playlistTabs" value="123456" />
// for multiple playlists:
<param name="@playlistTabs" value="123456, 7891011" />
![Page 100: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/100.jpg)
© 2008 Brightcove, Inc. All rights reserved. 100
Getting JS Object References
<script type="text/javascript">
var bcExp; var modVP; var modExp; var modCon;
function onTemplateLoaded(experienceID)
{
bcExp = brightcove.getExperience(experienceID);
modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
modExp = bcExp.getModule(APIModules.EXPERIENCE);
modCon = bcExp.getModule(APIModules.CONTENT);
}
</script>
![Page 101: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/101.jpg)
© 2008 Brightcove, Inc. All rights reserved. 101
JS Event Handlers (1)
function onTemplateLoaded(experienceID)
{ bcExp = brightcove.getExperience(experienceID); modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);modExp = bcExp.getModule(APIModules.EXPERIENCE);modContent = bcExp.getModule(APIModules.CONTENT);
modExp.addEventListener(BCExperienceEvent.TEMPLATE_REAmodExp.addEventListener(BCExperienceEvent.TEMPLATE_READY, onTemplateReady); DY, onTemplateReady);
modExp.addEventListener(BCExperienceEvent.CONTENT_LOAmodExp.addEventListener(BCExperienceEvent.CONTENT_LOAD, onContentLoad); D, onContentLoad);
modContent.addEventListener(BCContentEvent.VIDEO_LOAD, modContent.addEventListener(BCContentEvent.VIDEO_LOAD, onVideoLoad); onVideoLoad);
}
![Page 102: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/102.jpg)
© 2008 Brightcove, Inc. All rights reserved. 102
JS Event Handlers (2)
function onTemplateReady(evt)onTemplateReady(evt)
{
alert("EVENT: TEMPLATE_READY");
}
function onContentLoad(evt) onContentLoad(evt)
{
alert("EVENT: CONTENT_LOAD");
var currentVideo = modVP.getCurrentVideo();
alert("INFO: Currently Loaded videoID: " + currentVideo.id); modContent.getVideoAsynch(1488633950);
}
![Page 103: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/103.jpg)
© 2008 Brightcove, Inc. All rights reserved. 103
JS Event Handlers (3)
function onVideoLoad(evt)onVideoLoad(evt)
{
alert("EVENT: VIDEO_LOAD");
// Play video that was just loaded modVP.loadVideo(evt.video.id);
}
![Page 104: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/104.jpg)
© 2008 Brightcove, Inc. All rights reserved. 104
Listening for User Interaction Events
var bcExp; var modMenu;
function onTemplateLoaded(experienceID)
{
bcExp = brightcove.getExperience(experienceID);
modMenu = bcExp.getModule(APIModules.MENU);
modMenu.addEventListener(BCMenuEvent.SEND_EMAIL_CLICK, onEmailSentonEmailSent);
}
function onEmailSent(evt)onEmailSent(evt)
{
alert("An Email was sent!");
}
![Page 105: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/105.jpg)
Exercise 2: Using the Player API - JavaScript
![Page 106: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/106.jpg)
© 2008 Brightcove, Inc. All rights reserved. 106
Exercise 2: Using the Player API - JavaScript
Player API Section in your Sandbox Top Menu- Player API - CMS Integration Widget Example- Player API: Dynamically Selecting A Video- Player API: Vanilla Player with JavaScript Playlist
Player API SetLink function can be used to dynamically control the URL used for viral sharing. One can use this call to set the link provide in get link and emails to the page that embeds the player.
Navigate To Home Page -> Exercises
![Page 107: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/107.jpg)
© 2008 Brightcove, Inc. All rights reserved. 107
CMS Integration Widget Example
Shows how to write a CMS Plugin (WordPress)
Approach for other CMS will be very similar
![Page 108: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/108.jpg)
© 2008 Brightcove, Inc. All rights reserved. 108
CMS Integration Widget Example
if ( !array_key_exists('video', $arguments) )
{
return ' <div style="background-color:#f99; padding:10px;">
Brightcove Player Widget Error: Required parameter "video" is missing!</div> ';
exit;
}
else
{ $video = $arguments['video']; } if( array_key_exists('width', $arguments) ) { $height = $arguments['width']; } if( array_key_exists('height', $arguments) ) { $height = $arguments['height']; } if( array_key_exists('player', $arguments) ) { $player = $arguments['player']; } $output .= “
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="$width" height="$height" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab...">
<param name="name" value="flashObj" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" <param name="flashvars"
value="@videoPlayer=$video&playerID=$player&domain=embed&" />value="@videoPlayer=$video&playerID=$player&domain=embed&" />…
return $output;
}
![Page 109: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/109.jpg)
© 2008 Brightcove, Inc. All rights reserved. 109
Dynamically Selecting A Video
<?php
if( isset($_REQUEST['video']))
{
$video = $_REQUEST['video'];
$html = getPlayerHTML($video);
} else
{
$html = getInputHTML();
}
echo $html;
…
![Page 110: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/110.jpg)
© 2008 Brightcove, Inc. All rights reserved. 110
Dynamically Selecting A Videofunction getPlayerHTML($video)
{
$html = "<html><head><title>Dynamic Video Example….
</title></head> <body>
<!-- Start of Brightcove Player -->
<script language='JavaScript' type='text/javascript' src='http://admin.brightcove.com/js/APIModules_all.js'> </script>
<script language='JavaScript' type='text/javascript' src='http://admin.brightcove.com/js/BrightcoveExperiences.js'></script>
<object id='myExperience' class='BrightcoveExperience'>
<param name='bgcolor' value='#FFFFFF' />
<param name='width' value='486' />
<param name='height' value='412' />
<param name='playerID' value='1911416499' />
<param name='publisherID' value='1705665024'/>
<param name='@videoPlayer' value='$video' /> <param name='@videoPlayer' value='$video' />
<param name='isVid' value='true' />
</object>
</body> </html>";
return $html; }
![Page 111: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/111.jpg)
© 2008 Brightcove, Inc. All rights reserved. 111
Vanilla Player With JavaScript Playlist
Uses JavaScript in stead of built-in TileList
Applies ready-to-use Open Source JS Components
![Page 112: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/112.jpg)
© 2008 Brightcove, Inc. All rights reserved. 112
Vanilla Player With JavaScript Playlist
<body>
<div id="playerContainer">
<object id="myExperience" class="BrightcoveExperience">
<param name="bgcolor" value="#FFFFFF" />
…
</div>
<!-- Will hold the scrolling list. --> <!-- Will hold the scrolling list. -->
<div id="tileListContainer"> <div id="tileListContainer">
<div id="tileList"></div> <div id="tileList"></div>
</div> </div>
<!-- Will hold the scrollbar. --> <!-- Will hold the scrollbar. -->
<div id="scrubberContainer"> <div id="scrubberContainer">
<div id="scrubber"></div> <div id="scrubber"></div>
</div> </div>
</body>
![Page 113: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/113.jpg)
The Player API & ActionScript
![Page 114: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/114.jpg)
© 2008 Brightcove, Inc. All rights reserved. 114
ActionScript Approach
In Brightcove Studio:Get the publishing code
Enable the APIsEnable the APIs
Assign content
In ActionScript:Include BrightcovePlayer.as
Get references to player components
Load content
Listen for user interaction events
FullScreen switching
![Page 115: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/115.jpg)
© 2008 Brightcove, Inc. All rights reserved. 115
ActionScript Approach
Since not everyone will have Flash Installed, here are some screen shots of the main steps in Flash CS3 to embed a Brightcove Player
Detailed example article is included in the Sandbox
![Page 116: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/116.jpg)
© 2008 Brightcove, Inc. All rights reserved. 116
ActionScript Approach: 1 – Create AS3 Project
![Page 117: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/117.jpg)
© 2008 Brightcove, Inc. All rights reserved. 117
ActionScript Approach: 2 – Create AS3 File In Project
This file MUST be called
BrightcovePlayer.as
![Page 118: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/118.jpg)
© 2008 Brightcove, Inc. All rights reserved. 118
ActionScript Approach: 3 – Get The Publish AS3 Code
![Page 119: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/119.jpg)
© 2008 Brightcove, Inc. All rights reserved. 119
ActionScript Approach: 3 – Get The Publish AS3 Code
![Page 120: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/120.jpg)
© 2008 Brightcove, Inc. All rights reserved. 120
ActionScript Approach: 4 – Paste into AS3 File
![Page 121: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/121.jpg)
© 2008 Brightcove, Inc. All rights reserved. 121
ActionScript Approach: 5 – Instantiate Player in TimeLine
![Page 122: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/122.jpg)
© 2008 Brightcove, Inc. All rights reserved. 122
ActionScript Approach: 6 – Set Dimensions
![Page 123: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/123.jpg)
© 2008 Brightcove, Inc. All rights reserved. 123
Using The Studio Generated ActionScript Code
import flash.display.*;
import flash.events.Event;
import BrightcovePlayer;import BrightcovePlayer;
public class Main extends Sprite
{
var mPlayer:Object; var mContent:Object; var mExp:Object;
var bcp:BrightcovePlayer = new BrightcovePlayer();var bcp:BrightcovePlayer = new BrightcovePlayer();
…
public function Main()
{
bcp.addEventListener ("templateLoaded", templateLoaded);
addChild (bcp);
}
…
![Page 124: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/124.jpg)
© 2008 Brightcove, Inc. All rights reserved. 124
Getting References & Adding Event Handlers
var mPlayer:Object; var mContent:Object; var mExp:Object;
public function templateLoaded (evt:Event):void
{
trace("template loaded");
mPlayer = bcp.getModule("videoPlayer");
mContent = bcp.getModule("content");
mExp = bcp.getModule("experience");
mExp.addEventListener ("contentLoad", contentLoad);
mContent.addEventListener ("videoLoad", videoLoad);
}
![Page 125: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/125.jpg)
© 2008 Brightcove, Inc. All rights reserved. 125
Loading Contentpublic function templateLoaded (evt:Event):void
{
mPlayer = bcp.getModule("videoPlayer");
mContent = bcp.getModule("content");
mExp = bcp.getModule("experience");
mExp.addEventListener ("contentLoad", contentLoadcontentLoad););
mContent.addEventListener ("videoLoad", videoLoadvideoLoad);
}
public function contentLoadcontentLoad (evt:Event):void
{
var video:Object;
mContent.getVideoAsynch (0123456789);
}
public function videoLoadvideoLoad(evt:Object):void
{
mPlayer.loadVideo(evt.video.id); }
![Page 126: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/126.jpg)
© 2008 Brightcove, Inc. All rights reserved. 126
Listening For User Interaction
public function templateLoaded(evt:Event):void
{
mMenu = bcp.getModule("menu");
mMenu.addEventListener("sendEmailClick", emailSentemailSent);
}
public function emailSent(evt:Event):emailSent(evt:Event):void
{
trace("An email was sent!");
}
![Page 127: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/127.jpg)
© 2008 Brightcove, Inc. All rights reserved. 127
Going Full Screen
If you're embedding the player in a Flash application, you need to configure your shell to properly display full screen mode.
In addition to setting the allowFullScreen parameter to true in your object and embed tags, you also need to include the following in your shell SWF:
stage.scaleMode = StageScaleMode.NO_SCALE; stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;stage.align = StageAlign.TOP_LEFT;
public function templateLoaded(evt:Event):void
{
mPlayer = bcp.getModule("videoPlayer"); mPlayer.goFullScreen(true);
}
![Page 128: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/128.jpg)
Exercise 3: Using the Player API - ActionScript
![Page 129: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/129.jpg)
© 2008 Brightcove, Inc. All rights reserved. 129
Exercise 3: Using the Player API - ActionScript
1. Hello World with OnTemplateLoad • Use OnTemplateLoad to throw a "Hello World" alert box (JS) or trace
statement (Flash)
2. Hello World with mediaStart event • Create a "Hello World" alert or trace using the mediaStart event
3. Load a new video into the player • Build on previous exercises: using event handling + calls to load a
video from the server
4. Add the name of the video that we just loaded to the alert • Build on previous exercises: using event handling + calls to load a
video from the server and get the metadata from the video object
![Page 130: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/130.jpg)
© 2008 Brightcove, Inc. All rights reserved. 130
Player API ActionScript Examples
Advanced Section in your Sandbox Top Menu
![Page 131: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/131.jpg)
© 2008 Brightcove, Inc. All rights reserved. 131
Advanced Player API: Subtitling
![Page 132: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/132.jpg)
© 2008 Brightcove, Inc. All rights reserved. 132
Advanced Player API: 3D TV
![Page 133: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/133.jpg)
Section III: The Media API
![Page 134: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/134.jpg)
© 2008 Brightcove, Inc. All rights reserved. 134
Section III: The Media API
In this section:What the Media API is
The Media API Read methods• Exercises
The Write API Write methods• Exercises
![Page 135: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/135.jpg)
© 2008 Brightcove, Inc. All rights reserved. 135
What is the Media API?
A REST-based API for accessing the content and metadata in your Brightcove account. Divided into a READ and WRITE API portion.
REST (Representational State Transfer):a standard way of accessing data stored remotely over HTTP
a cousin of SOAP = technology that powers “web services.”
abstracts the workings of the remote system
all your code needs to understand is the format of the returned data
Example Call:http://api.brightcove.com/services/library?command=find_all_videos&token=0Z2dtxTdJAxtbZ-d0U7Bhio2V1Rhr5Iafl5FFtDPY8E.
![Page 136: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/136.jpg)
© 2008 Brightcove, Inc. All rights reserved. 136
Media API & Security
Access to the API is protected with tokens that you pass as a parameter when making API calls
Tokens are generated for you by Brightcove and protected by you
There are separate tokens for READ and WRITE access
This allows you to develop applications with role-based access
![Page 137: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/137.jpg)
© 2008 Brightcove, Inc. All rights reserved. 137
Media API & Security
For this training, we will use a dedicated set of tokens
For using the API with your own Brightcove Account, please request your pair of tokens: https://help.brightcove.com/request-support.cfm
![Page 138: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/138.jpg)
© 2008 Brightcove, Inc. All rights reserved. 138
Media API Data Format
Data is formatted as JSON strings
(JavaScript Object Notation)
JSONA lightweight way of transferring complex objects as strings
Nearly every language today can claim a large number of publicly available libraries to parse JSON strings into native objects.
![Page 139: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/139.jpg)
© 2008 Brightcove, Inc. All rights reserved. 139
Example JSON String
{"items":[{"creationDate":"1171267200000","economics":"FREE","id":49518762,"lastModifiedDate":"1171324536445","length":111077,"linkText“null,"linkURL":null,"longDescription":null,"name":"DocumentarianSkydiving","playsTotal":189,"playsTrailingWeek":3,"publishedDate":"117324433253","referenceId":"title006","releaseDate":null,“…..
![Page 140: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/140.jpg)
The Media API – Read Methods
![Page 141: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/141.jpg)
© 2008 Brightcove, Inc. All rights reserved. 141
Read API – Typical Applications
Contextual PublishingDisplaying Video Metadata in the embedding web page
Search Engine OptimizationUsing Metadata to optimize Search Engine pickup
CMS IntegrationIntegrating Metadata into your Corporate CMS
SyndicationIntegrating your content into other portals & sites
See AlsoPresenting relevant content the user could be interested in
![Page 142: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/142.jpg)
© 2008 Brightcove, Inc. All rights reserved. 142
Read API Data Format
The Read API consists of a set of methods which perform a variety of queries on our servers (which are cached for performance), and return sets of data in DTOs or Data Transfer Objects
Calling the READ APIHTTP GET Request in REST Format
Must provide READ Token
Read API ParametersAll Read API Functions are defined in the online reference:
https://help.brightcove.com/developer/docs/mediaapi/media-API.cfm
![Page 143: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/143.jpg)
© 2008 Brightcove, Inc. All rights reserved. 143
The Main READ API’s
Video READfind_all_videos
find_video_by_id
find_related_videos
find_videos_by_ids
find_video_by_reference_id
find_videos_by_reference_ids
find_videos_by_user_id
find_videos_by_campaign_id
find_videos_by_text
find_videos_by_tags
Playlist READfind_all_playlists
find_playlist_by_id
find_playlists_by_ids
find_playlist_by_reference_id
find_playlists_by_reference_ids
find_playlists_for_player_id
![Page 144: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/144.jpg)
© 2008 Brightcove, Inc. All rights reserved. 144
Video READ API – Detailed Excerpt
Function Parameters Description
find_all_videos token:String page_size:Integer page_number:Integer sort_by:SortByType sort_order:SortOrderType fields:Set get_item_count:Boolean
Find all videos in the Brightcove media library for this account.
Returns a JSON ItemCollection
find_video_by_id token:String video_id:long fields:Set
Finds a single video with the specified id. Returns a single JSON Video Object
find_related_videos token:String video_id:long page_size:Integer page_number:Integer get_item_count:Boolean fields:Set
Finds videos related to the given video. Combines the name and short description of the given video and searches for any partial matches in the name, description, and tags of all videos in the Brightcove media library for this account. More precise ways of finding related videos include tagging your videos by subject and using the find_videos_by_tags method to find videos that share the same tags: or creating a playlist that includes videos that you know are related.
Returns a JSON ItemCollection
find_videos_by_ids token:String video_ids:List fields:Set
Find multiple videos, given their ids. Returns a JSON ItemCollection
![Page 145: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/145.jpg)
© 2008 Brightcove, Inc. All rights reserved. 145
Displaying Metadata
Make the API CallFor example, find_all_videos
Parse the returned JSON StringCheck for errors
Loop though the returned collection
Insert Into the Web PageApply Styling & Formatting
![Page 146: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/146.jpg)
Exercise 4: Using the Read API - Part 1
![Page 147: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/147.jpg)
© 2008 Brightcove, Inc. All rights reserved. 147
Exercise 4: Using the Read API - Part 1
We’ll be using a local desktop web serverMain Page: http://localhost
Check details for Exercise One
Objective:No player on the page
Write an HTML page & call the FindAllVideos method
Return 5 videos and display the titles and thumbnails
![Page 148: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/148.jpg)
Exercise 4: The Read API - Part 2
![Page 149: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/149.jpg)
© 2008 Brightcove, Inc. All rights reserved. 149
Exercise 4: The Read API - Part 2
Add Simple Search FunctionalityAdd a simple form to ask for a search termSearch the Name & Description field of VideosWhich Method Will We Use Now?
Check the Media API Reference
Objective:No player on the pageWrite an HTML page with a Search formCall the FindVideosByText methodReturn 5 videos and display the titles and thumbnails
Check details for Exercise Two on your local web server
![Page 150: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/150.jpg)
© 2008 Brightcove, Inc. All rights reserved. 150
Read API : Enhancing SEO
Search engine optimization (SEO) is the process of improving the volume and quality of traffic to a web site from search engines via "natural" ("organic" or "algorithmic") search results for targeted keywords
Common ApproachesAdd Descriptions as HTML Text
Add Tags as HTML Links
Provide a unique URL for each item
CMS Integration
Provide RSS Feeds
ContextPublishing
![Page 151: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/151.jpg)
Exercise 4: The Read API - Part 3
![Page 152: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/152.jpg)
© 2008 Brightcove, Inc. All rights reserved. 152
Exercise 4: The Read API - Part 3
How would you accomplish each of these tasks?Add Descriptions as HTML Text
Add Tags as HTML Links
Provide a unique URL for each item
CMS Integration
Provide RSS Feeds
![Page 153: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/153.jpg)
The Media API – Write Methods
![Page 154: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/154.jpg)
© 2008 Brightcove, Inc. All rights reserved. 154
Write API – Typical Applications
Batch uploadingUploading your existing media library into BrightcoveUploading User Generated Content into Brightcove
Integrating Social Networking ToolsRating, Digg, MySpace, FaceBook, etc.
Data ConsolidationPopulating ReferenceID’s with your Database’s UIDPopulating Descriptions, tags, etc
Campaign ManagementSwitching Status of series of Videos
ModerationGiving moderators the options they need without access to the Brightcove Console
![Page 155: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/155.jpg)
Exercise 5: Writing an Ingestion Tool
![Page 156: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/156.jpg)
© 2008 Brightcove, Inc. All rights reserved. 156
Exercise 5: Writing an Ingestion Tool
How would you accomplish each of these tasks?Users can contribute videos on various themes in a variety of formats (.mov, .avi, .wmv, .flv)
Videos must be encoded in four different resolutions
Videos must be reviewed and approved by moderators who do not have access to the Brightcove Console
Users must be informed of their video being approved or rejected
Video metadata must be populated by data entered by the user
![Page 157: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/157.jpg)
© 2008 Brightcove, Inc. All rights reserved. 157
Advanced Media API : SEO
![Page 158: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/158.jpg)
© 2008 Brightcove, Inc. All rights reserved. 158
Advanced Media API: CMS Integration
![Page 159: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/159.jpg)
© 2008 Brightcove, Inc. All rights reserved. 159
Advanced Media API: Custom Upload + User Accounts
![Page 160: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/160.jpg)
© 2008 Brightcove, Inc. All rights reserved. 160
REFERENCE
![Page 161: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/161.jpg)
© 2008 Brightcove, Inc. All rights reserved. 161
Answer - Read API: Exercise 4
How would you accomplish each of these tasks?Add Descriptions as HTML Text
Use a Find* Read API Method
Insert the shortDescription & longDescription fields as HTML-Encoded Text
Add Tags as HTML Links
Provide a unique URL for each item
CMS Integration
Provide RSS Feeds
![Page 162: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/162.jpg)
© 2008 Brightcove, Inc. All rights reserved. 162
Answer - Read API: Exercise 4
How would you accomplish each of these tasks?Add Descriptions as HTML Text
Add Tags as HTML Links
Use a Find* Read API Method
Iterate the tags field (separate by commas)
Insert the tag values as links
Provide search logic for each tag
Provide a unique URL for each item
CMS Integration
Provide RSS Feeds
![Page 163: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/163.jpg)
© 2008 Brightcove, Inc. All rights reserved. 163
Answer - Read API: Exercise 4
How would you accomplish each of these tasks?Add Descriptions as HTML Text
Add Tags as HTML Links
Provide a unique URL for each item
Use the Brightcove ID field or the ReferenceID field (your custom unique ID for each video)
Requires configuration of your Web Server
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
CMS Integration
Provide RSS Feeds
![Page 164: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/164.jpg)
© 2008 Brightcove, Inc. All rights reserved. 164
Answer - Read API: Exercise 4
How would you accomplish each of these tasks?Add Descriptions as HTML Text
Add Tags as HTML Links
Provide a unique URL for each item
CMS Integration
Depends on the plugin architecture of your CMS
Correlates the Brightcove Metadata with your CMS Metadata (using ID or ReferenceID fields)
http://codex.wordpress.org/Writing_a_Plugin
Provide RSS Feeds
![Page 165: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/165.jpg)
© 2008 Brightcove, Inc. All rights reserved. 165
Answer - Read API: Exercise 4
How would you accomplish each of these tasks?Add Descriptions as HTML Text
Add Tags as HTML Links
Provide a unique URL for each item
CMS Integration
Provide RSS Feeds
Publishes descriptions and tags with unique links in RSS Format
![Page 166: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/166.jpg)
© 2008 Brightcove, Inc. All rights reserved. 166
Answer - Read API: Exercise 4
RSS Example Code
<?xml version="1.0"?> <rss version="2.0">
<channel>
<title>Lift Off News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>[email protected]</managingEditor>
<webMaster>[email protected]</webMaster>
….
![Page 167: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/167.jpg)
© 2008 Brightcove, Inc. All rights reserved. 167
Answer Exercise 5: Writing an Ingestion Tool
Writing an Ingestion Tool:
Users can contribute videos on various themes in a variety of formats (.mov, .avi, .wmv, .flv)
Build an upload tool, using a mid-tier is recommended
Use the create_video Write API Method
Transcoding will be done automatically by the Brightcove Platform
![Page 168: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/168.jpg)
© 2008 Brightcove, Inc. All rights reserved. 168
Answer Exercise 5: Writing an Ingestion Tool
Writing an Ingestion Tool:
Videos must be encoded in four different resolutionsThis can be done automatically by the Brightcove Platform upon upload of your video
create_video(token:String, video:Video, filename:String, maxsize:Long, file:InputStream, file_checksum:String, create_multiple_renditions:Boolean):Long
![Page 169: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/169.jpg)
© 2008 Brightcove, Inc. All rights reserved. 169
Answer Exercise 5: Writing an Ingestion Tool
Writing an Ingestion Tool:
Videos must be reviewed and approved by moderators who do not have access to the Brightcove Console
If using a mid-tier: build a custom management tool that can view, edit, approve & upload individual videos.
If uploading directly to Brightcove: upload videos as inactive, then use READ & WRITE APIs to build a management tool
![Page 170: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/170.jpg)
© 2008 Brightcove, Inc. All rights reserved. 170
Answer Exercise 5: Writing an Ingestion Tool
Writing an Ingestion Tool:
Users must be informed of their video being approved or rejected
Batch through the status of uploaded videos and send an email notification based on a video meta tag
![Page 171: Brightcove Developer Training Bob de Wit © 2008 Brightcove, Inc. All rights reserved. 3 Developer Training Provides a comprehensive overview of the extensive.](https://reader035.fdocuments.us/reader035/viewer/2022062322/56649e355503460f94b24644/html5/thumbnails/171.jpg)
© 2008 Brightcove, Inc. All rights reserved. 171
Answer Exercise 5: Writing an Ingestion Tool
Writing an Ingestion Tool:
Video metadata must be populated by data entered by the user
Use the Write API to update video metadata after uploading it to the Brightcove Platform
update_video(token:String, video:Video):Video
Refer to the Video Object Documentationhttps://help.brightcove.com/developer/docs/mediaapi/objects.cfm