|
### Upload Automation |
|
|
|
1. Authentication (client-secrets.json from Google API console) |
|
- Head to the Google API Console at https://console.cloud.google.com/ and create a project. |
|
- In the marketplace (search bar), find 'YouTube v3 API' and enable it. |
|
- After redirect, click on Oauth Screen and create. |
|
- Add google.com as the authorized domain. |
|
- Add scopes for the YouTube v3 API. |
|
- Add the channel's email as the test user (in most cases, the email the channel was registered with). |
|
- Create Credentials (OAuth Client ID) in the Credentials Menu and select Web App. |
|
- For Authorized Redirect URIs, use: |
|
1. http://localhost:8080 |
|
2. http://localhost:8080/ |
|
3. http://localhost:8090 |
|
4. http://localhost:8090/ |
|
- Finish up with downloading the .JSON file and put it inside this repository's directory. |
|
|
|
|
|
2. Oauth2.json (within the repo itself) |
|
|
|
- Once a valid `client_secrets.json` is present in the directory, run `python3 upload.py` and follow further instructions. After successful authentication, an `oauth2.json` file will be created inside the directory. |
|
|
|
|
|
> Note: You can avoid quota bottlenecks by stacking up projects in the google console and repeat steps before |
|
|
|
3. Automation |
|
|
|
Once valid oauth2 credentials exist in the directory you can let this run 100% on autopilot. |
|
|
|
- `ultra.py` is the main script to direct the video production pipeling |
|
- `upload.py` sets the backbone for youtube's v3 api to upload to YouTube without further authentification |
|
- `final_upload.py` combines the finsished product and uploads it to YouTube (title, description, tags get parsed automatically) |
|
|
|
Just craft your own bash script or use `automate.sh` |
|
|
|
|
|
### Upgrades |
|
- access YouTube as provider of video assets, surpassing stock footage by large |
|
- avoids bans by using download streams with PyTube |
|
- avoids YouTube v3 API's rate limit and auth |
|
- avoids Pexels hard rate limit |
|
|
|
### Features |
|
|
|
|
|
Inside `api_utils` functions provide utility for working with different APIs. Files: `image_api.py`, `pexels_api.py`, `youtube_api.py` and `eleven_api.py`. We added `youtube_api.py` to source video assets directly from YouTube. Feel free to modify `the _generateVideoUrls` function for the hierachy of video asset sources. |
|
|
|
- #### `search_videos_YouTube(query_string)` |
|
|
|
The search_videos_YouTube function takes a query string as input and searches for a video on YouTube based on that query. It returns the URL of the first search result if found, or None if no video is found. |
|
|
|
Integration of `shortGPT.api_utils.youtube_api`, which serves as an additional source for gathering footage based on the queried keyword. This is particularly useful when dealing with niche / comedy / meme topics where stock footage is not available. If nothing matches we backtrack to the pexels API. |
|
|