| ** 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 |
| ``` |
|
|