Automating video uploads

In my never-ending efforts to simplify/automate the process for my Church’s A/V behind its Live streams and slideshows. I have struggled with uploading to the various video hosting platforms for its sermons.

SermonAudio’s primary purpose is to host Sermons. However, as of 2019, they have added the streaming features we use to stream and re-distribute live streams to other platforms, like YouTube and Facebook. They also support trimming from the live stream and creating a new sermon upload with timestamps.

One of the only downsides to this service is the processing time on SermonAudio’s side and the upload itself from the laptop.

One way around this, I found recently, is FTP. FTP or File Transfer Protocol is an older standard of uploading files from one client computer to a host server. SermonAudio supports this method as a way of uploading, primarily due to its value in mass uploading sermons.

For example, if you are a newly added church to sermon audio and want to upload your whole archive. You can do so by uploading to your private server hosted on SermonAudio’s side. SermonAudio then (if it deems enough information has been provided with the file’s metadata) will create a new sermon “entry,” which will automatically fill in with the data you’ve provided, like Preacher, Date, and bible references for each sermon.

SermonAudio gets the corresponding sermon info by reviewing the file’s title and ID3 tags1. ID3 tags are also an “aging” technology primarily developed for the age of the iPods with mp3s and tagging information such as artists and albums to music that the iPod would read and display.

After doing a ton of searching for programs that both could upload to an FTP server and a program that could tag MP4s with the correct ID3 tags needed for SermonAudio.

I ended up choosing WinSCP and Kid3, both being excellent as they both support scripting and have reasonably extensive documentation. WinSCP acts as the file uploader, and Kid3 as the ID3 tagging. They are the perfect candidates for my use case.

Next, I wrote a batch script to create an interface combining tagging and uploading into a (hopefully) straightforward interface.

Having zero experience in the Windows CMD. I used a classic ChatGPT Claude and Stackoverflow pairing to figure out how the syntax works and to execute scripts through WinSCP and Kid3 using the CLI.

After writing a barebones script, it grabbed the latest file and used a basic selection menu using the num keys in a folder to fill in the rest of the relevant info like the Sermon title and Preacher selection.

Then, I fed my scrappy script through Claude to fix my syntax problems and variable declaring issues. And ended up with a surprisingly functional interactive uploader. We only need a sermon title and Preacher for it to upload, and a couple of hours later, SermonAudio will have the sermon entirely created.

Demo of my script

A few features I’d like to add down the road before sharing are a configuration pre-setup to fill in a church’s specific private FTP server and possibly switching to another method of script, either a simple React app or another interface that can better handle the scripting I want to do. With that, I want to add integration into SermonAudio’s API that will call the list of preachers and add it to the list.

Also, the script works to grab the newest modified file in a set folder. I’d rather have it compare the current date of the script, prompt the user for confirmation, and change the file to ensure that the wrong recordings are not accidentally uploaded.

  1. What is ID3 tagging? [PodBean] ↩︎

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *