NEWS A programmer has cleverly outsmarted Google by turning YouTube into a free cloud storage service for any file.

pinkman

BOSS
Staff member
ADMIN
LEGEND
ULTIMATE
SUPREME
MEMBER
BFD Legacy
Joined
Feb 3, 2025
Messages
2,253
Reaction score
19,011
Deposit
0$
How to hide your documents in a fake video?
1771439787898.png
Developer Brandon Lee released the open-source tool yt-media-storage, which allows storing arbitrary files on YouTube and converting them to lossless video format . The project appeared on GitHub and generated lively discussion in the community.

The principle behind it may seem unusual, but it's technically sound. Any file (whether a document, archive, disk image, or database) is broken into fragments and encoded into a video using the FFV1 codec in an MKV container. This is a completely lossless format, meaning that when decoded, you get an identical copy of the original file. The video is created in a resolution of 3840x2160 pixels at 30 frames per second, after which it can be uploaded to YouTube like a regular video. When you need the file, simply download the video and decode it again.

To improve storage reliability, Lee integrated Wirehair fountain codes (also known as "unfixed bit rate codes"). This is a redundant coding mechanism that adds extra data to the program as a precaution. If part of a video is damaged during YouTube processing or compression artifacts occur, fountain codes allow the original file to be restored even if some data packets are lost. This is critical, given that YouTube applies its own processing to uploaded content.

Particular attention is paid to security . The tool supports optional file encryption using the libsodium library and the XChaCha20-Poly1305 algorithm. The user sets a password during encoding, and even if the video is publicly available on YouTube, it is impossible to read the contents without knowing the password. This allows public accounts to be used for storing private information.

The project offers two ways to use it. The console interface is suitable for those accustomed to working in the terminal. The commands are extremely simple. To encode a file into a video, simply run:

./media_storage encode --input document.pdf --output video.mkv
If you need to encrypt a file, add an encryption flag:

./media_storage encode --input archive.zip --output video.mkv --encrypt --password mypassword
Decoding is performed by the reverse command:

./media_storage decode --input video.mkv --output restored_file.zip
For those who prefer a graphical interface , there's a separate Qt6-based application, media_storage_gui. It supports batch processing—you can add multiple files to the queue at once, select the output directory, and run batch encoding. The interface displays progress indicators for each operation, status messages, and a detailed log of all actions. All operations are performed in separate threads, so the interface remains responsive even when processing large files.

The project is built from source using CMake and requires a modern compiler with C++23 support. Dependencies include FFmpeg for video processing, libsodium for cryptography, OpenMP for parallel computing, and Qt6 for the graphical interface. Lee provided detailed installation instructions for Ubuntu, Fedora, Arch Linux, macOS, and Windows.

The build process is standard for CMake projects :

mkdir build
cmake -B build
cmake --build build
After compilation, two executable files are obtained: the console media_storage and the graphical media_storage_gui.

For those who don't want to build the project themselves, Lee has set up a CI/CD pipeline where you can download ready-made build artifacts for both versions of the application. However, to run it, you'll still need to install shared libraries—FFmpeg, Qt6, and libsodium.

The project's documentation includes a section on troubleshooting common issues. For example, if the "failed to write header" error occurs during encoding, it means the FFmpeg version is too old—using the FFV1 codec with the MP4 container requires at least version 8. An alternative is to use the MKV container instead of MP4.

Obviously, the practical applicability of this solution raises questions. YouTube isn't designed to store arbitrary data and offers no guarantees of the security of the content you upload. The video hosting service can remove videos for various reasons, from rule violations to technical glitches. Furthermore, it's unclear how the platform will respond to mass uploads of videos that are essentially encoded files rather than actual video content.

This is more of a proof-of-concept project demonstrating the technical feasibility of such storage than a production-ready solution. The project is licensed under the GNU General Public License v3 , and the source code is completely open and available on GitHub.
 
Top Bottom