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

.vscode Removed unnecessary VS Code workspace 6 years ago
progress_bar Removed unnecessary main body blocks and #! lines (closes #31 for now). 7 years ago
segment Removed unnecessary main body blocks and #! lines (closes #31 for now). 7 years ago
shell_command Forced all arguments to string for processing 9 days ago
test β€’ Added test config files for parser. 9 years ago
.envrc Added nix-direnv flake (but app borked πŸ™) 10 days ago
.gitignore Added nix-direnv flake (but app borked πŸ™) 10 days ago
README.md Updated software requirements 6 years ago
config_help.md β€’ Minor formatting change. 9 years ago
config_parser.py Fixed bug in output from parser test. 7 years ago
flake.lock Added nix-direnv flake (but app borked πŸ™) 10 days ago
flake.nix Added nix-direnv flake (but app borked πŸ™) 10 days ago
globals.py Converted os.path to pathlib and all #! lines to python3 (ref #32). 7 years ago
original_design_notes.txt Added original design notes 4 years ago
process_podcast.py Updated software requirements 6 years ago
requirements.txt Added a development virtualenv and documented requirements. 7 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.