/NarratoAI

利用AI大模型,一键解说并剪辑视频; Using AI models to automatically provide commentary and edit videos with a single click.

Primary LanguagePythonMIT LicenseMIT

NarratoAI 😎📽️

An all-in-one AI-powered tool for film commentary and automated video editing.🎬🎞️

📖 English | 简体中文


NarratoAI is an automated video narration tool that provides an all-in-one solution for script writing, automated video editing, voice-over, and subtitle generation, powered by LLM to enhance efficient content creation.

madewithlove GitHub license GitHub issues GitHub stars Discord

Home

Video Review Interface

System Requirements 📦

  • Recommended minimum: CPU with 4 cores or more, 8GB RAM or more, GPU is not required
  • Windows 10 or MacOS 11.0 or above

Quick Start 🚀

Apply for Google AI Studio Account

  1. Visit https://aistudio.google.com/app/prompts/new_chat to apply for an account.
  2. Click Get API Key to request an API Key.
  3. Enter the obtained API Key into the gemini_api_key setting in the config.example.toml file.

Configure Proxy VPN

The method to configure VPN is not restricted, as long as you can access Google's network. Here, clash is used as an example.

  1. Note the port of the clash service, usually http://127.0.0.1:7890.

  2. If the port is not 7890, modify the VPN_PROXY_URL in the docker-compose.yml file to your proxy address.

    environment:
      - "VPN_PROXY_URL=http://host.docker.internal:7890" # Change to your proxy port; host.docker.internal represents the IP of the physical machine.
  3. (Optional) Or modify the proxy settings in the config.example.toml file.

    [proxy]
     ### Use a proxy to access the Pexels API
     ### Format: "http://<username>:<password>@<proxy>:<port>"
     ### Example: "http://user:pass@proxy:1234"
     ### Doc: https://requests.readthedocs.io/en/latest/user/advanced/#proxies
    
     http = "http://xx.xx.xx.xx:7890"
     https = "http://xx.xx.xx.xx:7890"

Docker Deployment 🐳

① clone project, Start Docker

git clone https://github.com/linyqh/NarratoAI.git
cd NarratoAI
docker-compose up

② Access the Web Interface

Open your browser and go to http://127.0.0.1:8501

③ Access the API Documentation

Open your browser and go to http://127.0.0.1:8080/docs or http://127.0.0.1:8080/redoc

Usage

1. Basic Configuration, Select Model, Enter API Key, and Choose Model

Currently, only the Gemini model is supported. Other modes will be added in future updates. Contributions are welcome via PR to join in the development 🎉🎉🎉

001

2. Select the Video for Narration and Click to Generate Video Script

A demo video is included in the platform. To use your own video, place the mp4 file in the resource/videos directory and refresh your browser. Note: The filename can be anything, but it must not contain Chinese characters, special characters, spaces, backslashes, etc.

002

3. Save the Script and Start Editing

After saving the script, refresh the browser, and the newly generated .json script file will appear in the script file dropdown. Select the json file and video to start editing.

003

4. Review the Video; if there are segments that don't meet the rules, click to regenerate or manually edit them.

003

5. Configure Basic Video Parameters

003

6. Start Generating

003

7. Video Generation Complete

003

Development 💻

  1. Install Dependencies
conda create -n narratoai python=3.10
conda activate narratoai
cd narratoai
pip install -r requirements.txt
  1. Install ImageMagick
Windows:
MacOS:
brew install imagemagick
Ubuntu
sudo apt-get install imagemagick
CentOS
sudo yum install ImageMagick
  1. initiate webui
streamlit run ./webui/Main.py --browser.serverAddress=127.0.0.1 --server.enableCORS=True --browser.gatherUsageStats=False
  1. Access http://127.0.0.1:8501

Feedback & Suggestions 📢

👏👏👏 You can submit issues or pull requests 🎉🎉🎉

Reference Projects 📚

This project was refactored based on the above projects with the addition of video narration features. Thanks to the original authors for their open-source spirit 🥳🥳🥳

License 📝

Click to view the LICENSE file

Star History

Star History Chart