Se ti sei perso tutto il calvario dovuto alla corruzione del database di Trakt durante una manutenzione programmata ti consiglio di dare un’occhiata alla discussione generatasi dai tweet dell’account ufficiale. Diversamente puoi digerire più facilmente questo sunto pubblicato disponibile nella pagina principale del servizio per gli utenti connessi:
On December 11 at 7:30 pm PST our main database crashed and corrupted some of the data. We’re deeply sorry for the extended downtime and we’ll do better moving forward. Updates to our automated backups are already in place and they will be tested on an ongoing basis.
- Data prior to November 7 is fully restored.
- Watched history between November 7 and December 11 has been recovered. There is a separate message on your dashboard allowing you to review and import any recovered data.
- All other data (besides watched history) after November 7 has already been restored and imported.
- Some data might be permanently lost due to data corruption.
- Trakt API is back online as of December 20.
- Active VIP members will get 2 free months added to their expiration date.
Cavalcando un po’ l’onda di quanto accaduto, gli sviluppatori della piattaforma hanno recentemente introdotto il backup automatico dei dati utente di Trakt dedicato ai suoi utilizzatori, il quale esula dal backup che viene già effettuato e che riguarda il database dell’intero servizio. È più un “vuoi andare ancora più sul tranquillo? Ok, programma il tuo backup personale e depositalo su Google Drive o Dropbox!“. Ne hanno dato notizia tramite Twitter e un articolo dedicato sul blog.
Backup a pagamento, l’alternativa gratuita
Il problema è che questo servizio è dedicato esclusivamente agli utenti paganti, non a quelli che sfruttano gratuitamente il servizio. Questo articolo vuole spiegarti come aggirare l’ostacolo utilizzando Python (ti propongo poi un’alternativa via Bash Linux) e programmando il processo per eseguire il backup a intervalli regolari. In futuro (non troppo in là) vorrei poter studiare qualcosa che vada a integrarsi con GitHub Action se non hai a disposizione una macchina in grado di far girare lo script Python a cadenza programmata, magari caricando i file di output sul repository stesso oppure su Dropbox / Google Drive.
Genera le tue chiavi API
È la prima cosa da fare, senza la quale non puoi certamente mettere in piedi nulla di automatizzato. Collegati a Trakt, autenticati e poi punta il browser all’indirizzo trakt.tv/oauth/applications. Fai clic su New application e compila i campi obbligatori (Nome, Descrizione e URI di reindirizzamento), poi fai clic su Save app in fondo alla pagina.
Ti verrà così proposta una pagina riepilogativa contenente due dettagli fondamentali: Client ID e Client Secret. Custodisci questi dati al sicuro e non fornirli a nessuno. Il primo dei due ti servirà per far funzionare lo script di backup.
Lo script di backup
Esiste già, si trova su GitHub e basta poco per farlo funzionare. Parlo di Trakt Backup di
Salva il file modificato, non serve fare null’altro, sei pronto a lanciarlo :-)
Da prompt ti basterà ora eseguire lo script di backup (e non quello di request, occhio!) e rispondere alle domande poste:
root@117:/Scripts/Trakt/trakt_backup# python3 trakt_backup.py Save files here (shell current working directory) ? [Y/n] (files will otherwise be saved in /root): y Files will be saved in: /Scripts/Trakt/trakt_backup/trakt_backup Enter your Trakt username: gioxx
In cosa consistono le risposte fornite? Semplice. Ho chiesto allo script di creare la cartella di backup all’interno di quella dello script e gli ho indicato il mio username sulla piattaforma. Avrei potuto lanciare lo script fornendo la risposta e lo username già da riga di comando (quindi python3 trakt_backup.py -Y gioxx
) per far prima, utile saperlo per quando si programma l’esecuzione automatica dello script:
root@117:/Scripts/Trakt/trakt_backup# python3 trakt_backup.py -Y gioxx Files will be saved in: /Scripts/Trakt/trakt_backup/trakt_backup Unsupported or no file type specified, defaulting to json
L’operazione andrà avanti e scaricherà tutti i dettagli personali del mio account fino a quando non arriverà il momento di eseguire il file di risultato, cosa che fallisce sulla mia virtuale DietPi senza però impattare in alcun modo il corretto backup:
A voler evitare l’errore si potrebbe tranquillamente commentare la riga 94 dello script (launch_file(new_backup_folder_name)
). Tutto il necessario si troverà ora nella cartella “trakt_backup” all’interno della quale verranno create tante sottocartelle per quanti backup verranno lanciati, nominando le cartelle con data e ora corrente:
I file JSON sono perfettamente compatibili con Trakt e possono essere facilmente conservati e reimportati sulla piattaforma in caso di emergenza. In generale sono di “facile manipolazione” (per chi è abituato a lavorare con) e quindi lavorazione per trasferirsi altrove.
E l’alternativa Bash?
Hai ragione, eccola: github.com/mstarzinger/trakt-backup. Anche questa è abbastanza semplice da utilizzare perché ben documentata su GitHub, e puoi sempre programmare un’operazione che a cadenza regolare vada a scaricare i dati sempre aggiornati dai server di Trakt. Nulla che un crontab non possa facilmente permetterti.
Va da sé che sulla macchina Linux che si occupa di effettuare il backup puoi sempre pensare di usare Rclone per copiare quei file su Dropbox, Google Drive e una serie di altri Cloud Drive che mira all’imbarazzo per la scelta. Se ci sono dubbi ricorda che l’area commenti è a tua totale disposizione, anche per confrontarci su ulteriori possibili soluzioni :-)
#StaySafe
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)