There are a variety of online services that provide free cloud storage space (Google Drive, Dropbox, OneDrive, iCloud, etc.), yet all offer caps on available storage with the free plans. BigBackup takes advantage of YouTube's generous unlimited video uploads, up to 128 GB per video with no cap on the number of videos uploaded, to provide users with additional free space.
What it does
BigBackup enables users to easily upload files for backup to YouTube by running our program, which encrypts, compresses and converts files, images, and directories to QR codes. The QR codes are strung together at 60 frames per second, and the video is then automatically uploaded to the user's YouTube account on an unlisted privacy setting. This video can then be downloaded by the user, uncompressed, converted from QR codes to bytes, and decrypted.
Math is fun
YouTube supports videos up to 11 hours long and 128GB in size with no max overall account cap on the number of videos uploaded, yet ;)
One 40-L QR code stores up to 2,953 bytes. A 40-L QR code is 177 pixels by 177 pixels, meaning in a 1920x1080 frame you can tile the QR codes 10 across and 6 down, for a total of 60 QR codes per frame. With 1080p 60fps footage, you can achieve a theoretical max "bandwidth" of 38.27088 GB per hour. This corresponds to a maximal size video under 11 hours in length, maximizing storage.
Challenges we ran into
Figuring out the best compression algorithm and protocol to compress the user's directories, files, and images proved challenging, as we needed to balance robustness, speed, and compression time. We had to play around with exactly how much information we could store in a QR code, how YouTube might resize our videos, and how to decompress and decrypt a video of QR codes downloaded from YouTube with no errors, so it the data could be compressed back into a TAR file and recovered.
Accomplishments that we're proud of
We're proud that we were able to tie together so many different and interesting areas of computer science, including PGP encryption/decryption, TAR and QR data compression/decompression, and API and cloud storage integration.
What we learned
Data compression algorithms are challenging, and attempting to maximize available memory pushed us towards MemoryOverflow and DataOverflow edge cases. We learned a great deal about the pros and cons of various compression formats, and the robustness and capacity of QR codes. None of us had ever used the Google Data API, so this hack enabled us to practice OAuth authentication.
What's next for BigBackup
Next we hope to further optimize the amount of data we are able to encrypt, compress and store, as well as the execution time of our program. We want the process to be as seamless as possible, so would hope to parallelize our algorithm to make the execution faster.