Пример #1
0
    def create_track_from_uri(self, uri):
        if 'youtube' not in uri:
            return None
            
        m = re.search('http://www.youtube.com/get_video.video_id=(.*?)&t=(.*)',uri)

        client = gdata.youtube.service.YouTubeService()
        client.ssl = False

        entry = client.GetYouTubeVideoEntry(video_id=m.group(1))
        logging.debug("Created track from uri %s in youtubesource", uri)
        #PrintEntryDetails(entry)
        swfuri = entry.GetSwfUrl()

        video_id = m.group(1)
        t = m.group(2)

        track = Track(uri)
        track.title = entry.media.title.text
        track.artist = "YOUTUBE VIDEO"
        track.album = entry.media.category[0].text
        #FIXME add search for author on album?
        track.album_uri = None
        track.duration = int(entry.media.duration.seconds)*1000

        return track     
    def create_track_from_uri(self, uri):
        uri = SpotifySource.strip_protocol(uri)
        if uri == None:
            return None
        url = "http://ws.spotify.com/lookup/1/?uri=" + uri

        try:
            e = ET.parse(urllib.urlopen(url))
        except Exception as e:
            return None

        ns = "http://www.spotify.com/ns/music/1"

        if 'album' in uri:
            title = ""
            artist = e.find('.//{%s}artist/{%s}name' % (ns, ns)).text
            album = e.find('.//{%s}name' % ns).text
            duration = 0
            album_uri = uri
        else:
            title = e.find('.//{%s}name' % ns).text
            artist = e.find('.//{%s}artist/{%s}name' % (ns, ns)).text
            album = e.find('.//{%s}album/{%s}name' % (ns, ns)).text
            duration = int(float(e.find('.//{%s}length' % ns).text) * 1000)
            album_uri = "spotify://" + e.find('.//{%s}album' % ns).attrib['href']

        track = Track("spotify://"+uri)
        track.title = title
        track.artist = artist
        track.album = album
        track.album_uri = album_uri
        track.duration = duration

        return track
Пример #3
0
    def create_track_from_uri(self, uri):
        if 'asx' not in uri:
            return None

        logging.debug("Created track from uri %s in srradiosource", uri)
        u = urllib.urlopen(uri)
        str = re.search('\"mms:.+\"', u.read())

        u = open("sr.xml") 
        tree = ET.parse(u)
        u.close()

        track = Track(str.group(0)[1:-1])

        for e in tree.findall('channel'):
            for k in e.findall('streamingurl'):
                for s in k.findall('url'):
                    if uri in s.text:
                        track.title = e.get('name')

        track.artist = "SR RADIOTRACK"
        track.album = "SR RADIOTRACK"
        track.album_uri = None
        track.duration = 1

        return track     
 def create_tracks_from_album(self, album):
     tracks = []
     for track in album['tracks']:
         tmptrack = Track(track['uri'])
         tmptrack.title = track['title']
         tmptrack.artist = track['artist']
         tmptrack.album = album['name']
         tmptrack.album_uri = album['uri']
         tmptrack.duration = track['duration']
         tracks.append(tmptrack)
     return tracks
Пример #5
0
 def index(self, path):
     for top, dirnames, filenames in os.walk(path):
         for filename in filenames:
             if filename.endswith('.mp3'):
                 full_path = os.path.join(top, filename);
                 f = tagpy.FileRef(full_path)
                 t = Track("file://" + full_path)
                 t.title = f.tag().title
                 t.artist = f.tag().artist
                 t.album = f.tag().album
                 a = f.audioProperties()
                 t.duration = a.length * 1000 # to msec
                 self.add_track(t)
Пример #6
0
    def create_track_from_uri(self, uri):
        url = "http://ws.spotify.com/lookup/1/?uri=" + uri

        try:
            e = ET.parse(urllib.urlopen(url))
        except Exception as e:
            return None

        ns = "http://www.spotify.com/ns/music/1"

        title = e.find('.//{%s}name' % ns).text
        artist = e.find('.//{%s}artist/{%s}name' % (ns, ns)).text
        album = e.find('.//{%s}album/{%s}name' % (ns, ns)).text
        duration = int(float(e.find('.//{%s}length' % ns).text) * 1000)

        track = Track("spotify://"+uri)
        track.title = title
        track.artist = artist
        track.album = album
        track.duration = duration

        return track