A powerful command-line interface tool for creating engaging video clips with AI-generated scripts and amazing free-to-use media. This tool leverages multiple APIs to generate high-quality content across various categories and tones.
Note: This project is currently a Proof of Concept (POC) and is actively being developed. Expect more features and improvements in future releases.
Create amazing videos effortlessly with just a few inputs! Leveraging the power of LLM's and open source free-to-use media, Clip Creator CLI enables you to generate captivating content for social media and beyond. Here’s what you can expect:
-
AI-Powered Script Generation: Utilize the llama3-70b-8192 model via GROQ to automatically generate engaging scripts for your videos. No need to brainstorm – let AI handle the creative process.
-
Automated Video Creation: Customize parameters to create videos tailored to your needs. From length to style, you have full control over the end product, all with minimal effort.
-
Diverse Content Categories and Tones: Choose from multiple content categories and tones to match your message. Whether it’s educational, entertaining, or promotional, Clip Creator CLI adapts to your requirements.
-
High-Quality Audio: Integrate high-quality audio tracks from FreeSound to enhance your videos. Perfect for background music, sound effects, or voiceovers.
-
High-Definition Visuals: Access a vast library of high-definition visuals from Pexels. Ensure your videos are visually stunning with top-notch imagery.
-
Fact-Checking Support: Maintain credibility and accuracy with built-in fact-checking support. Ensure that your content is reliable and trustworthy.
-
User-Friendly Web Interface: Enjoy a seamless user experience with our intuitive web interface. Easily navigate through the creation process and make adjustments on the fly.
-
Supports Single and Batch Processing of Videos: Whether you're creating a single video or generating multiple videos from the same input, our system ensures smooth and timely processing. Perfect for creators and businesses needing to produce multiple videos seamlessly and efficiently.
With Clip Creator CLI, you can effortlessly produce professional-quality videos that captivate your audience and elevate your social media presence. Let AI handle the heavy lifting while you focus on creating impactful content.
Before using Clip Creator CLI, ensure you have the following:
-
Node.js (v14 or higher)
-
Package Manager: Either
npm
oryarn
-
API Keys: Obtain keys from the following services:
-
GROQ API
-
FreeSound
-
Pexels
-
-
FFmpeg: Required for video processing.
Follow these steps to install FFmpeg on your system:
-
Using Homebrew:
brew install ffmpeg
-
Using Windows Subsystem for Linux (WSL):
-
Install WSL from the Microsoft Store.
-
Open a WSL terminal and run:
sudo apt update sudo apt install ffmpeg
-
-
Manual Installation:
-
Download the FFmpeg executable from FFmpeg website.
-
Extract the files and add the FFmpeg bin directory to your system's PATH.
-
-
Using APT (Debian/Ubuntu):
sudo apt update sudo apt install ffmpeg
-
Using DNF (Fedora):
sudo dnf install ffmpeg
After setting up these prerequisites, you’ll be ready to use Clip Creator CLI.
Install globally via npm:
npm install -g clip-creator
Or yarn
yarn global add clip-creator
Or use with npx:
npx clip-creator [command]
For development:
git clone https://github.com/j3rry320/clip-creator-cli
cd clip-creator
npm install
node clip-creator bin/cli.js
- Visit GROQ's website
- Create an account or sign in
- Navigate to the API section
- Generate a new API key
- Go to FreeSound
- Register for an account
- Visit your profile settings
- Navigate to the API credentials section
- Create a new API key
- Visit Pexels
- Sign up for a developer account
- Once approved, you'll receive your API key
- Create a new video (Interactive)
clip-creator create
- Basic video creation with default (required) configuration:
clip-creator create \
--freeSoundKey YOUR_FREESOUND_KEY \
--groqKey YOUR_GROQ_KEY \
--pexelsKey YOUR_PEXELS_KEY \
--category Educational \
--tone Professional \
--topic "AI Technology" \
--duration 30
- List available categories:
clip-creator list-categories -v
- List available tones:
clip-creator list-tones -v
Start the web interface:
clip-creator web --port 3003
After running the above command, open your browser and navigate to http://localhost:3003/index.html to access the clean and user-friendly web-based UI. Enjoy a seamless experience in creating and managing your video clips through an intuitive interface.
Create multiple video clips in parallel using the same configuration settings.
clip-creator batch-process --count 10 --maxConcurrent 4 --topic "Optical Character Recognition" --duration 20 --config /path/to/config.json
-
--count <number>
: Number of videos to generate -
--maxConcurrent <number>
: Maximum number of concurrent processes (defaults to CPU cores - 1) -
--printStatus
: Print the current status of the videos being processed -
Any options available in
create
can also be passed tobatch-process
. (You Need to pass the required config to batch-process command as well)
You can create a JSON configuration file to store API keys, default settings or advance settings:
{
"freeSoundApiKey": "your-key",
"groqApiKey": "your-key",
"pexelsApiKey": "your-key",
"category": "Educational",
"tone": "Professional",
"topic": "Rise of AI",
"duration": 30,
"factChecking": true,
"outputDir": "./videos",
"fontSize": 24,
"font": "/path/to/fontfile.ttf",
"fps": 30,
"height": 1080,
"width": 1920,
"volume": 0.8,
"fadeInDuration": 2,
"fadeOutDuration": 2
}
Use the config file:
clip-creator create --config path/to/config.json
Don't worry, Whatever key you don't provide in the config file will be asked again in the interactive prompt
These fields are required You need to provide these configurations for the tool to function properly:
-
Description: Specifies your API key for accessing FreeSound. This key allows you to integrate high-quality audio tracks into your video projects.
-
Example Usage:
-
CLI:
--freeSoundKey "your-key"
-
JSON:
"freeSoundApiKey": "your-key"
-
-
Description: Specifies your API key for accessing GROQ. This key is used for AI-powered script generation to create engaging video content.
-
Example Usage:
-
CLI:
--groqKey "your-key"
-
JSON:
"groqApiKey": "your-key"
-
-
Description: Specifies your API key for accessing Pexels. This key provides access to high-definition visuals to enhance your videos.
-
Example Usage:
-
CLI:
--pexelsKey "your-key"
-
JSON:
"pexelsApiKey": "your-key"
-
-
Description: Defines the content category for the video. This option helps tailor the video to specific subject areas or themes.
-
Example Usage:
-
CLI:
--category "Educational"
-
JSON:
"category": "Educational"
-
-
Description: Specifies the tone of the video. This option allows you to set the overall style and mood of the content.
-
Example Usage:
-
CLI:
--tone "Professional"
-
JSON:
"tone": "Professional"
-
-
Description: Defines the main topic of the video. This option guides the content creation process to focus on the specified subject.
-
Example Usage:
-
CLI:
--topic "Rise of AI"
-
JSON:
"topic": "Rise of AI"
-
-
Description: Sets the duration of the video in seconds. This option allows you to control the length of the final output.
-
Example Usage:
-
CLI:
--duration 30
-
JSON:
"duration": 30
-
These fields are optional You can configure these options for a more refined output (not required by default)
-
Description: Specifies the key terms that must be included in the generated content.
-
Example Usage:
-
CLI:
--keyTerms "environment, sustainability"
-
JSON:
"keyTerms": "environment, sustainability"
-
-
Description: Enables fact-checking to ensure that the content is accurate and reliable.
-
Example Usage:
-
CLI:
--requireFactChecking true
-
JSON:
"requireFactChecking": true
-
-
Description: Specifies the custom directory where the output files will be saved.
-
Example Usage:
-
CLI:
--outputDir "/path/to/directory/fontfile.ttf"
-
JSON:
"outputDir": "/path/to/directory/fontfile.ttf"
-
-
Description: Sets the text size in the generated video.
-
Example Usage:
-
CLI:
--fontSize 24
-
JSON:
"fontSize": 24
-
-
Description: Specifies the custom font file to be used for text in the video.
-
Example Usage:
-
CLI:
--font "/path/to/font.ttf"
-
JSON:
"font": "/path/to/font.ttf"
-
-
Description: Sets the frames per second for the video. Range (0-60)
-
Example Usage:
-
CLI:
--fps 30
-
JSON:
"fps": 30
-
-
Description: Specifies the height of the video in pixels. Also used to search Pexels. Use traditional values to avoid search failures.
-
Example Usage:
-
CLI:
--height 1080
-
JSON:
"height": 1080"
-
-
Description: Specifies the width of the video in pixels. Also used to search Pexels. Use traditional values to avoid search failures.
-
Example Usage:
-
CLI:
--width 1920
-
JSON:
"width": 1920"
-
-
Description: Adjusts the audio volume of the video. Range (0-1)
-
Example Usage:
-
CLI:
--volume 0.75
-
JSON:
"volume": 0.75
-
-
Description: Sets the duration for the fade-in effect at the beginning of the video, in seconds. Range (0-5)
-
Example Usage:
-
CLI:
--fadeInDuration 2
-
JSON:
"fadeInDuration": 2
-
-
Description: Sets the duration for the fade-out effect at the end of the video, in seconds. Range (0-5)
-
Example Usage:
-
CLI:
--fadeOutDuration 2
-
JSON:
"fadeOutDuration": 2
-
This document outlines the usage limits for the Clip-Creator CLI, based on the rate limits of the underlying APIs it utilizes. Understanding these limits is crucial for planning your video creation workflow.
Important Note: The creation of a single video requires all three APIs (Pexels, FreeSound, and GROQ). Therefore, the API with the most restrictive limit at any given time will determine your overall video creation capacity.
Here's a breakdown of each API's rate limits and how they translate to video creation capacity:
- Rate Limit: 20,000 requests per month
- Usage per video: 1-12 requests
-
Monthly Video Capacity:
- Minimum: 1,667 videos (20,000 requests / 12 requests/video)
- Maximum: 20,000 videos (20,000 requests / 1 request/video)
- Rate Limit: 60,000 requests per month (2,000 requests/day * 30 days/month)
- Usage per video: 1-2 requests
-
Monthly Video Capacity:
- Minimum: 30,000 videos (60,000 requests / 2 requests/video)
- Maximum: 60,000 videos (60,000 requests / 1 request/video)
- Rate Limit: 15,000,000 tokens per month (500,000 tokens/day * 30 days/month)
- Usage per video: 1,000-1,200 tokens
-
Monthly Video Capacity:
- Minimum: 12,500 videos (15,000,000 tokens / 1,200 tokens/video)
- Maximum: 15,000 videos (15,000,000 tokens / 1,000 tokens/video)
Because all three APIs are necessary for video creation, your actual capacity is limited by the most restrictive API. In this case:
- Minimum Possible Videos per Month: 1,667 (limited by Pexels)
- Maximum Possible Videos per Month: 15,000 (limited by GROQ)
Therefore, you can create between 1,667 and 15,000 videos per month.
- Variable API Usage: The actual number of videos you can create depends on the specific number of requests/tokens used per video. If your videos tend to use more Pexels requests or GROQ tokens, your capacity will be closer to the minimum. Conversely, if your videos are optimized to use fewer requests/tokens, you'll be closer to the maximum.
- Combined Limits: It's crucial to remember that these limits are combined. Even if FreeSound allows for more videos, you're still limited by Pexels and GROQ.
- Monitoring Usage: It's recommended to monitor your API usage to avoid hitting rate limits unexpectedly. This can often be done through the API provider's developer console or by tracking your CLI's API calls.
- Future Changes: API rate limits are subject to change. Refer to the respective API documentation for the most up-to-date information.
This information should help you plan your video creation projects effectively. If you have any questions, please contact support
-
[X] Implement batch processing
-
[ ] Add more fonts and implement multiple text transformation
-
[ ] Add more ways for the user to configure the LLM API
-
[ ] Add more media providers for better and diverse end result
-
[ ] Enhance user interface for better accessibility
-
[ ] Introduce customizable themes and layouts
-
[ ] Develop a user feedback system
-
[ ] Integrate some ML functionality with the feedback for better generation capabilities?
-
[ ] Optimize video rendering speed
-
[ ] Add support for custom audio tracks
-
[ ] Add more content categories and tones
-
[ ] Improve error handling and recovery
-
[ ] Integrate with popular social media platforms for easy sharing
-
[ ] Add automated subtitle generation
-
[ ] Introduce a collaboration workspace for team projects
-
[ ] Enhance security features and data privacy measures
-
[ ] Create mobile app for on-the-go editing?
-
[ ] Add AI-powered video editing capabilities
-
[ ] Have options for the user to run with local LLM's for better privacy and offline functionality
-
[ ] Add compressed video and audio libraries to add offline generation support
-
[ ] Implement real-time preview
-
[ ] Add collaboration features
-
[ ] Create cloud storage integration
-
[ ] Add advanced analytics and reporting
-
[ ] Implement a template system for quick video creation
-
[ ] Develop a comprehensive analytics dashboard
-
[ ] Expand support for virtual reality and 360° videos
-
[ ] Create a plugin system for extensibility
We welcome contributions! Please feel free to submit a Pull Request. To contribute:
- Clone the repository:
git clone https://github.com/j3rry320/clip-creator-cli
cd clip-creator-cli
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Added some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
For maintainers who need to publish updates to npm:
# Update version in package.json
npm version patch # or minor or major
# Publish to npm
npm publish
# Push tags
git push --tags
This project is actively maintained by Jerry Satpathy. I'm currently looking for work and open to opportunities. Feel free to contact me via:
-
GitHub: j3rry320
-
Email: rutuparna.satpathy01@gmail.com[mailto:rutuparna.satpathy01@gmail.com]
-
LinkedIn: Jerry Satpathy
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions, please:
- Check the Issues page
- Create a new issue if your problem isn't already listed
- For npm-specific issues, check the npm package page
- Thanks to GROQ for the LLM API
- Thanks to FreeSound for audio content
- Thanks to Pexels for video content
Subnote: Due to time commitments elsewhere, there is currently limited test case coverage (60.85%). However, I am actively working on writing more test cases to achieve up to 99% coverage.