YouTube-Drive is a tool designed to encrypt and compress files and directories into videos made up of QR codes, allowing you to leverage YouTube for storage.
Before using YouTube-Drive, ensure you have the necessary dependencies:
sudo apt install -y python3-setuptools
sudo apt install -y ffmpeg x265 libx265-dev libsm6 libxext6
sudo apt install -y libzbar-dev zbar-tools libzbar0
sudo apt install -y youtube-dl make
After installing the necessary requirements, proceed with the following commands:
git clone https://github.com/ParthMandaliya/youtube-drive.git
Upgrade setuptools to latest version
python -m pip install --upgrade pip setuptools
Install yt-drive
make install
To run all test cases:
make test
To install and start the service:
make install_service
Convert directory or file to a video:
yt-drive f2v --source <path/to/directory/or/file> --dest <video/output/path>
Convert video back to file or directory:
yt-drive v2f --source <path/to/video> --dest <destination>
To uninstall the service:
make uninstall_service
To Modify Configuration Settings
Use the yt-drive CLI to change configuration settings. For instance, to stop applying padding to files smaller than 10MB, execute:
yt-drive config apply-padding -a False
To retrieve the value of any setting, execute:
yt-drive config apply-padding
Storing Client Secrets
To enable video uploads to YouTube, client-secrets must be stored in the database. Use the following command:
yt-drive database client-secrets -a <path/to/client-secrets.json/file>
If YouTube upload credentials are not present in the database, a prompt will guide you through the authentication process. Follow the provided link in the terminal, grant access to YouTube, and a youtube-upload-credentials.json file will be generated. After video uploads, these credentials will be saved in the database, eliminating the need to reauthorize for subsequent uploads. To save the upload-credentials file to database manually run following command:
yt-drive database upload-credentials -a <path/to/youtube-upload-credentials.json/file>
