---
title: Automating simple tasks on Google Drive and Google Storage for the Gutenberg Changelog podcast
date: "2025-06-15"
author: "Birgit Pauli-Haack"
url: "https://icodeforapurpose.com/automating-simple-tasks-on-google-drive-and-google-storage-for-the-podcast-gutenberg-changelog/"
categories: ["AI Exercises", "Site News"]
---

This week, I succeeded again using AI to automate a few interconnected tasks. Gemini is a great buddy for that. Now I have command line tool, written in Python that does this:

### Set-up a new podcast episode on Google Drive:

- Create a new folder for the next episode
- Find the Run Down tempate in the podcast top folder
- Drop a copy of the Run Down template into the next episode’s folder.

### Publish the mp3 file on Google Storage

After the producer drops the final episode file in the episode’s folder this  command line script does the following

- Find the file
- Download the file
- Upload it to Google Cloud bucket
- Make it public
- Display the URL of the public file.

## Key Technologies and Features

When I look through the final list of the various touchpoints,  I probably wouldn’t have succeeded in creating this in a million years all by myself. With Gemini, I now have super powers ????.

- **Python:** The programming language used for both scripts.
- **Google Drive API & Google Cloud Storage API:** These are the services the scripts interact with.
- **OAuth 2.0:** Used for secure, user-based authentication for Google Drive operations.
- **Service Accounts:** Implemented for highly reliable and automated authentication for Google Cloud Storage uploads.
- **config.ini****:** A separate configuration file where you store important IDs (like your main “Gutenberg Changelog” folder ID, template name, and GCS bucket name) and other settings, making the scripts easy to customize without editing code.
- **Command-Line Arguments (****argparse****):** Allows you to pass episode details directly when running the scripts, making them efficient for automation.
- **Flexible File Finding:** The publish_episode.py script includes smart search capabilities to find folders and MP3s based on partial names and modified dates.
- **Temporary Files & Cleanup:** MP3s are downloaded to temporary locations and automatically cleaned up after upload.
- **Confirmation Prompt:** A safety step in publish_episode.py to confirm the selected MP3 before public upload.

It doesn’t sound like much, but I wanted to do this a long time. However the time it would have taken myself to figure out all the pieces, I probably could have handled 300 episodes manually. So only useing an AI made this part feasible for me.

Gemini helped me get all the google credentials right for Google Drive, and Google Storage. It’s not an easy thing.

```
source venv/bin/activate
    python3 publish_episode.py --episode 120
```

While going through the processes, and debugging all the permission errors one at a time, I realized something:   Who ever wrecked the [IAM service at Google](https://siliconangle.com/2025/06/12/identity-access-management-failure-google-cloud-causes-widespread-internet-service-disruptions/) and brought down half of the Internet, in the [Great Outage of the Internet of June 12, 2025](https://www.youtube.com/watch?v=s_YvYinzhqU), might not have worked with an AI. The AI was spot on with my problems. ????? 

I also played with [Sora](https://sora.chatgpt.com/) again to make a couple of Gibli Podcast Studo graphics.

![](https://icodeforapurpose.com/wp-content/uploads/2025/06/birgit-on-air4-1-1024x683.png)

![](https://icodeforapurpose.com/wp-content/uploads/2025/06/birgit-on-air3-1024x683.png)

![](https://icodeforapurpose.com/wp-content/uploads/2025/06/birgit-on-air2-1024x683.png)

![Birgit Pauli-Haack recording podcast](https://icodeforapurpose.com/wp-content/uploads/2025/06/birgit-on-air-1024x683.webp)

![](https://icodeforapurpose.com/wp-content/uploads/2025/06/WP_wapuu_gutenbergtimes_com-263x300.jpg)

## The latest episodes of the Gutenberg Changelog.

- [Gutenberg Changelog #130 – WordPress 7.0, Gutenberg 22.9 and 23.0, WordCamp Europe, Block Themes and More](https://gutenbergtimes.com/podcast/gutenberg-changelog-130/)April 26, 2026 by Birgit Pauli-Haack
- [Gutenberg Changelog #129 Artificial Intelligence, WordPress 7.0 and Gutenberg 22.8](https://gutenbergtimes.com/podcast/gutenberg-changelog-129/)March 29, 2026 by Birgit Pauli-Haack
- [Gutenberg Changelog #128 – Gutenberg 22.7 Version and Dev Notes for 7.0](https://gutenbergtimes.com/podcast/gutenberg-changelog-128-gutenberg-22-7-version-and-dev-notes-for-7-0/)March 15, 2026 by Birgit Pauli-Haack
- [Gutenberg Changelog #127 – WordPress 7.0 Beta and Gutenberg 22.6](https://gutenbergtimes.com/podcast/gutenberg-changelog-127-wordpress-7-0-beta/)March 1, 2026 by Gutenberg Changelog
- [Gutenberg Changelog #126 – Gutenberg Releases 22.3, 22.4, 22.5 and WordPress 7.0](https://gutenbergtimes.com/podcast/gutenberg-changelog-126-gutenberg-releases-22-3-22-4-22-5-and-wordpress-7-0/)February 15, 2026 by Gutenberg Changelog
- [Gutenberg Changelog #125 – WordPress 6.9, Gutenberg 22.1 and Gutenberg 22.2](https://gutenbergtimes.com/podcast/gutenberg-changelog-125-wordpress-6-9-gutenberg-22-1-and-gutenberg-22-2/)November 30, 2025 by Birgit Pauli-Haack

### Like this:
Like Loading…