Quick overview
This workflow schedules a random daily upload of a Google Drive video as a YouTube Short, compressing large files via Cloudinary, generating a title and hashtags with Google Gemini, logging details to Airtable, and sending a Telegram notification after deleting the uploaded file.
How it works
- Runs on a schedule (or manually) and waits a random number of minutes to stagger posting time.
- Finds a video file in a specified Google Drive folder and checks whether its size exceeds 50 MB.
- If the file is large, uploads it to Cloudinary and generates a compressed Cloudinary download URL; otherwise it uses the original file.
- Uploads the chosen video to a Google Cloud Storage bucket to create a stable URL for analysis.
- Uses Google Gemini to analyze the video and generate a short title and up to 13 relevant hashtags, then formats the hashtags into comma-separated YouTube tags.
- Creates an Airtable record with the file name, the generated caption (title + hashtags), and the Google Cloud Storage video URL.
- Downloads the video binary from Google Drive, uploads it to YouTube with the generated title, description, and tags, waits briefly, deletes the source file from Google Drive, and sends a Telegram confirmation message.
Setup
- Connect credentials for Google Drive, YouTube OAuth2, Airtable Personal Access Token, Google Cloud Storage OAuth2, Google Gemini (PaLM) API, and Telegram (optional for notifications).
- Update the Google Drive folder ID used for searching videos and ensure it contains the files you want to upload.
- Configure the Cloudinary upload endpoint and
upload_preset (and ensure your Cloudinary account allows video uploads) for the compression path.
- Set your Google Cloud Storage bucket name and object name, and ensure the workflow has permission to create/overwrite that object.
- Select your Airtable base/table and confirm the fields used for logging (Name, Caption, Video URL) match your schema.
- Adjust the cron schedule, random delay range, YouTube category/region/privacy settings, and the Telegram chat ID/message text to fit your environment.