This project automates the growth of a YouTube channel through the regular upload of short-form content using YouTube Shorts. By following the steps outlined below, you can set up a system to download, rename, shuffle, and schedule TikTok videos for upload to YouTube, ensuring that your channel remains active and engaging with minimal manual intervention.
- Automated Video Downloads: Use the Mass TikTok Video Downloader to download unwatermarked videos.
- Video Renaming: Automatically rename video files to remove unnecessary text and prepare them for upload.
- Video Shuffling: Randomly shuffle videos from different sources to create a diverse content schedule.
- Bulk Upload Preparation: Prepare and organize videos with fixed and filtered hashtags.
- Automated Scheduling: Schedule bulk uploads to YouTube at intervals of your choosing.
- Python 3.x installed on your system.
- A Google account with access to the YouTube channel you want to manage.
- Mass TikTok Video Downloader (or any other tool to download unwatermarked TikTok videos).
First, clone this repository to your local machine:
Run these commands:
git clone https://github.com/natecode880/YT-Shorts-Upload-Scheduler.git
cd YT-Shorts-Upload-Scheduler-
Download TikTok Videos: Use the Mass TikTok Video Downloader extension to download videos without watermarks. Download the extension here Mass Tiktok Video Downloader
- Open TikTok on your Google Chrome browserand Sign-in TikTok
- Select a TikTok profile of your choice and go to their profile homepage
- Once your extension is added, you should see a logo with 'Download All'
- Click this to download their videos
- Once downloaded zip file is extracted copy over those files to `profile_vids_1`
- Place videos from one TikTok profile in the `profile_vids_1` folder.
- If you have videos from another profile, place them in the `profile_vids_2` folder (or any other folder you wish to name).
- Ensure each profile has a folder for their own within the project workspace and name them accordingly. Do not forget to change the directory name in any programming file.
-
Set Up Google Cloud Credentials:
- Go to the Google Cloud Console.
- Create a new project and enable the YouTube Data API v3.
- Navigate to API & Services > Credentials and create new credentials.
- Select OAuth 2.0 Client ID and set the application type to Desktop App.
- Copy the provided `client_secret` and `client_id` into the `credentials.json` file in the root of your cloned repository.
To clean up the names of your video files:
-
Open the `rename_files.py` script and specify the directory containing your video files.
-
In your terminal, run:
python3 rename_files.py
- This will remove unnecessary text from the video filenames.
- Re-run the script until the filenames contain only the title and hashtags.
After renaming, shuffle the videos to prepare them for upload:
-
Open the `shuffle_videos.py` script.
-
In your terminal, run:
python3 shuffle_videos.py- The script will combine and shuffle videos from different folders into a new folder.
-
Open the `prepare_uploads.py` script.
-
Add as many fixed hashtags as needed. The script will also remove TikTok-specific hashtags like `#fyp`.
-
In your terminal, run:
python3 prepare_uploads.py- The processed videos will be copied to the `ready_uploads` folder.
Now that your videos are ready:
-
Open the `schedule_videos.py` script.
-
In your terminal, run:
python3 schedule_videos.py- Set your preferred upload interval (e.g., 4 hours or 240 minutes).
- You'll be redirected to sign in with your Google account linked to your YouTube channel.
- Grant the required permissions to allow the script to manage your YouTube uploads.
- Once permissions are granted, the script will automatically schedule all videos in the `ready_uploads` folder for upload according to your set interval.
-
Verify your scheduled uploads by checking your YouTube Studio.
If you'd like to contribute to this project, feel free to fork the repository and submit a pull request with your improvements or new features.
This project is licensed under the MIT License - see the LICENSE file for details.