Your All-in-One Conversion Hub
Oneverter is a modern, user-friendly desktop application built with Python and CustomTkinter that provides comprehensive file conversion capabilities for everyday use. It features a unified single-window interface for seamless navigation between different converter tools.
- PDF to DOCX – Convert PDF files to editable Word documents
- DOCX to PDF – Convert Word documents to PDF format
- PDF to TXT – Extract text from PDF files
- DOCX to TXT – Convert Word docs to plain text
- TXT to PDF – Convert text files to PDF
- Image format conversion (JPG, PNG, WEBP, BMP, TIFF)
- Resize, compress, grayscale, flip, rotate images
- Remove background (AI-powered)
- Adjust brightness and contrast
- Audio format conversion (MP3, WAV, OGG, M4A, FLAC)
- Trim, adjust volume, set bitrate
- YouTube audio/video downloader
- Text-to-Speech (TTS) and Speech-to-Text (STT)
- Voice recorder and metadata editor
A comprehensive suite of tools for all your video editing needs:
- Video Converter: Convert between MP4, AVI, WebM, and GIF, with options for resolution, FPS, and codec
- Trim & Cut: Easily trim or cut sections of your videos
- Merge Videos: Combine multiple video clips into a single file, with an optional fade transition
- Add/Remove Audio: Mute, replace, or add a new audio track to your videos
- Resize & Crop: Change video dimensions or crop to a specific area
- Text & Watermark: Overlay custom text or a logo onto your videos with position and opacity controls
- Convert to GIF: Create animated GIFs from your video clips with options for duration and looping
- Extract Frames: Save video frames as a sequence of images (PNG/JPG)
- Subtitle Tool: Burn subtitles from an SRT file directly into your video
- Playback Speed: Change the playback speed of your videos (e.g., 0.5x, 1.5x, 2x)
- YouTube Downloader: Download videos from YouTube in various formats and resolutions
- Screen Recorder: Record your screen, with an option to include audio from your microphone
- Archive format conversion (ZIP, 7Z, TAR)
- Archive extraction and creation
- CSV ↔ Excel conversion
- JSON ↔ XML conversion
- Data format transformation
- Python 3.8 or higher
- pip package manager
- FFmpeg (for video/audio processing)
- Clone the repository:
git clone https://github.com/qppd/Oneverter.git
cd Oneverter- Install dependencies:
pip install -r requirements.txt- Run the application:
python main.py- Launch the application using
python main.py - Use the sidebar to navigate between different converter categories
- Select your files, choose conversion options, and start converting!
Oneverter/
├── main.py # Main application entry point
├── auto_start.py # Helper script to run the app
├── requirements.txt # Python dependencies
├── README.md # Project documentation
│
├── assets/ # Images and resources
│
├── converters/ # Conversion logic and UI components
│ ├── __init__.py
│ ├── base_converter.py # Base converter class
│ ├── base_converter_ui.py # Base UI class
│ ├── document_converter.py
│ ├── image_converter.py
│ ├── audio_converter.py
│ ├── video_converter.py
│ ├── video_trimmer.py
│ ├── video_merger.py
│ ├── video_audio_editor.py
│ ├── video_resizer.py
│ ├── video_watermarker.py
│ ├── video_to_gif_converter.py
│ ├── frame_extractor.py
│ ├── subtitle_tool.py
│ ├── speed_changer.py
│ ├── youtube_downloader.py
│ ├── screen_recorder.py
│ ├── archive_converter.py
│ └── data_converter.py
│ └── __pycache__/
│
├── ui/ # UI components and windows
│ ├── __init__.py
│ ├── unified_main_window.py # Main unified interface
│ ├── theme.py # UI theming and styles
│ ├── base_window.py
│ ├── converter_panel.py # Base panel class
│ ├── notifications.py
│ ├── animated_spinner.py
│ ├── components/ # Reusable UI components
│ ├── panels/ # Converter panels
│ └── __pycache__/
│
├── utils/ # Utility functions
│ ├── __init__.py
│ ├── file_utils.py
│ ├── system_utils.py
│ ├── auth/ # Authentication utilities (legacy)
│ ├── security/ # Security utilities
│ └── __pycache__/
│
└── tests/ # Test files
├── test_unified_interface.py
└── ...
-
Create the Logic: Create a new
..._converter.pyfile in theconverters/directory. Inside, create a...Converterclass that handles the file conversion logic. -
Create the UI: In the same file, create a
...ConverterUIclass that inherits fromBaseConverterUIand builds the UI within a parent frame. -
Create the Panel: Create a new
..._converter_panel.pyfile in theui/panels/directory. This panel class should inherit fromConverterPaneland integrate the UI. -
Register the Panel: Add the new panel to the
PANEL_REGISTRYinui/panels/__init__.py.
from converters.base_converter import BaseConverter
from converters.base_converter_ui import BaseConverterUI
class MyConverter(BaseConverter):
def __init__(self):
super().__init__()
self.name = "My Converter"
self.description = "Convert my files"
self.icon = "🔧"
def convert(self, input_path, output_path, options=None):
# Your conversion logic here
pass
def get_supported_formats(self):
return ['.ext1', '.ext2']
class MyConverterUI(BaseConverterUI):
def __init__(self, parent_frame):
super().__init__(parent_frame)
self.converter = MyConverter()
self.build_ui()
def build_ui(self):
# Build UI components
passcustomtkinter- Modern GUI frameworkPillow- Image processingmoviepy- Video editing and processingpydub- Audio processingyt-dlp- YouTube video downloadingpysrt- Subtitle file parsingopencv-python- Video processingpyautogui- Screen capturesounddevice- Audio recordingpyaudio- Audio I/Omutagen- Audio metadatapdf2docx- PDF to DOCX conversiondocx2pdf- DOCX to PDF conversionPyPDF2- PDF processingreportlab- PDF generationrembg- Background removalpython-docx- Word document handling
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- CustomTkinter team for the amazing GUI framework
- All open-source libraries used in this project
- Contributors and users of Oneverter
If you encounter any issues or have questions:
- Check the documentation
- Search existing issues
- Create a new issue with detailed information
Made with ❤️ for the community