Creating a YouTube channel

This document explains the process of spawning an Android WebView, iOS UIWebView, or similar object, to allow a user to create a YouTube channel and then return control to your application. Your application should implement this flow to handle API errors that occur when a user with an unlinked Google Account tries to complete an action that actually requires a YouTube channel.

Note: As discussed in the Developer's Guide, a user who has a Google Account but does not have a YouTube channel is identified as having an unlinked Google Account. Such users can access many YouTube features that are dependent on user authorization, such as the ability to create playlists or rate videos. However, those users cannot upload videos to YouTube without first creating a YouTube channel.

Use case

The following steps explain the use case:

  1. A user with an unlinked Google Account tries to complete an action that requires a YouTube channel. Your application sends an authorized API request for that action.

  2. YouTube returns a youtubeSignupRequired error, indicating that the user must sign up for a YouTube account to complete the requested action.

  3. Your application launches a WebView or equivalent that loads the following URL:

    https://m.youtube.com/create_channel?chromeless=1&next=/channel_creation_done

    This page enables the user to log in and create a YouTube channel.

  4. Your application monitors the WebView to determine when its location changes to the following URL, which indicates that the user's Google Account has been linked to a YouTube channel.

    https://m.youtube.com/channel_creation_done
  5. Your application closes the WebView and resends the authorized API request from step 1.

If the user closes the WebView without completing the steps to create a YouTube channel, then your application will not be able to resend the API request from step 1 and have it succeed. In this case, your application could reiterate that the user will need to create a YouTube channel to complete the requested action.

Additional resources

The following resources may help you to implement this flow in your application: