mirror of
https://framagit.org/veretcle/tootube.git
synced 2025-07-20 12:31:19 +02:00
ae3fa74d9bf3cefe9b630ccdf426322c94324c1f
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 playlists it needs to put them in
- it cannot determine the recording date (believe me, I tried!)
- there are still a lot of static values that I would rather not have static (like the cache directory…)
- it is 100% sync, meaning it’s clearly not optimal for now and probably won’t be for the next releases
So consider this a work in progress that will slowly get better with time
What does it do exactly?
- it downloads the latest PeerTube video from an instance
- stores it in cache directory
- uploads it to YouTube
What doesn’t it do exactly?
- it cannot register the original key (see below)
- it relies on a local cache despite the fact that it might well be possible to just download from PT/upload to YT at the same time (I don’t see why not in fact)
- it doesn’t retrieve ALL the original PeerTube video properties like licences, languages, categories, etc… again: early prototype
Obtain Authorization Token from Google
That the complicated part:
- create an OAuth2.0 application with authorization for Youtube DATA Api v3 Upload
- 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
Then enter in:
https://accounts.google.com/o/oauth2/v2/auth?client_id=XXX.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/youtube.upload&response_type=code
And accept that your YouTube account might be modified. You’ll get a code then; enter this curl
post:
curl -s \
--request POST \
--data "code=[THE_CODE]&client_id=XXX.apps.googleusercontent.com&client_secret=[THE_CLIENT_SECRET]&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" \
https://accounts.google.com/o/oauth2/token
You’ll get a Token. The only important part is the refresh_token
In your tootube.toml
config file, put the refresh_token
.
Languages
Rust
100%