# What is it? This program takes the very last video published on a PeerTube instance and pushes it to a corresponding YouTube channel. # What the status of this? This is an early prototype not really suited for production purposes for now: * it still relies way too much on pre-determined value to upload the video to YouTube * it cannot determine the recording date (believe me, I tried!) So consider this a work in progress that will slowly get better with time. # What does it do exactly? * it retrieves the latest PeerTube video download URL from an instance * it creates a resumable upload into the target YouTube account * it downloads/uploads the latest PeerTube video to YouTube without using a cache (stream-to-stream) # What doesn’t it do exactly? * it doesn’t retrieve ALL the original PeerTube video properties like licences, languages, categories, etc… again: early prototype # Howtos ## General usage Once you fill your `tootube.toml` config file (see below), you can run `tootube` like this: ```bash tootube --config tootube.toml --playlist playlist_1 "Things You Might Like" ``` You can turn on debug using env var `RUST_LOG`. ## Obtain Authorization Token from Google The complicated part: * create an OAuth2.0 application with authorization for Youtube DATA Api v3 Upload and Youtube DATA Api v3 (generally referenced as `../auth/youtube.upload` and `../auth/youtube`) * create a OAuth2.0 client with Desktop client You’ll need: * the `client_id` from your OAuth2.0 client * the `client_secret` from you OAuth2.0 client Create your `tootube.toml` config file: ```toml [peertube] base_url="https://p.nintendojo.fr" [youtube] refresh_token="" # leave empty for now client_id="" client_secret="" ``` Then run: ```bash tootube register --config ``` You’ll be then prompted with all the necessary information to register `tootube`. You’ll end with a `refresh_token` that you can now paste inside your tootube configuration.