Skip to content
Snippets Groups Projects
Select Git revision
  • d0a96f4a0fd757eed252f7211717e0bac92e6400
  • master default
  • datenotunique
  • archives
  • lastToucanUrl
  • urltitle-year
  • lets-hope-for-the-best
  • everything-is-fine
  • feature/change-pdf-endpoint
9 results

app.js

Blame
  • 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])
    """