A powerful Python-based tool for automated video processing, including transcription, translation, topic segmentation, and application of effects and transitions.
- Audio extraction from video
- Speech-to-text transcription with timestamps
- Text translation using Google Translate
- AI-powered topic segmentation
- Dynamic application of video effects
- Intelligent transition suggestions between segments
- Final video compilation with effects and transitions
- Python 3.7+
- Dependencies listed in
requirements.txt
-
Clone the repository:
git clone https://github.com/Likhithsai2580/yt-video-editor.git cd yt-video-editor
-
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Set up your API keys in
config.py
:- Groq API key for LLM functionality
- Google Cloud API key for speech recognition (if using Google Speech-to-Text)
-
Place your input video in the project directory.
-
Run the main script:
python vid_edit.py
-
Follow the prompts to specify input video and output preferences.
- Adjust settings in
config.py
(API keys, default parameters) - Customize effects in
effects/effects.json
- Modify transitions in
transitions/transitions.json
vid_edit.py
: Main script for video processingeffects/
: Contains effects-related fileseffects.py
: Implementation of video effectseffects.json
: Configuration for available effects
transitions/
: Contains transitions-related filestransitions.py
: Implementation of video transitionstransitions.json
: Configuration for available transitions
llm/
: Contains LLM-related filesllama.py
: Implementation of LLM functionality using Groq
The project supports various video effects, including:
- Fade in/out
- Color inversion
- Brightness and contrast adjustment
- Black and white conversion
- Rotation and resizing
- Cropping and mirroring
- Speed adjustment
- Text overlay
- Vignette effect
- Color filtering
- Edge detection
- Zoom effect
- Saturation adjustment
For a complete list of effects and their parameters, refer to effects/effects.json
.
The project offers multiple transition effects between video segments:
- Roll transition
- B-roll overlay
- Crossfade
- Slide transition
- Wipe effect
- Zoom transition
- Split screen
- Circle reveal
- Page turn effect
- Light leak
- Color inversion
- Rotate transition
- Diagonal wipe
- Heart shape reveal
- Film roll effect
- Ripple effect
- Starfield transition
For a complete list of transitions and their descriptions, refer to transitions/transitions.json
.
- Implement the effect in
effects/effects.py
- Add the effect details to
effects/effects.json
- Implement the transition in
transitions/transitions.py
- Add the transition details to
transitions/transitions.json
- Topic Segmentation: Utilizes LLM to intelligently divide the video into distinct topics.
- Effect Suggestion: AI suggests appropriate effects based on video content.
- Transition Recommendation: Intelligent selection of transitions between segments.
- Processing time depends on video length and complexity of applied effects.
- Consider using shorter video clips for testing and experimentation.
- Ensure all dependencies are correctly installed.
- Check API key configurations in
config.py
. - Verify input video format compatibility.
- For LLM-related issues, check Groq API status and quota.
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature-branch-name
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature-branch-name
- Submit a pull request
This project is licensed under the MIT License.
- MoviePy for video processing capabilities
- Groq for LLM functionality
- Google Cloud Speech-to-Text for transcription
- Google Translate for translation services
- Support for batch processing multiple videos
- GUI for easier interaction and preview of effects
- Integration with cloud storage services
- Enhanced AI-driven content analysis and editing suggestions
- Support for additional languages in transcription and translation
For questions, issues, or suggestions, please open an issue on the GitHub issue.