YouTube API Services usage
Last updated: October 13, 2026
How Pip Studio Publisher uses the YouTube Data API v3. This page is the reference for the YouTube API Services audit of the app.
1. API client
| Name | Pip Studio Publisher (the name does not contain “YouTube”) |
|---|---|
| Type | Internal command-line tool for macOS, part of the production pipeline of one channel |
| Channel | Pip's Dino Diary — original English-language animation for children aged 4–8, made for kids |
| Users | One: the channel owner. No public access, no sign-up, no other channels |
| Google Cloud projects | One |
| Authorization | OAuth 2.0 for installed apps: loopback redirect on 127.0.0.1 with PKCE (S256), offline access |
| OAuth scope | https://www.googleapis.com/auth/youtube.force-ssl — the single scope that covers uploads, thumbnails, captions and playlists |
| Policies | Privacy Policy · Terms of Service |
| Contact | ha.family.12091990@gmail.com |
2. Use case
The channel publishes short animated episodes about dinosaurs, each with a matching Short, plus a weekly compilation of published episodes. Every episode is produced by the channel's own pipeline and passes two human reviews:
- Before rendering: the channel owner reviews the script, storyboard, voice and science facts and approves them. The approval is locked by content hashes, so the rendered video is exactly what was approved.
- Upload: Pip Studio Publisher uploads the rendered video as private with a scheduled publish time at least 24 hours ahead, marked made for kids, then adds the thumbnail, English captions and playlist entry, and reads the video back to verify the settings.
- Before publishing: the channel owner reviews the private video in YouTube Studio and on a phone. YouTube publishes it automatically at the scheduled time.
3. Endpoints and volume
About 8 uploads per week (3–4 episodes, 3–4 Shorts, 1 compilation), at most about 7 on a single day. The default quota is sufficient.
| Endpoint | Purpose | Calls |
|---|---|---|
channels.list (mine=true) | Confirm the authorized channel is Pip's Dino Diary; find its uploads playlist | 1 per run |
playlistItems.list | Check the 200 most recent uploads so the same video is never uploaded twice | 1–4 per video |
playlists.list (mine=true) | Find the season, Shorts and compilation playlists | 1 per run |
playlists.insert | Create a channel playlist the first time it is needed | Rare |
videos.insert | Resumable upload: private, publishAt, selfDeclaredMadeForKids: true, containsSyntheticMedia: false, category Education, English | 1 per video |
thumbnails.set | Custom thumbnail for episodes and compilations | 1 per video |
captions.insert | English caption track generated from the episode's own voice timing | 1 per video |
playlistItems.insert | Add the video to its playlist | 1 per video |
videos.list | Read back privacy status, schedule, made-for-kids setting, title and category | 1 per video per run |
The app does not call search.list, YouTube Analytics or Reporting APIs, comment endpoints, or any endpoint that reads other channels.
4. Data handling
- Only the authorized channel's own data is accessed; nothing about viewers, children or other channels.
- OAuth client credentials and the refresh token are stored only in the encrypted macOS Keychain of the owner's computer. Access tokens stay in memory.
- Local upload records hold only video IDs, timestamps, step status and the read-back result.
- No server, no database, no third-party sharing, no advertising, no derived metrics.
- Revocation and deletion: see the Privacy Policy, sections 7 and 8.
5. Safeguards
- The tool refuses to run if the authorized channel is not the configured Pip's Dino Diary channel.
- It refuses to upload a video whose file changed after quality control, or whose publish time is less than 24 hours away. It never uploads a video as public.
- Interrupted uploads resume from the stored upload session instead of starting a new upload; existing videos with the same title are skipped.
- Network errors and HTTP 429/5xx responses are retried with exponential backoff.
6. Compliance with YouTube API Services policies
- Uploads only original content owned by the channel; the owner certifies it complies with the Community Guidelines at each review.
- Every upload is labeled made for kids and uses the standard YouTube player experience; nothing is downloaded, scraped, modified or re-hosted.
- No independently calculated metrics and no aggregation of YouTube data.
- The Terms of Service bind users to the YouTube Terms of Service; the Privacy Policy links to the Google Privacy Policy and explains revocation.
7. Access for reviewers
The API client is not publicly accessible: it runs only on the channel owner's computer. Screenshots or a screen recording of the authorization flow and an upload run are available on request at ha.family.12091990@gmail.com. Published results can be seen on the Pip's Dino Diary channel.