ToolExample
Jeoren's syntax: {{#github:readme.md|hackersanddesigners/hdsa2019doc}}
Karl's syntax: <tool user="USERNAME" repo="REPONAME" file="FILENAME" />
HDSA 2019 videodoc generator
Description
This script takes all the videos in a specified folder and uses parts of these videos to generate a random video of the specified length.
Installation
Not necessary but preferred. Create a environment for this project. I use conda:
conda create -n hdsa19doc python=3.7.3
conda activate hdsa19doc
Then install moviePy and GamePy (for sound or previews I think)
pip install moviepy gamepy
Input videos go in /input. Allowed types: .mov, .m4v, .mp4 Run the script:
python generate.py
optional arguments: -h, --help show this help message and exit -d DURATION, --duration DURATION Duration of output file -m MAX_SEG_LENGTH, --max_seg_length MAX_SEG_LENGTH Max segment length -o, --open Open the output file on finish. -t TEXTFILE, --textfile TEXTFILE Path to textfile. Overlay the video with lines from input text file. -b BRANDING, --branding BRANDING Path to video. A part of this video will be overlaid on the main composition. --title TITLE Path to video/gif. Title overlay. --logo LOGO Path to video/gif. Corner logo overlay.
Example:
python generate.py --duration 60 --max_seg_length 10 --open --textfile words.txt --branding branding/Short\ movie\ 16x9.mov --title images/opening.gif --font KronaOne
Links
- MoviePy Github: https://github.com/Zulko/moviepy
- MoviePy documentation: http://zulko.github.io/moviepy/
Other references:
Other interesting video libraries/languages:
- https://lang.video/
- http://www.vapoursynth.com/
To get MoviePy/imagemagick to recognize your fonts on Mac I had to modify this script a bit: https://github.com/testdouble/imagemagick-macos-font-setup
First install the script with: npm i -g imagemagick-macos-font-setup
Then:
#!/usr/bin/env bash
# Find our path via npm because BASH_SOURCE won't work under npm scripts… ಠ_ಠ
DIR="$(npm ls --global --parseable imagemagick-macos-font-setup)"
TYPE_GEN_SCRIPT="$DIR/vendor/imagemagick_type_gen"
echo "<----- Ensuring $HOME/.config/ImageMagick exists"
mkdir -p "$HOME/.config/ImageMagick"
echo "<----- Writing font definition to $HOME/.config/ImageMagick/type.xml"
find "$HOME/Library/Fonts" -type f -name '*.ttf' | "$TYPE_GEN_SCRIPT" -f - > "$HOME/.config/ImageMagick/type.xml"
Save the above as a .sh script and run it to create a Font list in ~/.config/ImageMagick/type.xml
To see which fonts ImageMagick recognizes: convert -list font
To-Do for Article Pages
- define a max height → expandable to full height
- cute styling ◕3◕
To-Do for Tools Page
- max height + width
- if #github embed in article then create same embed in tools
- internal link to article (only in tools page)