YouTube-Internal-Clients/templates/readme_template.md

80 lines
3.3 KiB
Markdown
Raw Normal View History

# YouTube-Internal-Clients
A script that discovers hidden internal clients of the YouTube (Innertube) API using bruteforce methods. The script tries `clientNames` with a sequential ID enumeration and crosses them with known `clientVersions`.
The goal was to find a client that has no age restrictions implemented. With success.
- [Clients](#clients)
- [Example Request](#example-request)
- [Params](#params)
- [API Keys](#api-keys)
- [Contributors](#contributors)
## Clients
The script has found the following working clients:
%table%
## Example Request
```http
POST /youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8 HTTP/2
Host: www.youtube.com
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42
Accept: */*
Origin: https://www.youtube.com
Referer: https://www.youtube.com/
Accept-Encoding: gzip, deflate
Accept-Language: de,de-DE;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
{
"context": {
"client": {
"hl": "en",
"gl": "US",
"clientName": "WEB",
"clientVersion": "2.20220916.00.00",
"clientScreen": "WATCH",
"androidSdkVersion": 31
},
"thirdParty": {
"embedUrl": "https://www.youtube.com/"
}
},
"videoId": "yvyAQiiKIN8",
"playbackContext": {
"contentPlaybackContext": {
"signatureTimestamp": 19250
}
},
"racyCheckOk": true,
"contentCheckOk": true
}
```
## Params
| Param | Description |
|-------------|-------------|
| `embedUrl` | Required for some videos when using an embedded client. e.g. `WEB_EMBEDDED_PLAYER` |
| `signatureTimestamp` | Required for web-based clients for videos with copyright claims (Stream URLs must be deciphered)
| `racyCheckOk`, `contentCheckOk` | Skips content warnings.
| `androidSdkVersion` | Partially required for Android clients. A corresponding user agent must also be set. (e.g. `com.google.android.youtube/17.10.35 (Linux; U; Android 12; GB) gzip`) (see [issue](https://github.com/zerodytrash/YouTube-Internal-Clients/issues/3))
## API Keys
| Name | Key |
|---------------------------|-------------------------------------------|
| YouTube Web | `AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8` |
| YouTube Web Kids | `AIzaSyBbZV_fZ3an51sF-mvs5w37OqqbsTOzwtU` |
| YouTube Web Music | `AIzaSyC9XL3ZjWddXya6X74dJoCTL-WEYFDNX30` |
| YouTube Web Creator | `AIzaSyBUPetSUmoZL-OhlxA7wSac5XinrygCqMo` |
| YouTube Android | `AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w` |
| YouTube Android Music | `AIzaSyAOghZGza2MQSZkY_zfZ370N-PUdXEo8AI` |
| YouTube Android Embedded | `AIzaSyCjc_pVEDi4qsv5MtC2dMXzpIaDoRFLsxw` |
| YouTube Android Creator | `AIzaSyD_qjV8zaaUMehtLkrKFgVeSX_Iqbtyws8` |
| YouTube IOS | `AIzaSyB-63vPrdThhKuerbB2N_l7Kwwcxj6yUAc` |
| YouTube IOS Music | `AIzaSyBAETezhkwP0ZWA02RsqT1zu78Fpt0bC_s` |
## Contributors
- [@MinePlayersPE](https://github.com/MinePlayersPE) - Mapped some version numbers in a [Gist](https://gist.github.com/MinePlayersPE/9875f2051c2dfdeb090543b8c6a9f7e6), which helped a lot
- [@89z](https://github.com/89z) - Helped to find some missing clients and version numbers