A feature-rich desktop-based Multimedia Text Editor built using Python and Tkinter.
This application extends the functionality of a traditional text editor by allowing users to embed and manage multimedia content directly inside documents.
Traditional text editors such as Notepad only support plain text editing and do not provide the ability to embed multimedia elements such as images, audio, or video within documents.
The objective of this project is to design and develop a Multimedia Notepad that:
- Supports text editing
- Embeds images within documents
- Plays audio files
- Launches video files
- Saves documents in a structured custom file format
- Can be packaged as a standalone Windows executable
- 🖊 Rich Text Editing
- 🖼 Insert Images inside the editor
- 🎵 Insert Audio with Play / Stop controls
- 🎥 Insert Video (opens in system media player)
- 💾 Custom
.mynotefile format - 📁 Automatic assets folder management
- 🔄 Save / Open / New file functionality
- 🖥 Scrollable interface
- ↩ Undo support
- 🧹 Clean application shutdown
- 📦 EXE packaging support using PyInstaller
| Technology | Purpose |
|---|---|
| Python | Core programming language |
| Tkinter | GUI framework |
| Pillow | Image processing |
| Pygame | Audio playback |
| JSON | Structured file storage |
| PyInstaller | EXE packaging |
git clone https://github.com/CodeWithRoshan/Notepad.git
cd Notepadpip install -r requirements.txtpython main.pyWhen saving a document:
example.mynote
example_assets/
- Stores structured JSON data
- Contains text blocks
- References multimedia files
- Stores images
- Stores audio files
- Stores video files
This ensures proper multimedia management and portability.
pip install pyinstallerpyinstaller --onefile --windowed --icon=app.ico main.pyThe executable will be available inside:
dist/
✔ No console window
✔ Runs like real desktop software
- Text is inserted normally.
- Images are embedded inside the text widget.
- Audio and video are inserted as structured placeholders.
- When saving:
- The content is serialized into JSON.
- Multimedia files are copied into an assets folder.
- When opening:
- JSON is parsed.
- Text and images are reconstructed.
- Media references are restored.
- In-app video player
- Single compressed file format (ZIP-based
.mynote) - Dark mode theme
- Toolbar with icons
- Cross-platform support (Mac/Linux)
- Installer package (.msi)
- Drag & drop multimedia
- Autosave functionality
This project demonstrates understanding of:
- GUI development using Tkinter
- Multimedia handling in Python
- File serialization using JSON
- Custom file format design
- Desktop application packaging
- Software architecture design
Developed by Roshan
If you like this project, feel free to ⭐ star the repository!