Yt-media-storage innovatively encodes files into lossless videos for secure storage on YouTube, allowing easy decoding back to the original file format. With features like optional encryption, batch processing support, and a user-friendly interface, it offers a unique solution for file storage and retrieval.
yt-media-storage
Overview
The yt-media-storage project enables users to store files on YouTube by encoding them into lossless video formats and decoding them back to their original form. This innovative approach provides an intriguing method for file storage, leveraging the extensive reach and reliability of the YouTube platform. The tool offers both a command-line interface and a graphical user interface for an enhanced user experience.
Key Features
- File Encoding/Decoding: Efficiently encode any file into a lossless video format (FFV1/MKV) and seamlessly decode it back to retrieve the original content.
- Fountain Codes: Utilize Wirehair fountain codes for added redundancy and robust repair capabilities.
- Optional Encryption: Secure files by encrypting them with a password using the libsodium library (XChaCha20-Poly1305), ensuring additional privacy.
- Batch Processing: Manage multiple file conversions simultaneously using the graphical user interface, enhancing workflow efficiency.
- Progress Tracking: Enjoy real-time updates with progress bars for ongoing operations, thus maintaining user engagement throughout the process.
Technical Details
- Encoding Process: Input files are chunked, encoded using fountain codes, and embedded into video frames for storage.
- Decoding Process: Retrieve original files by extracting packets from video frames, reconstructing them for use.
- Video Specifications: The implementation uses the FFV1 codec within the MKV container, supporting 4K resolution (3840x2160) at 30 FPS for optimal quality.
Usage Examples
Command-Line Interface (CLI):
./media_storage encode --input <file> --output <video> [--encrypt --password <pwd>]
./media_storage decode --input <video> --output <file>
Graphical User Interface (GUI):
./media_storage_gui
To encode a file, simply select the input and output paths, and click to start the process. Batch operations can also be queued to process multiple files efficiently.
Requirements
- CMake 3.22
- C++23 compiler
- FFmpeg
- libsodium
- OpenMP
- Qt6 (Core and Widgets)
Troubleshooting
Common build issues include missing Qt6 development packages or FFmpeg libraries. For runtime issues, checking file permissions and ensuring adequate disk space is recommended.
For additional details or to access the CI/CD pipeline, visit CI/CD pipeline.
Explore how yt-media-storage transforms file storage by utilizing an unconventional yet effective method through YouTube.
No comments yet.
Sign in to be the first to comment.