HACKER Q&A
📣 plg

Software for producing terminal-based tutorials?


Prof here. Need to create online lectures for delivery this fall. Course is scientific computing. Plan is video of ipython shell and an editor plus audio of me blathering on. I use a Mac. Suggestions for software for the screen portion? Thx!

Edit: OBS Studio? Screenflow? Camtasia?


  👤 tpaschalis Accepted Answer ✓
Since you mentioned terminal-based tutorials, here's a terminal-based solution.

Most linux systems should include script [1] and scriptreplay[2], which should suit your needs. Here's a complete example of a recorded/replayed session[3].

On MacOS it should be as easy as `script -r ` to record and `script -p ` to replay. YMMV, but I like it for _small_ use-cases, as it puts simplicity and portability over features.

[1] http://man7.org/linux/man-pages/man1/script.1.html

[2] http://man7.org/linux/man-pages/man1/scriptreplay.1.html

[3] https://www.tecmint.com/record-and-replay-linux-terminal-ses...


👤 nickjj
I've created around 400+ video tutorials with Camtasia, it works well enough and IMO is one of the best all-in-1 screencast recording and editing tools you'll find if you're on Windows or MacOS.

Lately I've been using OBS for recording because I want to use native Linux and Camtasia does not run on Linux. Using a Windows / Mac VM won't work if you want to record your Linux environment.

Then I use DaVanci Resolve to do the video editing part. It hasn't been smooth sailing though. Lots of issues with exporting mp4s when it comes to having audio artifacts that never appeared with Camtasia. It means having to do extra work to render the audio separately as a wave file and stitch together the video with it as an mp4 with a different tool.

I'd pay almost anything within reason for Camtasia on Linux. I tried asking the developers a few times. Even offered to fund the development myself or crowd source the funding with Kickstarter. They don't seem to have any intentions on ever supporting Linux.

The next best thing for screencast video editing is Davinci Resolve IMO. It works on Windows, MacOS and most distros of Linux so I'm doing everything I can to migrate to that tool. In some ways it's a lot better than Camtasia too. It's just super finicky with hardware.


👤 thdn
Never used it, but saw it on a couple of tutorials, https://asciinema.org

👤 photonemitter
I like OBS as it allows a good amount of customization.

Also allows you to set up your layout for the video-windows, with presets/templates, iirc.

Recommend you have a second screen open on the obs, though, so you can easily manage what’s up or not.

Would also be a good idea to start experimenting early to figure out some good layouts etc depending on how you want to present the material.


👤 mmoez
By default, macOS ships with a Screenshot utility (Applications > Utilities > Screenshot).

It can capture PNG files or record the whole screen or a portion of it and generate a video file from the whole session.

https://support.apple.com/guide/mac-help/take-screenshots-or...


👤 bobwaycott
If you want to stick with what’s on your Mac, you can screen record with QuickTime. If you need to speak during the recording, there’s an option for capturing audio while you record the screen. Alternatively, you can record the screen with QuickTime, import the video into iMovie, then add an audio track after the fact. This can be a particularly nice approach if you’re good at scripting your way through a video, plus it allows you the ability to add some freeze-frames when you need more time to explain than you have video.

👤 egsec
In addition to recording, you may want to make some stills for download or for custom formatting, highlighting, etc. You can use Carbon - https://carbon.now.sh/ - which will do some auto formatting, but allow you to override. This is a bit better than just screen-shooting the IDE.

You may not want to just make one big long video - its hard to follow and then find specific key points in time. Unless you are showing a lot of interactive things and just input/output, copy and paste-able code is going to be easier for students to see and adopt. You may want more of a long tutorial document with small videos where it makes sense or you want to show something interactive.

In addition, its a lot more editing if you want something good without mistakes, etc (there are a lot of videos from big name schools online where professors do not correct themselves and just post the single unedited take). I would actually use video selectively. If you want students to easily run something you may want to utilize one of the many only IDEs that can execute code.

Depending on the tools available from your school or what you can find online you can make something very useful and interactive or you could try to use something like https://www.adaptlearning.org/


👤 jonchurch_
I record with Screenflow. It is much simpler (read: slimmer feature set) than Camtasia as well as cheaper.

For as straightforward an application as recording a screen w/ voiceover, there aren't many bad options. Personally, what I like about Screenflow is that it is easy to record straight to a timeline. I.E. I do a take, it saves to the timeline in Screenflow, I cut out the pauses/mistakes/dead air, or split a clip to redo audio or video for a particular section. Once satisfied, I move onto recording the next chunk, it's quite streamlined compared to recording in one app and then editing in another.

Egghead.io has a few free resources for their instructors, I'd recommend checking them out for some practical tips.

https://egghead.io/courses/record-badass-screencasts-for-egg...

https://egghead.io/articles/recording-a-great-coding-screenc...


👤 haar
I've given some live showcasing/presentations with the help of https://github.com/paxtonhare/demo-magic to smooth over parts that are either time consuming, or not error-proof (e.g. networking and such). It might be useful here as well?

👤 ha-ckernews

👤 sixhobbits
I've used OBS Studio and Camtasia. They both get the job done, but Camtasia has some nice features that I would miss if I went back to OBS (unless OBS has evolved a lot since 2014).

+1 for Camtasia


👤 lanna
Shameless plug, and a little tangential to your question, but I created an interactive training/presentation tool based on the Scala REPL: https://github.com/marconilanna/REPLesent

I believed someone created a Python port inspired by it.


👤 schwartzworld
https://nodeschool.io/building-workshops.html

I think it's mostly specific to node, but I found this to be a great format for learning


👤 whoatethedonut
Streamlabs OBS is amazing, it looks like they just had a release for Mac!

https://blog.streamlabs.com/streamlabs-is-live-on-mac-ff543b...


👤 tomatohs
For code + video, check out Paircast: http://paircast.io. Unfortunately no terminal support yet.

👤 _448
VideoLan has a screen capture function. You can capture terminal window with VLC.

👤 vira28
I have using loom and its working fine so far. Very easy to share.

👤 champagnepapi
hmmm can't you screen record using Quicktime? Although, if this is for a lecture, you might have to overlay a layer of audio on top. But i'm not 100% sure about this, best of luck.

👤 mister_hn
ncurses library for sure!

👤 coherentpony
Do you need audio?