Part 1: Using mk_screencast_label rather than adding screencast urls to blog posts after uploading
In this screencast I am setting up a cleaner and less fiddly system for uploading videos of screencasts and pairing them with blogposts. Instead of generating the names for screencast files after the fact when the screencasts are uploaded. We first generate the file names and then set the names of the uploaded video assets according to the generated names.
To generate a new screencast name, you run:
To publish a screencast, you then run
./gradesta-s.r.o.-commercial-stuff/interal-tooling/publish_screencasts <name-of-blogpost> <name-of-screencast-file.mkv>
You can have multiple screencasts per blogpost, you just list them as multiple arguments to the
./gradesta-s.r.o.-commercial-stuff/interal-tooling/publish_screencasts <name-of-blogpost> <name-of-screencast-file.mkv> <name-of-screencast-file-2.mkv>
publish_screencasts command uploads the screencasts to an EC2 spot instance with transcodes them from OBS’s native
mkv format to the web’s much smaller and smoother streaming
webm format. The ec2 spot instan the screen cast to DO spaces.
Part 2: Thinking about how to make this work in a team
So I’ve decided not to transcode the videos on the cloud afterall. I don’t have the time to set it up and its not strictly necessary. Instead, I will simply transcode locally using ffmpeg as I have done in the past. I still need to write a script that extracts the screencast id tags from the blog entries, does the transcoding locally, and uploads them to the CDN.
Part 3: Beginning to write the screencast management software in rust
Part 4: Looking at various ways of parsing the blogpost HTML
Part 5: Parsing out tags with nom
Part 6: Building the upload command dependency DAG and running the upload commands
I use the daggy package to build a dependeny DAG of commands that are run in parallel, in order of dependeny fulfillment, sort of similar to
Part 7: Moving the
mk_screencast_label script into the screencasts rust app
I start this section by turning the
mk_screencast_label script into a subcommand of the screencasts program.