Little Automation Tools in Python
This episode is different. Rather than seeing how far we can push Python to the edges of technology, we are diving in to the tiny Python applications that might never be released publicly and yet can transform our day to day lives with simple automation on an individual level.
We have 4 great guests with us here today: Rivers Cuomo, Jay Miller, Kim van Wyk, and Rusti Gregory. They will each share a couple of apps and the underlying packages they used to build them. I know this will be a super motivational episode for many of you. I hope that after listening, you'll transform something tedious and error-prone in your live to an instantaneous button click solution with Python.
Episode Deep Dive
Guests Introduction and Background
Rivers Cuomo is the singer and songwriter for the band Weezer. Alongside creating platinum records, he’s an avid Python enthusiast. Rivers uses Python for personal automation that helps him manage and query his extensive collection of music demos, generate targeted Spotify playlists, scrape scheduling details, and more. He has built tools like “Demolisher” for MP3 tagging filters and a script that curates daily new-music playlists.
Kim Van Wick is a reformed embedded software engineer from South Africa who has transitioned to DevOps work in financial services. She often uses Python to automate minor but repetitive tasks within her team’s workflow. Her typical solutions revolve around building compact scripts that interact with REST APIs (like Trello’s) and packaging them with user-friendly interfaces or command-line tools.
Jay Miller is a developer advocate and longtime Python community member who loves connecting with people. He works on projects involving search and data tooling, particularly around Elasticsearch. Jay builds dashboards and data-driven apps using Python, and he has created tools like a personal “diversity organizations” search engine that shows how Python can shine in the area of data ingestion, transformation, and automation.
Rusty Gregory is a former teacher turned data manager for a school district. He originally learned Python to help teach students how to code, but quickly discovered a passion for automating tedious data tasks in education. Rusty leverages tools like Selenium, Tabula, and Yagmail to streamline daily workflows such as uploading state reporting data and scraping information from the web.
What to Know If You’re New to Python
- Python’s simplicity makes it a great choice for writing small scripts to automate daily tasks—many of the examples here are under 200 lines of code.
- Even if you’re new, you can start with straightforward libraries like Requests or use higher-level tools (e.g., Selenium, PyWinAuto) for web or desktop automation.
- Familiarity with basic data structures (lists, dictionaries) plus a willingness to experiment in a REPL or a simple editor will help you follow along with the code examples.
- If you encounter new acronyms (API, CSV, etc.), don’t be intimidated—Python has well-documented packages to handle them, and each tool can be learned incrementally.
Key Points and Takeaways
Automation for Day-to-Day Tasks
Python isn’t just for big projects; it excels at “micro” or personal automation. Guests repeatedly stressed how even a 100-line script can save hours of manual work. Whether sending regular emails, extracting data from PDFs, or automating repetitive web steps, small Python apps can deliver huge returns.Extracting and Processing Data from PDFs
Multiple guests faced the challenge of receiving or scraping information locked away in PDFs. They used libraries like Tabula (Java-based) or PyMuPDF to turn PDF tables into machine-readable data, saving significant time. Many found it crucial to combine PDF processing with email or web-scraping libraries to integrate data into their final workflow.- Tools / Links:
Web Scraping and Form Interaction with Selenium
When data lives behind interactive websites or JavaScript-based pages, traditional HTML scrapers like Requests + Beautiful Soup may not cut it. Selenium lets you automate clicks, fill fields, handle file uploads, and more. Rusty relied on Selenium to deal with tricky school district reporting websites, while others used it for advanced tasks like auto-submitting forms at night.- Tools / Links:
- Selenium
- Beautiful Soup (for simpler pages)
- Tools / Links:
Controlling Desktop Apps with PyWinAuto
Python can automate desktop applications in the same way Selenium automates websites. Rivers used PyWinAuto to send keystrokes into a third-party MP3 tagging program. This approach is invaluable when older or proprietary software has no public API but must be scripted for repetitive tasks.Trello and Other REST API Integrations
Kim showed how small Python scripts can populate and maintain Trello boards, especially when you frequently create or update tasks. By using a direct REST API, a single command or minimal code can spin up multiple cards or reminders, freeing you from manual, repetitive steps.- Tools / Links:
Working with Google Sheets
Rivers and others found it powerful to combine Python scripts with Google Sheets data. Tuning how many items to pull from a playlist or controlling which items are banned can all reside in a spreadsheet while Python orchestrates the final action. This highlights how “hybrid” approaches—leveraging an existing user-friendly system with a Python backend—can be practical and efficient.Managing Media Files with ID3 and Audio Metadata
Rivers uses the ID3 Python library (plus FFmpeg under the covers) to tag thousands of demos with BPM, mood, and other features. This kind of personal automation ensures that complex categorization (like “danceable or not?”) is instantly searchable and reusable.Interactive CLI and GUI Helpers
Many guests prefer minimal code overhead, so they build purely on the command line. Others create user-friendly GUIs with libraries like Gooey or rumps (for macOS menu bar apps). These frameworks let you wrap a small script in a polished UI, making them accessible to non-developer teammates and friends.Taming Repetitive Tasks Through Scheduling
Python’s synergy with CRON jobs on Linux, or Launch Control on macOS, allows you to run scripts at set times. Whether sending an email, uploading empty files to reset an error condition, or grabbing the latest data from a website, scheduling transforms daily manual labor into set-it-and-forget-it solutions.Source Control Even for “One-Person” Projects
The panel encouraged saving code in Git, GitHub, or GitLab even if you’re the sole user. You get easy access to version history, offsite backup, and the freedom to experiment without worry. Rivers mentioned he was learning more about Git so he could track the many Python scripts that run his personal workflows.
Interesting Quotes and Stories
- Rivers on discovering Python: “I don’t know anybody who is into coding in my day-to-day life, so it’s great to get that human connection through podcasts and code communities.”
- Jay on small dashboards: “You don’t have to do it all in Python. If a tool already does 80% of the heavy lifting, just glue it together with a bit of Python. That’s the sweet spot.”
- Kim’s personal Trello automation: “It was only saving me ten minutes on a Monday morning, but that removed so much irritation. My script turned a dreaded weekly chore into a simple 20-second run.”
Key Definitions and Terms
- Selenium: A browser automation framework that allows Python scripts to mimic user interactions on websites, such as clicks, form entry, and navigation.
- GUI vs. CLI: GUI stands for graphical user interface, often featuring windows, buttons, and dialogs. CLI stands for command line interface, where users interact via typed commands.
- REST API: A web service following representational state transfer principles. It often serves JSON data for programmatic consumption.
- CRON Job: A time-based job scheduler in Unix-like operating systems, letting you run Python scripts automatically at set intervals.
Learning Resources
Below are a few courses from Talk Python Training to help you go deeper into Python and automation:
- Python for Absolute Beginners: Ideal if you’re brand-new to Python and want a thorough, hands-on approach.
- Up and Running with Git: A pragmatic introduction to source control. Since everyone recommended using Git to manage personal automation scripts, this course helps you get comfortable with version tracking.
Overall Takeaway
Small automation scripts in Python can make a surprisingly big impact on everyday tasks, whether you’re handling PDF-based data, uploading forms, tagging audio files, or building personal dashboards. These modest solutions often free up hours of repetitive work and help teams (or individuals) avoid errors. By combining libraries like Selenium, PyWinAuto, Yagmail, ID3, or even adding minimal GUIs with rumps or Gooey, you can tailor Python to precisely the level of automation you need—and have fun while doing it.
Links from the show
Rivers Cuomo: @RiversCuomo
Jay Miller: @kjaymiller
Kim van Wyk: @kim_vanwyk
Rusti Gregory: talkpython.fm
DiversityOrgs.Tech: diversityorgs.tech
MP3TAG App: mp3tag.de
Screenshot from Rivers' demo clip selection app: Timestamp @ youtube.com
pywinauto: pywinauto.readthedocs.io
pyperclip: pypi.org
ffmpeg: ffmpeg.org
selenium: selenium-python.readthedocs.io
Github actions: github.com/marketplace
RUMPS: pypi.org
py2app: pypi.org
PyMuPDF: pypi.org
Gooey: pypi.org
conduit podcast: relay.fm
feedparser: feedparser.readthedocs.io
awesome-python audio recommendations: awesome-python.com
foxdot live coding: toplap.org
spotipy: pypi.org
pipx: github.com
eyed3: eyed3.readthedocs.io
Youtube Live Stream: youtube.com
Episodes referenced at the beginning:
Bio-reactor: talkpython.fm
Nascar: talkpython.fm
F1: talkpython.fm
Episode transcripts: talkpython.fm
--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy