Programming screencasts are a popular way to teach programming and demo tools. Typically people will open up their favorite editor and record themselves tapping away. But this has a few problems. A good setup for coding isn't necessarily a good setup for video -- with text too small, a window too big, or too many distractions. Typing code in live means mistakes, which means more time editing or confusion for the people watching.
DiffCast eliminates that, automatically generating screencasts from Python source files you prepare ahead of time.
DiffCast is written in Python with PyQt6. Source code available on Github
Given the following Python source files:
- demo1.py
- demo2.py
- demo3.py
- demo4.py
print('Hello, world!')
name = input('What is your name?\n')
print(f'Hello, {name}!')
friends = ['Emelia', 'Jack', 'Bernardina', 'Jaap']
name = input('What is your name?\n')
if name in friends:
print(f'Hello, {name}!')
else:
print("I don't know you.")
friends = ['Emelia', 'Jack', 'Bernardina', 'Jaap']
while True:
name = input('What is your name?\n')
if name in friends:
print(f'Hello, {name}!')
else:
print("I don't know you.")
friends.append(name)
DiffCast will generate the following screencast (editor can be captured separately).
The editor view is configured to be easily readable in video, without messing with your IDE settings. Edits happen at a regular speed, without mistakes, making them easy to follow. Each diffcast is completely reproducible, with the same files producing the same output every time. You can set defined window sizes, or remove the titlebar to record.
Designed for creating reproducible tutoring examples, library demos or demonstrating code to a class. You can also step forwards and backwards through each file manually, using the control panel.
Finally, you can write out edits to a another file, and show the file location in a file listing for context. Run the intermediate files to demonstrate the effect of the changes.
DiffCast is open source (GPL licensed) & free to use. For bug reports, feature requests see the Github project.
To support developers in [[ countryRegion ]] I give a [[ localizedDiscount[couponCode] ]]% discount on all books and courses.
[[ activeDiscount.description ]] I'm giving a [[ activeDiscount.discount ]]% discount on all books and courses.