IBRAHIM ULUKAYA: Hi, everyone.
I'm Ibrahim Ulukaya from YouTube API Developer
Relations Team.
And today we are going to talk about a new API and set of
functionalities called YouTube Live Streaming API.
Joining me today, Satyajeet Salgar, who is the product
manager of YouTube Live & Sports and Derek Tan, who is
the [? technique ?] for the Live Streaming API.
Thanks so much for joining me today, guys.
DEREK TAN: Thank you.
SATYAJEET SALGAR: Thanks, Ibrahim.
IBRAHIM ULUKAYA: So before going any further, Satyajeet,
please tell us about the new YouTube
live streaming platform.
SATYAJEET SALGAR: Sure, we're really excited about the live
platform that we've built at YouTube and the kind of
experiences it's enabled.
Over the last few months, we've seen an incredible
number of events from our content partners.
Everything from the Red Bull Stratos jump, which had over 8
million concurrent viewers, to the election of the Pope, to
the last US presidential elections.
And just a number of e-sports tournaments, gaming events,
news events, and sports events.
The live engineering team at YouTube does an incredible job
with our platform.
We have an incredible stream quality and features like
transcoding in the cloud.
So you only need to send us one stream and we transcode it
to all the different device formats
and resolutions required.
Things like adaptive bit rates, we figure out the right
stream quality to send to the user based on their bandwidth.
DVR, so users can skip back and forth.
And we make it really easy to do things like insert slates,
insert ad cue points.
We're really excited about the kind of experiences this
platform will enable for our YouTube creators.
IBRAHIM ULUKAYA: OK, great.
Derek, maybe after this talk, the main question in
everyone's mind, what's the Live Streaming API?
What are the functionalities coming with this API?
DEREK TAN: Yeah, the YouTube Live Streaming API is a set of
API methods that allow you to create, update, and manage
your live events.
It currently consists of three major APIs, live broadcast,
live stream, and live cue points.
Live broadcast and live stream are built upon the
YouTube Data API.
Live cue point is built upon the YouTube Partner API.
And by using this free API, you are able to schedule a
live event, configure the stream, start and stop the
live event, enable DVR, enable recording, and monetize it by
adding the ad cue point.
IBRAHIM ULUKAYA: OK.
In addition to these core features, actually, what is
the target developer audience for this API?
SATYAJEET SALGAR: Sure.
The YouTube live streaming is enabled for a set of YouTube
content partners.
We expect the Live API to make it much easier for them to
create and manage their own events.
In addition, we expect some of the most interesting uses of
this API to come from developers that are building
tools and apps for these partners, either new products
or integrating it into existing products.
I believe you're going to demo one such product later today.
IBRAHIM ULUKAYA: Yeah.
That will be rad, actually.
Actually, we just talked about the core features.
And from the developer's documents, I just saw that
this API interacts with the Data API and the Content
Partner API.
Derek, can you explain a little bit about this
interaction and the philosophy behind it?
DEREK TAN: Yeah, sure.
One philosophy of the new API is to make it very easy to
understand and simple to use.
In the old API, we duplicate some functionality with the
Data API and YouTube API.
In the new design, we just make it very specific to the
Live API, and moved the regular video management and
functionality to Data API and Partner API.
For example, if you want to monetize your stream, monetize
your video, you just call the Partner API to claim the video
content and then call the Live Cue Point API to add cue point
in real time.
And another example is that if you want to get the regular
video metadata, for example, on how many users like your
video, just call the Data API.
And obviously, if you want to get the broadcast metadata,
for example, the life cycle status or broadcast stream
status, just call the Live API.
And if you see the Live API spec, you should see that the
new API request and response is much shorter and clearer.
IBRAHIM ULUKAYA: Thanks, Derek, for clearing this up.
And I just also want to say at this point that actually the
Live Streaming API, the library actually comes
on this Data API.
And maybe if you're wondering where is the Live Streaming
API in your dev console, once you enable the Data API, the
live streaming capabilities will also be enabled.
Being said that, actually are there any new scopes
introduced with this new API?
Or are they using the same scopes that the YouTube Data
API is using?
DEREK TAN: Yes.
Live Broadcast and Live Stream API are based on the
YouTube Data API.
So they share the same OAuth2 scope, which are YouTube doc
read only and YouTube.
Live Cue Point API is a part of the Partner API.
It uses YouTube partner as OAuth2 scope.
IBRAHIM ULUKAYA: OK, I think that's great.
Thanks for joining me, guys.
And I think that's a great time to start seeing some
demos and few examples from more early integrators.
So maybe a good example to start is the create broadcast
example I created, which actually does OAuth2
authorization that creates a broadcast and that creates a
stream and then binds them together so that you have
already a stream.
You have already scheduled a broadcast that
you can just stream.
Let's go over the example.
So for this example, we use the OAuth2 authorization, as I
described, going through the Google
authorization code flow.
And once the user actually authorizes us to use their
credentials, then what we do is we create our YouTube
object and create a broadcast with a title, the scheduled
start time, scheduled end time.
And so I think it's private.
Status to private.
We first create an insert request, execute the request,
get a response as a broadcast object.
So we just print out all the broadcast object's properties.
And then we create a stream in a similar way.
We get the title, we set the broadcast title.
Then we set the CDN format.
The content distributed format is 1080p.
And we set the ingestion type as RTMP.
Then we create an insert request.
But with the execution of the insert request, we get a
response as a stream.
And we just print out that one.
And then we create a bind request.
And we actually execute the bind request and then we'll be
ready to go.
So let's actually do this and see how it works.
So we create a broadcast.
Let's say we create a broadcast title
as broadcast 1.
We get the broadcast title, start time, end time.
Let's create stream 2.
We get the stream.
Oh yes.
And there's one thing I actually added into the
example that you also return the ingestion address, which
you will be using while you're streaming.
So once you create this stream, you actually get an
ingestion address that you will put
into your actual streamer.
And let's see in the--
actually in all sides, while we refresh our all sides, you
see the broadcast is already created.
And once we see in the Channel Settings, we
also check the streams.
And in Streams, we also see that our
stream is already created.
I think this is a good time we can just check
all the other examples.
Our first example is from Elgato Game Capture HD.
MALE SPEAKER: With Elgato Game Capture HD, you can record
your PlayStation and Xbox game play to a Mac or a PC and
share your clips with your friends.
Now YouTube has made it really easy to live
stream your game play.
Go live with the click of a button.
[GUNFIRE]
GAME CHARACTER: If you need me to move, just fire it.
[GUNFIRE]
[MUSIC PLAYING]
IBRAHIM ULUKAYA: Let's see another example from Capella
Systems' Cambria Live.
FEMALE SPEAKER: Cambria Live is an [INAUDIBLE]
level software that encodes live broadcasters in real time
and uploads them to popular streaming service.
With YouTube Live Channel, you can add account from Account
Manager, enter email and password registered with
YouTube Live Channel.
Please note that you must be certified contents partner in
order to stream to YouTube Live Channel.
Once you enter email and password, YouTube Live account
is added in the Account Manager.
You can then select YouTube from target and it will bring
up all channels registered from your account.
Once specify channel, it automatically inputs suggested
presets by YouTube for optimal video quality.
You can simply start streaming all the streams by clicking on
Start Streaming.
Even after it's started streaming, you can change
video quality by clicking on Show Other Band Settings.
You can modify frame size, frame rate, video aspect
ratio, and also bit rate.
You can also preview streaming preview page by clicking
Streaming Preview from the encode settings, allowing you
to verify the stream looks OK.
Cambria Live comes with a very powerful edit tool called
Cambria Live Edit.
We use with our file based transcoding software called
Cambria File Convert.
User can create highlight clips on the file during a
live event by simply setting in and out points within the
Cambria Live Edit timeline.
This edit point data then transfers to Cambria File
Convert, which can generate highlight clips in multiple
video formats and also upload the encoded files to FTP site
or YouTube VOD channel.
You can seek in and out points at any point of the live event
and create multiple highlight clips without
having any down time.
There is also an option to immediately re-import the
segment back to live, without sending it to
Cambria File Convert.
So while you're doing continuous streaming, you can
re-stream highlights without having any down time.
As you can see, Cambria Live is a very unique and powerful
production tool that enables and enhances professional live
streaming broadcast production.
If you'd like to know more about Cambria Live, please
visit our website at www.capellasystems.net.
IBRAHIM ULUKAYA: Well, that was the demos, and I think
it's a great API.
And thanks for joining me, guys today, for this hour.
SATYAJEET SALGAR: Thank you.
DEREK TAN: Thanks for having us.
IBRAHIM ULUKAYA: Now I think you guys are really excited.
And I hope you enjoy this API and start using it right away.
Have a great day.