Select Git revision
-
Bachir Lachguel authoredBachir Lachguel authored
download_server.py 5.34 KiB
# coding: latin-1
import os
from time import time
#from googleapiclient.discovery import build
from requests.api import get
from json import load,dumps
from credentials import KEY
#commande test : "yt-dlp -f 'ba' -x --audio-format mp3 https://www.youtube.com/watch?v=zA2YBT9z6pA -o '%(id)s.mp3' "
caracteres = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_=+\';!?$%&#~<> "
remplacements = {"(":"-" , ")": "-" , "\"" : "\'","�":"e","�":"a","�":"e","�":"u","�":"e","�":"a","�":"o","�":"o" ,"�":"o","�":"i","�":"u","�":"U","/":" "}
def replace(caract,remplacements) :
if caract in remplacements.keys() :
return remplacements[caract]
else :
return caract
#Supprimer tous les caracteres interdits
def garde(chn,caracteres):
print("filtrage de : "+chn)
res = ("".join([x for x in chn if x in caracteres]) )
return res
def remplacer(chn,remplacements):
res = ("".join([replace(x,remplacements) for x in chn]))
print("type(res) : "+ str(type(res)) )
return res
def addplaylist(playlistid):
os.chdir("/mnt/usb/bleezrdata")
chn = 'https://www.googleapis.com/youtube/v3/playlists?part=snippet&id='+playlistid+'&key='+KEY
dico = get(chn).json()
playlistname = dico["items"][0]["snippet"]["title"]
with open("playlistinfo.json",'r') as f :
data = load(f)
if not playlistid in [x['id'] for x in data] :
data.append({'id':playlistid,'name':playlistname})
with open("playlistinfo.json",'w') as f :
f.write(dumps(data))
with open("playlists.json",'r') as f :
data = load(f)
if not playlistid in data:
data.append(playlistid)
with open("playlists.json",'w') as f :
f.write(dumps(data))
addplaylist("PL8V2Ld0Is1-kUaNtXmvYGtYoyZ0O2aqDt")
os.chdir("/mnt/usb/bleezrdata")
t = time()
while True :
tt = time()
if tt - t > 60. :
print("actualisation ...")
os.system('sudo echo "\n la dernière actualisation date de : " >> history.txt')
os.system('date >> history.txt')
t = tt
with open("playlists.json",'r') as f :
data = load(f)
for playlist in data :
if playlist not in os.listdir("musics"):
print("La playlist " + playlist + " n\'est pas dans le repertoire" )
os.chdir("musics")
os.mkdir(playlist)
os.chdir(playlist)
#On remplit le dossier de cette playlist
os.mkdir("contents")
with open("seen.json",'w') as f :
f.write("[]")
with open("seen_names.json",'w') as f :
f.write("[]")
os.chdir("../..")
#A supprimer lorsque tout le code aura �t� fait proprement
if "seen_names.json" not in os.listdir("musics/"+playlist):
print("seen_names.json n\'est pas dans le r�pertoire de la playlist")
with open("musics/"+playlist+"/seen_names.json",'w') as f :
f.write("[]")
os.chdir("musics/"+playlist)
chn = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId='+playlist+'&key='+KEY
print(chn)
requete = get(chn)
dico = requete.json()
all_videos = [x['snippet']['resourceId']['videoId'] for x in dico['items']]
all_videos_names = [x['snippet']['title'] for x in dico['items']]
#print("longueur de all_videos : {}".format(len(all_videos)))
with open('seen.json','r') as f2 :
seen_videos = load(f2)
with open('seen_names.json','r') as f3 :
seen_videos_names = load(f3)
os.chdir("contents")
i = 0
while i < len(all_videos) and all_videos[i] not in seen_videos :
vid = all_videos[i]
vid_name = garde(remplacer(all_videos_names[i],remplacements),caracteres)
print(vid)
print(vid_name)
#command = "yt-dlp -f 'ba' -x --audio-format mp3 https://www.youtube.com/watch?v={0} -o '%(title)s.mp3' ".format(vid)
command = "yt-dlp -f 'ba' -x --audio-format mp3 https://www.youtube.com/watch?v={0} -o \"{1}.mp3\"".format(vid,vid_name)
print(command)
os.system(command)
if vid_name+".mp3" in os.listdir(".") :
seen_videos.append(vid)
seen_videos_names.append(vid_name)
i += 1
os.chdir("../")
with open('seen.json','w') as f2 :
f2.write(dumps(seen_videos))
with open('seen_names.json','w') as f :
f.write(dumps(seen_videos_names))
os.chdir("../")
os.chdir("../")
"""
playlist = "PL8V2Ld0Is1-kWGtqHFOJiwwnU1lWbpC1r"
chn = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId='+playlist+'&key='+KEY
requete = get(chn)
dico = requete.json()
l = dico['items']
print([x['snippet']['resourceId']['videoId'] for x in l])
"""