This project is a web application built with Flask that allows users to upload audio or video files through a user-friendly interface. The site incorporates HTML, CSS, JavaScript, and Python to create a responsive design and interactive user experience. After uploading a file, users will receive a Subtitle file of the uploaded content.
- Modern Dashboard Interface: User-friendly dashboard to manage all your transcriptions
- File Upload: Upload audio or video files through an intuitive drag-and-drop interface
- URL Processing: Transcribe content directly from YouTube, Vimeo, or other media links
- Transcription: Convert speech in audio/video to accurate text transcriptions
- Subtitle Generation: Generate subtitle files in multiple formats
- Subtitle Format: Choose between
SRT
orVTT
formats for your subtitle files - Real-Time Progress Tracking: Monitor transcription progress with detailed status updates
- User Accounts: Create accounts to save and manage your transcription history
- Customizable Settings: Personalize your experience through the settings page
- File Management: Easily view, download, and delete your transcription files
- Responsive Design: Works seamlessly across desktop, tablet, and mobile devices
- Home/Landing Page: Introduction to the service with main features
- Dashboard: View and manage all your transcribed files
- Transcribe: Upload new files or provide URLs for transcription
- Settings: Customize your account preferences
- Subtitle Viewer: View and edit generated subtitles
- Upload: Upload audio/video files through the transcribe page or provide a URL
- Processing: The system processes the media and extracts the speech content
- Transcription: Advanced algorithms convert speech to text with high accuracy
- Management: Access your transcriptions through the dashboard interface
- Download: Download your transcription in various formats (text, SRT, VTT)
- Backend: Flask (Python web framework)
- Frontend: HTML5, CSS3, JavaScript, Bootstrap 5
- Database: MongoDB for data storage
- UI Elements: AOS for scroll animations, Font Awesome for icons
- AJAX: Asynchronous file uploading with progress tracking
- Python 3.7 or higher
- Flask 2.0 or higher
- MongoDB
- Redis (upstash)
- Assemblyai API
-
Clone this repository:
git clone https://github.com/ADEL-MAHMOUD10/SubTranscribe-2.git
-
Install the required dependencies:
pip install -r requirements.txt
-
Navigate to the project directory and set up a virtual environment:
cd project_directory python -m venv venv
-
Activate the virtual environment:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Run the Flask app:
python app.py
-
Open your web browser and go to:
http://127.0.0.1:5000
SubTranscribe/
├── app.py # Main application file
├── module/ # Application modules
│ ├── auth.py # Authentication functions
│ ├── config.py # Configuration settings
│ ├── setting.py # User settings
│ ├── subtitle.py # Subtitle generation
│ ├── transcribe.py # Transcription logic
│ └── reset_pass.py # Password reset
├── static/ # Static assets
│ ├── css/ # CSS files
│ ├── js/ # JavaScript files
│ └── image/ # Images
└── templates/ # HTML templates
├── dashboard.html # Dashboard page
├── settings.html # Settings page
├── transcribe.html # Transcribe page
└── ...
A live demo of this site can be found here.
- If you encounter any issues, ensure that your Python environment is set up correctly with the required libraries.
- Make sure MongoDB is properly installed and running
- Check that all required packages from
requirements.txt
are installed
This project is licensed under the MIT License.