Skip to main content

YouTube API Usage

SimplePost lets users publish or schedule user-provided videos to YouTube. The user connects a Google account that has access to the target YouTube channel, then SimplePost uses the YouTube Data API v3 to upload the video and apply the publishing options selected by the user.

SimplePost does not use YouTube APIs to read analytics, comments, subscribers, live streaming data, or reporting data.

Product Purpose

SimplePost uses YouTube access for these user-facing features:

  • Connect a user's Google account for YouTube publishing.
  • Upload a video selected by the user.
  • Set user-provided video metadata such as title, description, tags, category, privacy status, and made-for-kids declaration.
  • Schedule a video for future publication when the user provides a publish time.
  • Upload a custom thumbnail when the user provides one.
  • Add the uploaded video to a playlist when the user provides a playlist ID.

Google OAuth

YouTube access is authorized through Google OAuth 2.0.

PurposeEndpoint
Authorizationhttps://accounts.google.com/o/oauth2/v2/auth
Token exchange and refreshhttps://oauth2.googleapis.com/token
Basic Google profile lookuphttps://www.googleapis.com/oauth2/v2/userinfo

The OAuth flow requests offline access so SimplePost can keep a refresh token and continue posting scheduled videos while the user remains connected. Users can disconnect their YouTube account in SimplePost or revoke access from their Google Account settings.

OAuth Scopes

SimplePost requests these Google OAuth scopes for YouTube connections:

ScopePurpose
https://www.googleapis.com/auth/youtube.uploadUpload videos to the user's YouTube channel and set upload metadata.
https://www.googleapis.com/auth/youtube.readonlyRead-only YouTube access. The current publishing flow does not call YouTube read endpoints; account display data comes from Google OAuth userinfo.
https://www.googleapis.com/auth/userinfo.profileRetrieve basic Google profile information used to label the connected account.

YouTube Data API Calls

SimplePost makes the following YouTube Data API v3 calls.

FeatureYouTube API methodEndpointWhen used
Video uploadvideos.insertPOST https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,statusAlways used for YouTube posts.
Thumbnail uploadthumbnails.setPOST https://www.googleapis.com/upload/youtube/v3/thumbnails/set?videoId={videoId}Used only when the user provides a custom thumbnail.
Playlist insertionplaylistItems.insertPOST https://www.googleapis.com/youtube/v3/playlistItems?part=snippetUsed only when the user provides a playlist ID.

Video Upload

For videos.insert, SimplePost sends:

  • The user-selected video file.
  • Video title.
  • Video description.
  • Tags, when provided.
  • Category ID, when provided.
  • Privacy status, when provided.
  • Scheduled publish timestamp, when provided.
  • Self-declared made-for-kids value, when provided.

If the user schedules a video with a future publish time, SimplePost sends the video as private with the requested publish timestamp, which is required for native YouTube scheduled publishing.

Thumbnail Upload

For thumbnails.set, SimplePost sends the user-provided thumbnail image for the video that was just uploaded. If thumbnail upload fails, the video upload remains successful and the thumbnail failure is reported as a non-blocking warning.

Playlist Insertion

For playlistItems.insert, SimplePost sends the playlist ID provided by the user and the ID of the newly uploaded YouTube video. If playlist insertion fails, the video upload remains successful and the playlist failure is reported as a non-blocking warning.

Data Accessed and Stored

SimplePost accesses and stores only the data needed to provide YouTube publishing:

DataUse
Access tokenAuthorize YouTube publishing requests while the token is valid.
Refresh tokenObtain new access tokens for scheduled posts and future uploads while the account remains connected.
Token expiryDecide whether a stored access token can still be used.
Basic Google profile informationDisplay the connected Google account to the user.
User-provided video fileUpload the video to YouTube.
User-provided thumbnail fileUpload a custom thumbnail when requested.
User-provided video metadataPopulate the YouTube video title, description, tags, category, privacy status, schedule time, playlist, and made-for-kids setting.

SimplePost does not store YouTube analytics, comments, subscriber lists, watch history, or reporting data.

APIs Not Used

SimplePost does not currently call these YouTube APIs:

  • YouTube Analytics API.
  • YouTube Reporting API.
  • YouTube comments APIs.
  • YouTube live streaming APIs.
  • YouTube read endpoints such as channels.list or videoCategories.list.

User Control

Users control when SimplePost uses YouTube access:

  • The user must connect a Google account before SimplePost can publish to YouTube.
  • The user must create or schedule a YouTube post before SimplePost uploads a video.
  • The user chooses the video file, metadata, privacy status, schedule time, thumbnail, and playlist settings.
  • The user can disconnect their YouTube account in SimplePost.
  • The user can revoke SimplePost's Google access from Google Account settings.

Error Handling

If the video upload fails, SimplePost marks the post as failed and reports the YouTube API error to the user. If Google returns an expired or revoked authorization error, SimplePost asks the user to reconnect their YouTube account.

Thumbnail upload and playlist insertion are optional follow-up actions. If either optional action fails after the video upload succeeds, SimplePost keeps the uploaded video and reports the optional failure without deleting the video.