Python script for processing and assembling a podcast from various input sources

Nigel Stanger authored on 23 Aug 2021
.vscode Removed unnecessary VS Code workspace 4 years ago
progress_bar Removed unnecessary main body blocks and #! lines (closes #31 for now). 5 years ago
segment Removed unnecessary main body blocks and #! lines (closes #31 for now). 5 years ago
shell_command Corrected value of dynadnorm b option 4 years ago
test • Added test config files for parser. 7 years ago
.gitignore • Ignored .pyc files. 7 years ago
README.md Updated software requirements 4 years ago
config_help.md • Minor formatting change. 7 years ago
config_parser.py Fixed bug in output from parser test. 5 years ago
globals.py Converted os.path to pathlib and all #! lines to python3 (ref #32). 5 years ago
original_design_notes.txt Added original design notes 2 years ago
process_podcast.py Updated software requirements 4 years ago
requirements.txt Added a development virtualenv and documented requirements. 5 years ago
README.md

process_podcast

This script enables you to assemble an ingterated podcast of a lecture or class from several different inputs, including:

  • recorded audio
  • screen recordings
  • other video
  • JPEG images representing individual lecture slides
  • a PDF containing the lecture slides

Audio and video may come from the same file, or from separate files. You also have the ability to insert small “joiner” sections of audio and video between major “segments” of the podcast. You can even configure the “joiner” so that it repeats the last frame of the previous segment for the desired duration.

For help on command line options: process_podcast.py --help.

For help on the podcast configuration file format, see the [configuration file documentation][].

Requirements

  • FFmpeg.
  • ImageMagick.
  • Python 3.5 or later with the following modules:
    • pyparsing; Linux: pip install pyparsing, easy_install pyparsing, or whatever other method you normally use to install Python modules; macOS (MacPorts): port install py-parsing. Also see the [pyparsing documentation][].
    • pexpect; Linux: pip install pexpect, easy_install pexpect, or whatever other method you normally use to install Python modules; macOS (MacPorts): port install py-pexpect. Also see the [pexpect documentation][].
    • There is a requirements.txt that you can use to quickly install all the required modules.

Testing

Run python -m unittest at the root level of the project to run all unit tests.