Mercurial > hg > hybrid-music-recommender-using-content-based-and-social-information
view Code/preview_clip.py @ 21:e68dbee1f6db
Modified code
New datasets
Updated report
author | Paulo Chiliguano <p.e.chiilguano@se14.qmul.ac.uk> |
---|---|
date | Tue, 11 Aug 2015 10:50:36 +0100 |
parents | 0a0d6203638a |
children | 45e6f85d0ba4 |
line wrap: on
line source
# -*- coding: utf-8 -*- """ Created on Wed Jul 15 00:41:44 2015 @author: paulochiliguano """ import csv import time from pyechonest import song, config #http://echonest.github.io/pyechonest/ import oauth2 as oauth #https://github.com/jasonrubenstein/python_oauth2 import urllib2 import os # 7digital keys consumer_key = '7ds28qendsk9' consumer_secret = 'm5nsktn3hu6x45cy' consumer = oauth.Consumer(consumer_key, consumer_secret) # EchoNest key config.ECHO_NEST_API_KEY="LINDFDUTQZQ781IE8" # Retrieve audio clips mp3_folder = '/Users/paulochiliguano/Documents/msc-project/Dataset/clips/' filename_echonest = '/Users/paulochiliguano/Documents/msc-project/Dataset/\ CF_dataset_songID.txt' filename_7digital = '/Users/paulochiliguano/Documents/msc-project/Dataset/\ CF_dataset_metadata.txt' with open(filename_echonest, 'rb') as f, open(filename_7digital, 'wb') as out: writer = csv.writer(out, delimiter='\t') for i in xrange(289): f.readline() next = f.readline() while next != "": try: s = song.Song(next) #s = song.Song('SOPEXHZ12873FD2AC7') #except: except IndexError: time.sleep(3) next = f.readline() else: time.sleep(3) try: ss_tracks = s.get_tracks('7digital-UK') except: time.sleep(3) next = f.readline() else: #print(len(ss_tracks)) if len(ss_tracks) != 0: ss_track = ss_tracks[0] preview_url = ss_track.get('preview_url') track_id = ss_track.get('id') req = oauth.Request( method="GET", url=preview_url, is_form_encoded=True ) req['oauth_timestamp'] = oauth.Request.make_timestamp() req['oauth_nonce'] = oauth.Request.make_nonce() req['country'] = "GB" sig_method = oauth.SignatureMethod_HMAC_SHA1() req.sign_request(sig_method, consumer, token=None) try: response = urllib2.urlopen(req.to_url()) except: #time.sleep(16) print([next[:-2], 'Preview Not Available']) #writer.writerow([next[:-2], 'NA', s.artist_name.encode("utf-8"), s.title.encode("utf-8")]) else: print([ next, track_id, s.artist_name, s.title, preview_url ]) writer.writerow([ next, track_id, s.artist_name.encode("utf-8"), s.title.encode("utf-8"), preview_url ]) mp3_file = os.path.join(mp3_folder, next[:-1]+'.mp3') with open(mp3_file, 'wb') as songfile: songfile.write(response.read()) time.sleep(16) next = f.readline()