YouTube APIs

You will have 30 minutes from when your challenge is announced to submit your answers for Round I, using the form at the right. Please note that this 1-page form will not be accessible until the contest is officially open. Be prepared to submit the following in the 30 minutes that you are allotted and keep a close eye on the countdown:
  • You will need to accept the Terms & Conditions as outlined in the Contest Rules, in addition to submitting your full name, email address and answers for the Quickfire Challenge. A preview of the form appears at the right.
  • The 200 highest scoring individuals will be selected to proceed to Round II. Scores will be based upon number of correct answers and speed of entry.
Round I:
Welcome to Round I of the YouTube APIs challenge. Starting from now, you will have until 9:30 A.M. PDT to complete the following questions. All of these questions have a single right answer.

Accept the Terms & Conditions to the Contest Rules and submit your answers at one of mirrored forms below.

Use the form that corresponds with your last name:
A - L:
M - Z:
  1. The three methods of uploading videos using the YouTube API are browser-based uploads, resumable uploads, and direct uploads.
  2. The YouTube API authentication method that requires developers to pass in an email/username and password is ClientLogin
  3. Flash Plugin 10.2 introduced hardware accelerated video playback using the Stage Video API. In order to enable Stage Video playback with YouTube embedded videos, it’s necessary to add the wmode=direct URL query parameter to the embedded video’s URL.
  4. PubSubHubbub, also known as PuSH, is an alternative to the Simple Updated Protocol for receiving YouTube activity updates.
  5. Developers can test their code against upcoming YouTube API server releases via our staging environment. Instead of, the hostname for the staging server is
  6. Partial responses allow developers to request only a subset of the fields that are normally returned in an API response. Fill in the missing value in this URL so that it results in a partial response that includes only each entry’s title:
  7. The <yt:accessControl> Atom XML element can be used to control whether a video is embeddable, whether it’s unlisted, whether comments are accepted, and a number of other options.
  8. The YouTube Player APIs allow you to specify a quality level for initial video playback if you’d rather not rely on the default. The quality level string that corresponds to 480p video resolution is large.
  9. The YouTube Player APIs have different numeric codes corresponding to video playback states. The code for the “buffering” state is 3.
  10. When updating an existing video’s metadata, an HTTP PUT request should be used, with the request’s body containing the updated video entry.
Round II:

Video Meets the JavaScript API
Wouldn’t it be nice if you could create a video mash-up by chaining player invocations that work for both Flash and HTML5 videos ? Well, with the JavaScript API to the <iframe> embed we think you can.

Your task is to build a mash-up player using the <iframe> JavaScript API. You will be given a list of video IDs, and from-to timestamps. For example the following sequence (<xxasdadad, 65s, 95s>, <xxffwwe22, 20s, 35s>), which will trigger the mash-up player to play video with ID xxasdadad for 30 seconds, starting at second 65 and ending at second 95, then proceed to play video with ID xxffwwe22, starting at second 20 and ending at second 35.

Given the sequence, implement a player which will play the sections of the listed videos, starting at the ‘from’ timestamp, and ending at the ‘to’ timestamp for each video.

Try to make the transitions between videos as smooth as possible, and make it easy for users to embed your mash-up player in their own web applications.

Your delivery consists of :

1. The source code.
2. Link to a web site with example usage for sequence A and B below.

We will provide you with :

1. Video sequence A.
(<u1zgFlCw8Aw, 22s, 28s>, <u1zgFlCw8Aw, 127s, 140s>, <L5ebSn9HgJ4, 3019s, 3040s>, <u1zgFlCw8Aw, 195s, 199s>)

2. Video sequence B.
(<yFhFu25TGxM, 2s, 10s>, <tgGxi3hiOnY, 00s, 11s>, <B4Y_2V5caQk, 23s, 33s>, <x5tj9uSc2_4, 8s, 29s>)