예제 #1
0
def os_query(qry):
    start = time.time()
    retval = os.system(qry)
    duration = time.time() - start
    if retval:
        logger.error("[%(duration).2fs], retval=%(retval)s, %(qry)s" % locals())
        raise OSError("Cannot execute %(qry)s" % locals())
    else:
        logger.info("[%(duration).2fs], retval=%(retval)s, %(qry)s" % locals())
예제 #2
0
 def clean_channel_playlist(self, playlist_id):
     if not self.accessToken:
         self.get_access_token()
     headers = {'Authorization': 'Bearer ' + self.accessToken}
     url = 'https://www.googleapis.com/youtube/v3/playlistItems'
     r = requests.get(url, params={'part': 'snippet',
                                   'playlistId': playlist_id,
                                   'maxResults': 50}, headers=headers)
     for video in r.json()['items']:
         vd = requests.delete(url, params={'id': video['id']}, headers=headers)
         if vd.status_code != 204:
             logger.error("Error removing song from playlist %s" % (vd.text))
예제 #3
0
 def build_channel_playlist(self, playlist_id, songs):
     if not self.accessToken:
         self.get_access_token()
     url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet'
     headers = {'Authorization': 'Bearer ' + self.accessToken,
                'Content-Type': 'application/json'}
     songPosition = -1
     for song in songs:
         if song.youtube_id:
             songPosition += 1
             payload = json.dumps({'snippet':
                                   {
                                       'playlistId': playlist_id,
                                       'resourceId': {
                                           'kind': 'youtube#video',
                                           'videoId': song.youtube_id
                                       },
                                       'position': songPosition
                                   }
                                   })
             logger.debug('Sending payload %s' % (payload))
             r = requests.post(url, data=payload, headers=headers)
             if r.status_code != 200:
                 logger.error("Error publishing %s : %s" % (song.artist + ' / ' + song.title, r.text))