From 7d280b8c1370c10d262165a7be0087f37e27f69f Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Wed, 10 Apr 2024 13:33:52 +0200 Subject: [PATCH] Save youtube credentials --- musik/list.py | 2 +- musik/youtube.py | 17 +++++++++++++++-- youtube.pickle | Bin 0 -> 990 bytes 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 youtube.pickle diff --git a/musik/list.py b/musik/list.py index 166d2a4..2416d6a 100644 --- a/musik/list.py +++ b/musik/list.py @@ -1,8 +1,8 @@ import logging import random import re -from datetime import datetime import sys +from datetime import datetime logger = logging.getLogger("musik.list") diff --git a/musik/youtube.py b/musik/youtube.py index a2e2874..7012b50 100644 --- a/musik/youtube.py +++ b/musik/youtube.py @@ -1,5 +1,7 @@ import logging from datetime import date +from pathlib import Path +import pickle import google_auth_oauthlib.flow import googleapiclient.discovery @@ -9,13 +11,24 @@ logger = logging.getLogger("musik.youtube") def create_playlist(musik_list): + pickle_path = Path("./youtube.pickle") + # Connexion à l'API youtube, obtention d'un jeton OAuth logger.info("Connexion à l'API Youtube") flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file( "./secret.json", ["https://www.googleapis.com/auth/youtube.force-ssl"] ) - credentials = flow.run_local_server(port=0) - youtube = googleapiclient.discovery.build("youtube", "v3", credentials=credentials) + if pickle_path.is_file(): + with pickle_path.open("rb") as f: + credentials = pickle.load(f) + else: + credentials = flow.run_local_server(port=0) + with pickle_path.open("wb") as f: + pickle.dump(credentials, f) + + youtube = googleapiclient.discovery.build( + "youtube", "v3", credentials=credentials + ) # Création d'une playlist logger.info("Création de la playlist") diff --git a/youtube.pickle b/youtube.pickle new file mode 100644 index 0000000000000000000000000000000000000000..c84889b2c87c7ad6e0eb8c839e5a4d909a9e9fda GIT binary patch literal 990 zcmbW0O^@0}7{?n)!kAEUEfsFEDxldX~dexBd&KY!l;`=9Ub{r6PQLPEj>*9k26My(@? z1Dx>)CQMX6^gjFgAb$HxycNGz4>*Z&CaRAIsG4=CSb?TGt(qAdb_~JpMrB>h7k0O+1w+^#huhNGU$bVgS))<^ z3KAF1QnMKP$aDvOiH%O}T3cSYu7Bv1^F?A{ zCq))OndekbK#@fyrVN9Cq%e{s&+i<-JYsc3Qc*nvg*?tk2KmIHwVIJTCSHMC})vmex^=9p^JCc2*P&6Mg{XgZTuX55O?&ZJ*X zXUceFYu+mjKx5|G-8A>nlyPr)VWjJV*amik!#0p5`(Bbd{`HnuNMXita2oAfcRag` z1O<&m_54KXSn{tx9alaBD2ZhEZ_QOBT``QNqPMk9Tdyg;-cdD%V~v`*Nst<)dSqa< zHPbNTdRd2g&W`-0If{tfA>(&4&ri7w%iG1}I77GR%~!Ram3RK=`F*v$U4?YC*f>0h rLDyvIVkIvhpfKnElld9o4EhO{qHe{We91mM1`r|HFPVH#6n_0*+MH>q literal 0 HcmV?d00001