RedditVideoMaker
A program that creates Reddit videos from start to finish, including taking screenshots, generating an audio track, adding an outro sequence, and uploading the final video to YouTube and adding a title, description, thumbnail, and tags.
Once started, this program can be run as a service in the background with NO NEED for human intervention! (currently, this feature only supports r/AskReddit)
Installation
Step 1
Download the Daniel TTS voice (~90 MB) from this link and install it in the default directory.
Step 2
Download the RedditVideoMaker Executable JAR (~50MB). If you are having any problems with the JAR, execute with java -jar RedditVideoMaker.jar
and check the output for error messages.
Step 3
Download the Zipped RVM Repository and unzip it. Remember the location of the folder inside the master directory called "library_folder_template" for later.
Step 4
Create an API key for the YouTube Data API v3:
- Navigate to https://console.developers.google.com/apis/credentials
- Sign in with your Google account (if you are already signed in, skip this step)
- Create a project or use an existing one
- If you see a message that says "To view this page, select a project", click the "Create" button on the right.
- If not, you must already have created a project. You can make a new project if you want, or use this existing project.
- Click "Create Credentials"
- Click "OAuth Client ID"
- Select "Other" for "Application Type"
- Click "Create"
- If a dialog titled "OAuth Client" pops up, click "OK"
- Find the name of the credentials you just created in the list and click the Download icon on the right
- Rename the file to "client_secrets.json"
- Navigate to the library folder you just downloaded and extracted.
- Place the file in the library folder template in the
[library folder root]/bin
folder. - Navigate to https://console.developers.google.com/apis/library/youtube.googleapis.com?id=125bab65-cfb6-4f25-9826-4dcc309bc508
- Click "Enable"
Step 5
- Add background videos to the
backgrounds
folder inside the downloaded library folder template.- Background videos are not repeated, so make sure they are about 30 minutes long! If the background file is not long enough, the background video will play behind the screenshot until it ends, and then the background will be black.
- Add background music tracks to the
audio
folder inside the downloaded library folder template.- Background music files should be named as it will show up in the music credits. For example,
New Land by ALBIS.mp3
shows up in the music credits asNew Land by ALBIS
. - All formats accepted by FFmpeg are allowed, but all audio files must be the same format and codec.
- There should be enough music in this folder to last about 30 minutes (enough to accommodate longer videos) if all of the files were to be played one after another.
- Background music files should be named as it will show up in the music credits. For example,
Step 6
- Launch the JAR and it will start up a server at
localhost:8080
- Go to that address or the address it says in the program's log
- Go to any reddit post using the server
- Click "Add" on any post that you want to be read
- Select from the radio buttons if this is the first or last post in the video (or both, meaning this is the only post)
- Change the text shown in the thumbnail (use < and > to highlight text)
- If this post if the one to be featured in the video title, check that box.
- Click "Send"
Supported Subreddits
These subreddits are supported, but many, many more may be supported (but they aren't tested).
- r/AskReddit
- r/ProRevenge
- r/MaliciousCompliance
- r/NuclearRevenge
- r/PettyRevenge
- r/tifu
- r/AMA
- r/IAmA
- r/TalesFromRetail
- r/TalesFromTechSupport
- r/EntitledParents
- r/StoriesAboutKevin
- r/TalesFromTheFrontDesk
All text-based subreddits are supported. Images don't really work yet (if you want image support, you can work on it! see the Contributing section below).
Sources
- You can look at or download the sources for the program in the GitHub repo.
- Compiled sources are located at
out/production/RedditVideoMaker-Desktop/
- A compiled JAR can be found at
out/artifacts/RedditVideoMaker_Desktop_jar/RedditVideoMaker-Desktop.jar
. This JAR is directly executable and can be added to the startup folder on Windows. (If you want RVM to start on startup, add a batch file to the startup folder with the contentsjava -jar path/to/RVM.jar
so that you can see the console output in caase of an error)
Contributing
Contributors
- FluxCapacitor
- Add your name here! All contributions, big or small, are welcome! Just make a pull request!
Code Style
You can download my code style settings from the EditorConfig files located in each repository (source links above). For PRs to be merged, it would be nice if you could follow my code style settings! Also, please consider taking a look at the TODO section below, it would really be appreciated if someone helped me implement these features.
Testing and OS Support
This program was only tested on Windows 10 in my environment. Possibly others could test on other operating systems in the future, but some of the OS-specific config must be changed.
TODO
- Make background videos repeat if necessary
- Ability to set TTS audio to be spoken for images
- Ability to narrate the text in screenshots instead of using text to speech (like a voice recorder)
- Ability to change TTS voice
- Revamped options GUI
- Support for auto-generating videos for subreddits other than
r/AskReddit
. - Support the new Reddit experience
- Make Reddit awards (gold, silver, etc.) display properly instead of removing them
- Possibly support reading greentexts
Open Source and Free Software
Thanks to the authors of all of these programs/APIs! They've really helped me develop RVM quickly and easily.
- Balabolka (Freeware, but I can't find the sources anywhere)
- YouTube Data API (Closed-source)
- FFmpeg and FFprobe (Open-source)
- Jaffree (Open-source)
- Selenium WebDriver (Open-source, specific browsers may not be open-source)