Wild-Storage lets you use YouTube as a Infinite Cloud Storage. It embeds any files(Images, Videos, Documents, etc) into a video. The video can be uploaded to YouTube and the file can be retrieved from the video. A expansion & compression technique is used to defeat YouTube's compression algorithm. The file can be retrieved from the video without any loss of data.
Demo Video (YouTube Link)
python3 -m venv envsource env/bin/activatepip install -r requirements.txtg++ -fPIC -shared DataProccessing/cLibs/helper.cpp -o DataProccessing/cLibs/c_lib.sochmod +x cli_appMake sure GCC compiler, Python 3, pip, Python venv is installed.
Now open terminal in the project directory and run the following command to complete the necessary setup and run the app.
./cli_appWait for the app to start.
- Copy all your files into
\data\inputdirectory - Select
Encode file to videooption on the app - Wait for the process to complete
- Generated video (
op.mp4) & Metadata (metadata.json) will be available in\data\generateddirectory - Upload the video to YouTube and copy-paste the contents of
metadata.jsonin description of the video - Make sure the uploaded video is
public/unlisted
- Select
Decode file from videooption on the app - Enter the youtube video url (Make sure the uploaded video is
public/unlisted) - Wait for the process to complete
- The files will be available in
\data\retrieveddirectory
- Select
Cleanoption on the app to clean data directory
- Select
Reload timeoption to set the time to wait before reloading the app
- Select
Exitoption on the app to exit
You just need to have Docker installed on your system.
docker build -t wild-storage .docker run -it wild-storage./cli_appYou can copy files from host to container using the following command. You can copy folders and files.
docker cp <host_path> <container_id>:app/data/inputThe video and metadata files can be copied from container to host using the following command.
docker cp <container_id>:app/data/generated <host_path>The retrieved files can be copied from container to host using the following command.
docker cp <container_id>:app/data/retrieved <host_path>Wild-Storage was a complete Python Implementation. Beign a very slow interpreted language it was taking too much time to process files. Later I moved some heavy task codebase to C++ and wrapped those in Python using ctypes. This helped to process the files ~3x faster.
- Parallel Processing using multiple CPU cores is supported now.
- C++ Library is used for heavy tasks to make the process faster.
This project is inspired by Infinite-Storage-Glitch which is a Rust implementation. I liked the concept and tried to implement in my favourite language Python. The working of both may not be same.