
Check out these examples of videos generated using QuickClipAI
(by CurioBurstz):
QuickClipAI
is a tool that uses AI to automatically create engaging YouTube shorts and videos from text inputs.
Sit back and relax while QuickClipAI boosts your productivity!
Introduction • Features • Installation • Usage • Credits • License
👋 This is a very early release and lots more documentation and functionality is currently being added.
Welcome to the QuickClipAI Project! This project aims to provide an efficient and powerful AI-driven tool for generating engaging YouTube shorts and videos automatically. Whether you're a content creator, marketer, or just someone looking to boost your online presence, QuickClipAI offers a seamless and creative video generation solution.
- AI-Driven Content Generation: Leverages advanced AI algorithms to automatically create engaging YouTube shorts and videos from text inputs.
- Customizable Video Settings: Allows users to adjust various parameters such as length, style, and theme to suit their content needs.
- High-Quality Output: Ensures videos are generated with professional quality, ready for upload to YouTube or other platforms.
- Clone the Repository: Clone the repository to your local machine using:
git clone https://github.com/AppSolves/QuickClipAI.git
- Install Dependencies: Navigate to the root directory and install the required libraries using:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Install
Fooocus
: Download the latest release of Fooocus for your operating system and specify it's path withinmain.py
before any other function calls:
⚠️ IMPORTANT: This project was developed and tested usingFooocus
version2.5.5
. If you encounter any issues with other versions, please install the specified version.
# Running this will save the path to the `config/config.json` file.
# Once the path is saved, you can and should run the script without those lines.
settings_manager = SettingsManager()
settings_manager.set(
"fooocus_path",
{
"interpreter": r"path\to\fooocus\embeded\python\interpreter", # Can be 'python3' on Unix systems, while Windows systems require the full path to the embedded interpreter.
"script": r"path\to\fooocus\launch.py",
},
encrypt=False, # You can set this to True if you want to encrypt sensitive data.
)
-
Install
ffmpeg
: Download and installffmpeg
from the official website. Make sure to add the binary to your system'sPATH
variable. -
Install
ImageMagick
: Download and installImageMagick
from the official website as well. Make sure to tick both boxes that
- add the binary to your system's
PATH
variable. - install the legacy utilities (e.g.
convert.exe
).
- Install
Chrome
:Chrome
andChromeDriver
are necessary if you would like to use background music from Bensound (refer to theBensoundBackgroundMusic
class) or make automatic uploads to Instagram and TikTok. Make sure to download the latest version of Chrome and the ChromeDriver respectively. Make sure to add theChromeDriver
binary to your system'sPATH
variable.
- You need to obtain an API key from ElevenLabs (they have a free plan) to be able to generate automatic voiceovers. You can set this key in the same
.env
file as above by adding theELEVENLABS_API_KEY
key or by setting it using theSettingsManager
class:
# Again, you may remove these lines after executing the script once.
settings_manager = SettingsManager()
settings_manager.set(
"elevenlabs_api_key",
"<your_api_key>",
encrypt=True, # Encryption is recommended for sensitive data.
)
You can also set the API key using the command line interface (CLI
) as follows (better for shorter data):
python main.py settings set "elevenlabs_api_key" "<your_api_key>" -e
- In order to generate text, the
G4FAPI
usesg4f.Provider.OpenaiChat
as the default provider. You can change this by passing a custom provider to theG4FAPI
class. The setup of.har
files is necessary for authentication. You can set these files in theconfig/har_and_cookies
directory and theG4FAPI
class will automatically use them:
⚠️ IMPORTANT: In order to function correctly, some providers, e.g. "you.com", require cookies to be set. You can set these cookies by generating a.har
file for the provider's website using your browser's developer tools and placing it in theconfig/har_and_cookies
directory. IfENCRYPTION_KEY
is set, the.har
file will be encrypted when the program is run for the first time and only decrypted during runtime.
Source: Official gpt4free repository. Example for chatgpt.com
and g4f.Provider.OpenaiChat
respectively:
To utilize the OpenaiChat provider, a .har file is required from https://chatgpt.com/. Follow the steps below to create a valid .har file:
- Navigate to https://chatgpt.com/ using your preferred web browser and log in with your credentials.
- Access the Developer Tools in your browser. This can typically be done by right-clicking the page and selecting "Inspect," or by pressing F12 or Ctrl+Shift+I (Cmd+Option+I on a Mac).
- With the Developer Tools open, switch to the "Network" tab.
- Reload the website to capture the loading process within the Network tab.
- Initiate an action in the chat which can be captured in the .har file.
- Right-click any of the network activities listed and select "Save all as HAR with content" to export the .har file.
In order to make use of the automatic upload features, you need to add your YouTube credentials to the config/config.json
file using the SettingsManager
class. The UploadAPI
class will automatically use these credentials to upload the generated video to the respective platform:
# You SHOULD remove these lines after executing the script once.
settings_manager = SettingsManager()
settings_manager.set(
"publisher",
{
"youtube": {
"installed": {
"client_id": "<some-id>.apps.googleusercontent.com",
"project_id": "<some-name>",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "<some-secret>",
"redirect_uris": ["http://localhost"],
}
},
},
encrypt=True, # You should definitely encrypt sensitive data.
)
⚠️ IMPORTANT: For Instagram and TikTok, you only have to be logged in to the respective platform in your chrome browser.It may be necessary to occasionally resolve captchas on TikTok when using the TikTok provider until a more permanent solution is found (e.g. automatic captcha solving).
Follow these guides to setup the publisher credentials:
- Set up a Google Cloud Project for YouTube
QuickClipAI offers a range of customization options to tailor the generated videos to your specific needs. By now, you can adjust all prompts in the prompts
folder to tweak the generated content, add custom background music in the assets/project/music
folder and add custom fonts in the assets/project/fonts
folder. More customization options will be added in future releases.
⚠️ IMPORTANT: By now, only.ttf
fonts are supported. Make sure to add your custom fonts in theassets/project/fonts
folder and run the following command in admin mode to register them:captametropolis register_font "assets\project\fonts\your_font.ttf" -qr # If not run in admin mode, the command will ask for admin permissions.This will register the font in the system and make it available for use in the video generation process. Make sure to not change the font name or location after registering it.
ℹ️ NOTE: You can easily add your own background music by placing the file in the
assets/project/music
folder and using thebackground_music
parameter in theMoviepyAPI().generate_video()
function:moviepy_api = MoviepyAPI() moviepy_api.generate_video( ..., background_music=BackgroundMusic( r"assets\project\music\your_music.mp3", start_sec=0, volume_factor=0.2, credits="Credits to song artist", # Optional ), )You can even use sound driectly from Bensound using the
BensoundBackgroundMusic
class, it will automatically generate the credits for you:moviepy_api.generate_video( ..., background_music=BensoundBackgroundMusic( "the lounge", # Search query for the song start_sec=0, volume_factor=0.2, ), )
If you would like to use encryption features for the storage of configuration files, you can enable them by creating a .env
file in the config
directory and adding the ENCRYPTION_KEY
key along with your password. The SettingsManager
class currently supports encryption for str
, bytes
, dict
, and list
types. You can set the key in the .env
file as follows:
ENCRYPTION_KEY=your_encryption_key
You can easily upload your generated videos to YouTube and Instagram automatically using the UploadAPI
class. You can set the youtube
parameter to True
to upload the video to YouTube, and the instagram
and tiktok
parameters to True
to upload the video to Instagram and TikTok respectively.
You can then use the UploadAPI
class to upload the video:
upload_api = UploadAPI()
upload_api.upload_video(
session_id="...", # The session ID of the video to upload (will be displayed in the console after generating the video). Leave `None` to use the last session ID.
youtube=True,
instagram=True,
tiktok=True,
)
- Activate Virtual Environment: Navigate to the root directory and activate the virtual environment using:
source venv/bin/activate
- Configure VPN: If you are using a VPN, make sure to switch the location/server regularly to avoid being blocked by the
g4f.Provider
. If you encounter any issues with the provider, you can set theprovider
parameter in theG4FAPI
class toNone
, which will force the API to choose the best provider available automatically:
g4f_api = G4FAPI(provider=None)
- Run the Script: Run the main script using:
python main.py
This project was developed and is maintained by AppSolves.
Also, check out CurioBurstz
on YouTube, Instagram, and TikTok for more content created using QuickClipAI
.
This project is licensed under a custom license with All Rights Reserved.
No use, distribution, or modification is allowed without explicit permission from the author.
For more information, please see the LICENSE file.
QuickClipAI © 2024 by Kaan Gönüldinc
Thank you for checking out QuickClipAI! We hope you find this tool useful for your content creation needs. If you have any questions, feedback, or suggestions, please feel free to reach out to us.