• Stars
    star
    223
  • Rank 178,458 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created over 1 year ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎥 Create youtube videos from a text prompt in seconds

🎬 text2youtube

Description

text2youtube uses cutting-edge AI power for YouTube automation, transforming simple text into engaging video content. Designed with YouTube automation and text-to-video technology in mind, this project streamlines the process of video content creation. It employs advanced AI for scenario generation, text-to-speech synthesis, and video compilation, making it an innovative tool in the field of text-to-video and YouTube automation.

Features

📜 Automated video script generation from prompt + reference information (like from another video script). We not only generate the script itself but also queries to Youtube/Storyblocks so that we can compose our video later from a set of clips we download from those queries.

🎙 Video voice generation with Bark. Bark is the best for naturally sounding voice at the moment, voice is one of the most important parts of a Youtube video and we did a bunch of experiments there. It runs quick on Google Colab with A100 GPU attached.

🎨 We have some basic code for stitching videos together with MoviePY but it works real slow, so for now we just export the clips from Storyblocks/Youtube and voice-over and stitch them together in Adobe Premier which takes seconds not minutes.

Demos

Open In Colab

Getting Started

  1. Install the required dependencies by running pip install -r requirements.txt.
  2. Install text-to-speech pip install git+https://github.com/suno-ai/bark.git
  3. Ensure the cookies.json file is present with necessary credentials for storyblocks.com website access.
  4. Ensure env.yaml file is present providing OpenAi API key and working directories
  5. Provide the necessary OpenAI prompt in prompts directory
  6. Provide the necessary content inputs in text files in SOURCE_DIR
  7. Run the main application file app.py to start the content creation process.
  8. The program will handle the rest, creating engaging videos with captivating voiceovers.

Project Structure

The project is organized into several modules:

  • src.audio: Contains audio-related functions for text-to-speech synthesis.
  • src.config: Stores configuration settings for the program.
  • src.logger: Implements logging functionality for the application.
  • src.openai_generation: Handles interactions with OpenAI's ChatGPT for scenario generation.
  • src.video_processing: Manages video downloads from YouTube or videoblocks.com.
  • src.utils: Contains utility functions for data processing and file handling.
  • src.video: Includes video-related functions for compilation and editing.

Results

While developing, we decided to focus on the finance niche and create a youtube channel on Economics/Countries topic. Here is the channel

We posted 1 video daily for about 20-25 days. In the end, we got around 8,000 views, 221 watch hours, and +70 subscribers, average watch time of the video was around 30%. The results of the experiment are pretty encouraging because the videos are not of very high quality and I expected worse.

What To Improve

  • It's hard to change the quality of naturally sounding voice generation at the moment but I think we can have a big boost in video generation itself. For example, finding a way to make high-quality text overlays on top of video clips would give a big advantage. Or parsing images from google and applying parallax (ken burns effect) on top
  • Improving video generation speed with MoviePY, so videos wouldn't have to be exported into adobe premier pro.
  • Allow option to create youtube shorts content, though there are plenty projects which already do that.

Dependencies

Contributors

License

This project is licensed under the MIT License. Feel free to use and modify it according to your needs.

Test and lint

More Repositories

1

repo2file

Dump selected files from your repo into single file to easily use in LLMs (Claude, Openai, etc..)
Python
76
star
2

twitch-stream-highlights-detection

Detect highlights from Twitch streams in real time with Machine Learning!
Python
45
star
3

workout-movement-counting

Counting number of movements during workout using Deep Learning and Computer Vision techniques
Jupyter Notebook
35
star
4

osic-pulmonary-fibrosis-progression

1st place solution of OSIC Pulmonary Fibrosis Progression competition at Kaggle
Jupyter Notebook
24
star
5

class-attendance-face-recognition

Web App for Class Attendance Identification With Face Recognition Techniques
CSS
9
star
6

deepfake-kaggle

Top 8% Solutions for the Kaggle DeepFake Detection Challenge
Jupyter Notebook
5
star
7

cloud-segmentation-unet

Cloud segmentation using Unet + DeconvNet blend
Jupyter Notebook
4
star
8

crossword-data-extraction

Crossword OCR data extraction with OpenCV, PyTorch and Pytesseract
Jupyter Notebook
3
star
9

pyUrlFinder

Finds all urls for subdomains and notifies about new ones via Telegram Bot
Python
2
star
10

idao-2021-quals

Qualifications round for IDAO 2021
Jupyter Notebook
2
star
11

idao2020-final

6th place solution for the International Data Analysis olympiad
Jupyter Notebook
2
star
12

telegram_categorization

4th place solution for Telegram Data Clustering Contest 2021
HTML
2
star
13

chest-pathology-identification

Implementation of the paper "Chest Pathology Identification using Deep Feature Selection with Non-Medical Training"
Jupyter Notebook
1
star
14

ads-eye-tracking

Eye tracking and emotion recognition for video adds
JavaScript
1
star