Skip to content

Instantly share code, notes, and snippets.

@kumarmuthu
Created August 3, 2025 17:57
Show Gist options
  • Save kumarmuthu/a0c6ba7eb0cc5d440ead7bd9a6a3ba02 to your computer and use it in GitHub Desktop.
Save kumarmuthu/a0c6ba7eb0cc5d440ead7bd9a6a3ba02 to your computer and use it in GitHub Desktop.
MuthuMediaPlayer

πŸ”πŸŽΆ MuthuMediaPlayer – A Secure Encrypted Media Streaming App built with Flask! πŸŽ₯

Just wrapped up a personal project focused on secure media delivery β€” what began as a simple experiment in streaming has evolved into a full-fledged application.

🌟 Features

  • βœ… Firebase Realtime Database integration to fetch login credentials and Fernet encryption keys
  • βœ… Fernet (AES-level) encryption for .mp3 / .mp4 media files
  • βœ… On-demand decryption – media is decrypted only during playback
  • βœ… Protection against direct downloaders like IDM
  • βœ… External video URL playback support (.mp4, .webm)
  • βœ… Folder-based browsing, login system, and pagination

πŸ›  Tech Stack

  • Flask + Flask-Session
  • SQLite (for user and media metadata)
  • Fernet from cryptography (for secure encryption)
  • Google Firebase RTDB (for credentials and key management)

πŸ“‚ Source Code (MIT License)

πŸ”— GitHub Repository

πŸš€ Live Demo

πŸ”— https://muthumediaplayer.onrender.com

πŸ’‘ How it Works

Media files are encrypted into JSON blobs (storing the encrypted content as a base64-encoded string inside a .json file) using a generated Fernet key. Metadata such as filename, path, and tags are stored in SQLite.

When a user accesses media via the player, the app performs just-in-time decryption and streams the content β€” ensuring privacy, performance, and protection against direct access.


πŸ”– Tags

#Flask #Python #Cybersecurity #GoogleFirebase #SQLite #MediaStreaming #OpenSource #PythonFlask #MediaPlayer #Encryption #PrivateProject #MuthuMediaPlayer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment