WAI
Status Update
Comments
sn...@google.com <sn...@google.com>
sn...@google.com <sn...@google.com> #2
Hi, thanks for reaching out to us! Unfortunately, this API endpoint is only limited use that's the reason you're seeing a 403 error.
In order to use the Channel membership API endpoint, you need to reach out to your YouTube representative or Partner Manager if you have one to request access. Only they can request access on behalf of the creators.
jo...@gmail.com <jo...@gmail.com> #3
Comment has been deleted.
so...@gmail.com <so...@gmail.com> #4
Raphael said
```
I highly recommend responding to them first to let them know you already have already enabled the main Channel Membership feature on your channel.
```
```
I highly recommend responding to them first to let them know you already have already enabled the main Channel Membership feature on your channel.
```
Description
I have successfully completed OAuth verification and have been granted access to the youtube.upload scope. Additionally, I noticed that the videos.insert endpoint only consumes 100 quota points per request, whereas the official documentation states that it should consume 1600 quota points (
I suspect that API-uploaded videos are being treated differently by YouTube's algorithm, leading to poor discoverability and viewership which is not stated anywhere in the documentation.
- API request with parameters used:
{
"Timestamp": "2025-02-05T18:24:24.6586902Z",
"Type": "API Request",
"Data": {
"RequestUrl": "
"RequestPayload": {
"AgeGating": null,
"ContentDetails": null,
"ETag": null,
"FileDetails": null,
"Id": null,
"Kind": null,
"LiveStreamingDetails": null,
"Localizations": null,
"MonetizationDetails": null,
"PaidProductPlacementDetails": null,
"Player": null,
"ProcessingDetails": null,
"ProjectDetails": null,
"RecordingDetails": null,
"Snippet": {
"CategoryId": "24",
"ChannelId": null,
"ChannelTitle": null,
"DefaultAudioLanguage": null,
"DefaultLanguage": null,
"Description": "ludwig",
"LiveBroadcastContent": null,
"Localized": null,
"PublishedAtRaw": null,
"PublishedAtDateTimeOffset": null,
"PublishedAt": null,
"Tags": [
"Shorts",
"Twitch",
"ludwig"
],
"Thumbnails": null,
"Title": "Ludwig gets outplayed #shorts #twitch #ludwig",
"ETag": null
},
"Statistics": null,
"Status": {
"ContainsSyntheticMedia": null,
"Embeddable": null,
"FailureReason": null,
"License": null,
"MadeForKids": false,
"PrivacyStatus": "public",
"PublicStatsViewable": null,
"PublishAtRaw": null,
"PublishAtDateTimeOffset": null,
"PublishAt": null,
"RejectionReason": null,
"SelfDeclaredMadeForKids": false,
"UploadStatus": null,
"ETag": null
},
"Suggestions": null,
"TopicDetails": null
}
}
}
- JSON Response:
{
"Timestamp": "2025-02-05T18:24:28.1610674Z",
"Type": "API Response",
"Data": {
"AgeGating": null,
"ContentDetails": null,
"ETag": "Qz8g-1tnSOsarJyl7HlNJiRtNYc",
"FileDetails": null,
"Id": "tOswNuPlP_U",
"Kind": "youtube#video",
"LiveStreamingDetails": null,
"Localizations": null,
"MonetizationDetails": null,
"PaidProductPlacementDetails": null,
"Player": null,
"ProcessingDetails": null,
"ProjectDetails": null,
"RecordingDetails": null,
"Snippet": {
"CategoryId": "24",
"ChannelId": "UC-gWFQa12esGIrxJxdcOwLw",
"ChannelTitle": "Quality Twitch Clips",
"DefaultAudioLanguage": null,
"DefaultLanguage": null,
"Description": "ludwig",
"LiveBroadcastContent": "none",
"Localized": {
"Description": "ludwig",
"Title": "Ludwig gets outplayed #shorts #twitch #ludwig",
"ETag": null
},
"PublishedAtRaw": "2025-02-05T18:24:25Z",
"PublishedAtDateTimeOffset": "2025-02-05T18:24:25+00:00",
"PublishedAt": "2025-02-05T19:24:25+01:00",
"Tags": [
"Shorts",
"Twitch",
"ludwig"
],
"Thumbnails": {
"Default__": {
"Height": 90,
"Url": "
"Width": 120,
"ETag": null
},
"High": {
"Height": 360,
"Url": "
"Width": 480,
"ETag": null
},
"Maxres": null,
"Medium": {
"Height": 180,
"Url": "
"Width": 320,
"ETag": null
},
"Standard": null,
"ETag": null
},
"Title": "Ludwig gets outplayed #shorts #twitch #ludwig",
"ETag": null
},
"Statistics": null,
"Status": {
"ContainsSyntheticMedia": null,
"Embeddable": true,
"FailureReason": null,
"License": "youtube",
"MadeForKids": null,
"PrivacyStatus": "public",
"PublicStatsViewable": true,
"PublishAtRaw": null,
"PublishAtDateTimeOffset": null,
"PublishAt": null,
"RejectionReason": null,
"SelfDeclaredMadeForKids": false,
"UploadStatus": "uploaded",
"ETag": null
},
"Suggestions": null,
"TopicDetails": null
}
}
- Expected result
1: The API-uploaded Shorts should receive similar visibility, reach, and engagement as manually uploaded Shorts.
2: The videos.insert endpoint should consume 1600 quota points per request, as stated in the official documentation, instead of 100 quota points.
- Is it 100% reproducible?
Yes, the issue occurs every single time I upload a Short via the API. All manually uploaded videos gain a couple of hundred views while API-uploaded videos struggle to break the ten-views mark. 100 quota points are used instead of the stated 1600 quota points in the documentation.
- Reproducible API explorer link