End-to-end automated Reddit YouTube video bot that scrapes content, generates formatted videos, and uploads them to a channel.
Created by Daniel G. Wilson, Chris Castaneda, Edward Guardado, and NOT Arjun N (lame).
README last updated on 2019-09-14
This project is inspired by the recent and high-volume influx of YouTube videos of computer-narrated Ask Reddit posts.
Examples:
These videos attract hundreds of thousands of views, and consist of little more than existing Reddit content, computer-narration, and simple transitions.
The motivation behind this project was the observation that this (surprisingly popular) format seems rather easy to automate—even completely.
The goals of this project are to:
- Prove the feasibility of automated video generation and video content creation from existing online / reddit content.
- Create a robust system that can generate such videos at sufficiently high quality to compete with existing channels in the genre.
- Construct an end-to-end system that could feasibly run autonomously for an indefinite period.
- Produce an end product that requires minimal / zero human direction to operate.
The following topics are expressly out of scope and are therefore discussed minimally, if at all.
- We can generate high-quality videos based on Reddit content automatically.
- We generate high-quality audio narration for 10 randomly selected Reddit posts.
- We generate video containing this audio and the Reddit posts.
- We generate 10 composite videos each containing 10 randomly selected Reddit posts.
- We generate 10 such cohesive composite videos with titles, transitions, and additional elements such that they could have been created by a human professional.
- We can scrape popular Reddit content and format it for video generation automatically.
- We scrape 10 randomly selected Reddit posts from a target subreddit.
- We format 10 scraped Reddit posts such that they are ready for video generation.
- We scrape 10 heuristically selected Reddit posts from a target subreddit and format them.
- We scrape 10 heuristically selected Reddit posts from a heuristically selected subreddit and format them.
- We can automatically orchestrate content scraping, video generation, video upload, and channel management without additional human intervention.
- We set up infrastructure such that content generation and orchestration can take place on some cloud hosting provider (vs. locally during development).
- We automate Reddit scraping such that we have 10 high quality and formatted content chunks of 10 reddit posts per day.
- We automate video generation for 10 videos per day.
- We automate video uploading to a YouTube channel for 10 videos per day.
- We automate telemetry, messaging, alerts, etc. such that we never have to "babysit" the service.
# | Title | Description | Priority | Notes |
---|---|---|---|---|
1 | Generate audio | Given some text, generate audio narration. | 1 | |
2 | Generate video | Given some audio, generate video containing arbitrary content of the correct length containing the audio. | 1 | |
3 | Video content | Given some audio and text, generate video content displaying the text (e.g. of the Reddit post) | 1 | |
4 | Text animation | Given some text, generate video displaying the text and animating it such that it highlights or appears in sync with an audio narration. | 3 | |
5 | Sequencing | Given 10 sets of text, generate a single sequenced video containing 10 sub-videos for each text piece. | 1 | |
6 | Titling | Given some 10 sets of text and a category/title, generate titles (optionally with design, animation, narration) such that the topic is introduced. | 1 | |
7 | "Chrome" | Given some video sequence, generate a final sequence with additional "chrome"—i.e. sound effects, graphics, additional animation, transitions, etc. | 3 | |
8 | End-card | Given some sequence on a category/topic, generate a channel info end-card containing "Please like and subscribe, etc." and the channel info (dynamic). | 2 | |
9 | End-card links | Given some end-card and target videos, add spaces for sub-videos such that they can be linked to and recommended (so that people keep watching the channel's content). | 3 | |
10 | Post format | Given some Reddit post text, author, etc., generate video content that is formatted to look like a Reddit post. | 2 | |
11 | Long posts | Given some very long Reddit post text, generate video content such that it is intelligently paginated / split across multiple cuts. | 2 | |
12 | Comment chains | Given some Reddit post text and its accompanying comment chain, generate video content such that it is intelligently paginated / split across multiple cuts. | 3 | |
13 | Thumbnail | Generate a thumbnail given misc. content | 1 | |
14 | Description | Generate a YouTube video description given misc. content | 1 | |
15 | Tags | Generate YouTube video tags given misc. content | 1 | |
16 | Censor profanity | Remove profanity s.t. videos / channel are not de-monetized | 2 |
# | Title | Description | Priority | Notes |
---|---|---|---|---|
1 | Post content | Scrape some arbitrary Reddit post's content. | 1 | |
2 | Post author | Scrape some arbitrary Reddit post's author (username). | 1 | |
3 | Post comments | Scrape some arbitrary Reddit post's comment chain. | 3 | |
4 | Subreddit top posts | Scrape content, author, and comment chains given some target subreddit | 1 |
# | Title | Description | Priority | Notes |
---|
# | Title | Description | Priority | Notes |
---|