| ** Thanks for Son Tran for the fixes on the installation guide. Here are the recommanded steps for installing ShortGPT: | |
| ### You now need Docker to now run ShortGPT. If you can't run it with docker, please use the Google Colab. | |
| # To run ShortGPT docker: | |
| First make a .env file with the API keys like this: | |
| ```bash | |
| OPENAI_API_KEY=sk-_put_your_openai_api_key_here | |
| ELEVENLABS_API_KEY=put_your_eleven_labs_api_key_here | |
| PEXELS_API_KEY=put_your_pexels_api_key_here | |
| ``` | |
| To run Dockerfile do this: | |
| ```bash | |
| docker build -t short_gpt_docker:latest . | |
| docker run -p 31415:31415 --env-file .env short_gpt_docker:latest | |
| ``` | |
| Export Docker image: | |
| ```bash | |
| docker save short_gpt_docker > short_gpt_docker.tar | |
| ``` | |
| ### Here are the steps to install it from scratch on Linux, Debian 11 x64: | |
| In short, you need to use: | |
| - Python 3.11.3 | |
| - openai package 0.28.0, then upgrade openai-whisper | |
| - ffmpeg 4.2.3 | |
| - ImageMagick 7.1.1 | |
| ### 1. OS: Debian 11 x64 | |
| ```bash | |
| sudo apt update && sudo apt upgrade | |
| sudo apt install wget git libltdl-dev libjpeg-dev libpng-dev libtiff-dev libgif-dev libfreetype6-dev liblcms2-dev libxml2-dev wget build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev | |
| ``` | |
| ### 2. Install Python version: 3.11.3 | |
| ```bash | |
| wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz | |
| tar xzf Python-3.11.3.tgz | |
| cd Python-3.11.3 | |
| ./configure --enable-optimizations | |
| make install | |
| ``` | |
| To check the Python version, use this command: | |
| ```bash | |
| python3.11 -V | |
| ``` | |
| To use pip, use this command: | |
| ```bash | |
| pip3.11 install <package-name> | |
| ``` | |
| ### 3. Install ffmpeg version: 4.2.3 | |
| ShortGPT will accept this version of FFmpeg: | |
| 3.1. Install Build Dependencies: | |
| ```bash | |
| sudo apt update | |
| sudo apt build-dep ffmpeg | |
| ``` | |
| 3.2. Clone FFmpeg Source Code: | |
| ```bash | |
| git clone https://git.ffmpeg.org/ffmpeg.git | |
| cd ffmpeg | |
| git checkout n4.2.3 | |
| ``` | |
| 3.3. Configure FFmpeg Build: | |
| ```bash | |
| ./configure --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-avisynth --enable-libopenmpt --enable-shared --disable-static | |
| ``` | |
| This step checks for the necessary dependencies and configures the build based on your system. | |
| 3.4. Build FFmpeg: | |
| ```bash | |
| make -j$(nproc) | |
| ``` | |
| This step may take some time as it compiles the FFmpeg source code. | |
| 3.5. Install FFmpeg: | |
| ```bash | |
| sudo make install | |
| ``` | |
| 3.6. Verify Installation: | |
| ```bash | |
| ffmpeg -version | |
| ``` | |
| This should display the version information, and you should see version 4.2.3. | |
| Optional: Update Library Cache: | |
| ```bash | |
| sudo ldconfig | |
| ``` | |
| This updates the dynamic linker run-time bindings. | |
| That's it! You should now have FFmpeg version 4.2.3 installed on your Debian 11 system. | |
| If you are still facing with "libavdevice.so.58" error when running ffmpeg, run this command to fix it, remember to change the path: | |
| ```bash | |
| echo 'export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:/usr/local/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc | |
| source ~/.bashrc | |
| ``` | |
| ### 4. Install ImageMagick 7.1.1: | |
| 4.1. Clone ImageMagick: | |
| ```bash | |
| sudo git clone https://github.com/ImageMagick/ImageMagick.git | |
| ``` | |
| 4.2. Go to the ImageMagick folder and run configuration: | |
| ```bash | |
| cd ImageMagick | |
| ./configure | |
| ``` | |
| 4.3. Make: | |
| ```bash | |
| sudo make | |
| ``` | |
| 4.4. Install complied code: | |
| ```bash | |
| sudo make install | |
| ``` | |
| 4.5. Update path: | |
| ```bash | |
| sudo ldconfig /usr/local/lib | |
| ``` | |
| 4.6. (Optional) Check version | |
| ```bash | |
| $ magick -version | |
| ``` | |
| 4.7. Fix Imagemagick policy.xml bug on Linux using MoviePy | |
| ```bash | |
| !sed -i '/<policy domain="path" rights="none" pattern="@\*"/d' /etc/ImageMagick-6/policy.xml | |
| ``` | |
| ### 5. Upgrade openai-whisper: | |
| ```bash | |
| pip3.11 install -U openai-whisper | |
| ``` | |
| ### 6. (Optional) Install torch 2.1.0: | |
| ```bash | |
| pip3.11 install torch==2.1.0 | |
| ``` | |
| ### 7. This is a list of Python lib and their versions, I'm using them without errors: | |
| ```bash | |
| edge-tts==6.1.9 | |
| ffmpeg==1.4 | |
| ffmpeg-python==0.2.0 | |
| gradio==3.38.0==3.38.0 | |
| moviepy==1.0.3==1.0.3 | |
| openai==0.28.1==0.28.1 | |
| pillow==9.0.0==9.0.0 | |
| proglog==0.1.10 | |
| progress==1.6 | |
| protobuf==3.20.3==3.20.3 | |
| python-dotenv==1.0.0 | |
| questionary==2.0.1 | |
| tiktoken==0.5.1 | |
| tinydb==4.8.0 | |
| tinymongo==0.2.0 | |
| torch==2.1.0 | |
| torchaudio==2.1.0 | |
| whisper-timestamped==1.12.20 | |
| yt-dlp==2023.10.13 | |
| ``` | |