SMART VT is an application designed to subtitle and dub any video, regardless of its original language, into a language of your choice. The project leverages a React frontend, Python APIs for video processing, and Node.js for handling video subtitles.
- Python 3.x
- Node.js
- Git
- npm (Node Package Manager)
- Stable internet connection
The project is structured into three main parts:
- Backend: Handles video processing with Python.
- Frontend: React application for user interaction.
- Node.js API: Manages video subtitle addition using ffmpeg.
git clone https://github.com/Charlot-DEDJINOU/Hackathon-IA-Multimodal-MultilingueNavigate to the backend directory and set up the Python environment:
cd backend
python -m venv myenv
source myenv/bin/activate
pip install -r requirements.txtCreate a .env file in the backend directory with the following content:
MONGO_URI=mongodb+srv://username:[email protected]/
DATABASE_NAME=your_dbname
API_KEY="api key for assembly ai" ## Optional
BASE_URL=your_base_url ## For example: http://127.0.0.1:8000/uvicorn main:app --host 127.0.0.1 --port 8000 --reloadcd ../frontendnpm installCreate a .env file in the frontend directory with the following content:
VITE_APP_API_PYTHON_URL="http://192.168.18.64:8000"
VITE_APP_API_NODE_URL="http://localhost:3000"npm run devOpen your browser and visit http://localhost:3000 to view the application.
cd ../nodenpm installCreate a .env file in the node directory with the following content:
BASE_URL_NODE_SERVER=http://localhost
PORT=3000node serve.jsThe API will be accessible at the URL specified in the .env file, for example: http://localhost:3000.
- Upload a Video: Open the frontend application and upload a video.
- Choose Translation/Dubbing Options: Select your desired translation and dubbing options, and choose the destination language.
- Process the Video: Click on "Charger la vidéo" to process the video. The backend and Node.js API will handle the video processing and subtitle addition.
Your SMART VT application should now be fully operational. If you encounter any issues or have questions, feel free to consult the documentation or open an issue on the GitHub repository.