51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 | has_search = True
base = "http://www.jamendo.com/en/"
listformat = "url/http"
api = "http://api.jamendo.com/v3.0/"
cid = "49daa4f5"
categories = [
"radios",
"playlists",
"albums",
"tracks",
["pop", "rock", "dance", "classical", "jazz", "instrumental"]
]
titles = dict( title="Title", playing="Album/Artist/User", bitrate=False, listeners=False )
config = [
{"name":"jamendo_stream_format", "value":"ogg2", "type":"text", "description":"streaming format, 'ogg2' or 'mp31'"}
]
# refresh category list
def update_categories(self):
pass
# retrieve category or search
def update_streams(self, cat, search="", force=0):
entries = []
# return a static list for now
if cat == "radios":
entries = [
{"title": "Best Of", "url": "http://streaming.radionomy.com/BestOf", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/bestof30.jpg"},
{"title": "Pop", "url": "http://streaming.radionomy.com/JamPop", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/pop30.jpg"},
{"title": "Rock", "url": "http://streaming.radionomy.com/JamRock", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/rock30.jpg"},
{"title": "Lounge", "url": "http://streaming.radionomy.com/JamLounge", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/lounge30.jpg"},
{"title": "Electro", "url": "http://streaming.radionomy.com/JamElectro", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/electro30.jpg"},
{"title": "HipHop", "url": "http://streaming.radionomy.com/JamHipHop", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/hiphop30.jpg"},
{"title": "World", "url": "http://streaming.radionomy.com/JamWorld", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/world30.jpg"},
{"title": "Jazz", "url": "http://streaming.radionomy.com/JamJazz", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/jazz30.jpg"},
{"title": "Metal", "url": "http://streaming.radionomy.com/JamMetal", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/metal30.jpg"},
{"title": "Soundtrack", "url": "http://streaming.radionomy.com/JamSoundtrack", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/soundtrack30.jpg"},
{"title": "Relaxation", "url": "http://streaming.radionomy.com/JamRelaxation", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/relaxation30.jpg"},
{"title": "Classical", "url": "http://streaming.radionomy.com/JamClassical", "playing": "", "format": "audio/mpeg", "homepage": "http://www.jamendo.com/en/radios", "favicon": "http://imgjam1.jamendo.com/new_jamendo_radios/classical30.jpg"},
]
# playlist
if cat == "playlists":
data = http.get(self.api + cat, params = {
"client_id": self.cid,
"format": "json",
"limit": "200"
})
for e in json.loads(data)["results"]:
entries.append({
"title": e["name"],
"playing": e["user_name"],
"homepage": e["shareurl"],
#"url": "http://api.jamendo.com/v3.0/playlists/file?client_id=%s&id=%s" % (self.cid, e["id"]),
"url": "http://api.jamendo.com/get2/stream/track/xspf/?playlist_id=%s&n=all&order=random&from=app-%s" % (e["id"], self.cid),
"format": "application/xspf+xml",
})
# albums
if cat == "albums":
data = http.get(self.api + cat, params = {
"client_id": self.cid,
"format": "json",
"limit": "200",
"imagesize": "50"
})
for e in json.loads(data)["results"]:
entries.append({
"title": e["name"],
"playing": e["artist_name"],
"favicon": e["image"],
"homepage": e["shareurl"],
#"url": "http://api.jamendo.com/v3.0/playlists/file?client_id=%s&id=%s" % (self.cid, e["id"]),
"url": "http://api.jamendo.com/get2/stream/track/xspf/?album_id=%s&streamencoding=ogg2&n=all&from=app-%s" % (e["id"], self.cid),
"format": "application/xspf+xml",
})
# genre list |
|
<
<
<
<
<
|
>
|
>
>
>
>
>
|
>
|
|
|
|
|
|
|
|
|
|
|
<
<
<
|
>
|
|
|
>
>
|
| 51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 | has_search = True
base = "http://www.jamendo.com/en/"
listformat = "url/http"
api = "http://api.jamendo.com/v3.0/"
cid = "49daa4f5"
categories = ["radios"]
titles = dict( title="Title", playing="Album/Artist/User", bitrate=False, listeners=False )
config = [
{"name":"jamendo_stream_format", "value":"ogg2", "type":"text", "description":"streaming format, 'ogg2' or 'mp31'"}
]
# refresh category list
def update_categories(self):
self.categories = [
"radios",
"playlists",
"albums",
["newest"],
"tracks",
["pop", "rock", "dance", "classical", "jazz", "instrumental"]
]
return self.categories
# retrieve category or search
def update_streams(self, cat, search="", force=0):
entries = []
# return a static list for now
if cat == "radios":
entries = []
for radio in ["BestOf", "Pop", "Rock", "Lounge", "Electro", "HipHop", "World", "Jazz", "Metal", "Soundtrack", "Relaxation", "Classical"]:
entries.append({
"genre": radio,
"title": radio,
"url": "http://streaming.radionomy.com/Jam" + radio,
"playing": "various artists",
"format": "audio/mpeg",
"homepage": "http://www.jamendo.com/en/radios",
"img": "http://imgjam1.jamendo.com/new_jamendo_radios/%s30.jpg" % radio.lower(),
})
# playlist
if cat == "playlists":
data = http.get(self.api + cat, params = {
"client_id": self.cid,
"format": "json",
"limit": "200",
"order": "creationdate_desc",
})
for e in json.loads(data)["results"]:
entries.append({
"title": e["name"],
"playing": e["user_name"],
"homepage": e["shareurl"],
#"url": "http://api.jamendo.com/v3.0/playlists/file?client_id=%s&id=%s" % (self.cid, e["id"]),
"url": "http://api.jamendo.com/get2/stream/track/xspf/?playlist_id=%s&n=all&order=random&from=app-%s" % (e["id"], self.cid),
"format": "application/xspf+xml",
})
# albums
if cat in ["albums", "newest"]:
data = http.get(self.api + "albums/musicinfo", params = {
"client_id": self.cid,
"format": "json",
"limit": "200",
"imagesize": "50",
"order": ("popularity_week" if cat == "albums" else "releasedate_desc"),
})
for e in json.loads(data)["results"]:
entries.append({
"genre": " ".join(e["musicinfo"]["tags"]),
"title": e["name"],
"playing": e["artist_name"],
"img": e["image"],
"homepage": e["shareurl"],
#"url": "http://api.jamendo.com/v3.0/playlists/file?client_id=%s&id=%s" % (self.cid, e["id"]),
"url": "http://api.jamendo.com/get2/stream/track/xspf/?album_id=%s&streamencoding=ogg2&n=all&from=app-%s" % (e["id"], self.cid),
"format": "application/xspf+xml",
})
# genre list |
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166 | "order": "popularity_week",
"include": "musicinfo",
})
for e in json.loads(data)["results"]:
entries.append({
"lang": e["musicinfo"]["lang"],
"genre": " ".join(e["musicinfo"]["tags"]["genres"]),
"description": ", ".join(e["musicinfo"]["tags"]["vartags"]),
"title": e["name"],
"playing": e["album_name"] + " / " + e["artist_name"],
"favicon": e["album_image"],
"homepage": e["shareurl"],
#"url": e["audio"],
"url": "http://storage-new.newjamendo.com/?trackid=%s&format=ogg2&u=0&from=app-%s" % (e["id"], self.cid),
"format": "audio/ogg",
})
# done |
|
|
| 151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168 | "order": "popularity_week",
"include": "musicinfo",
})
for e in json.loads(data)["results"]:
entries.append({
"lang": e["musicinfo"]["lang"],
"genre": " ".join(e["musicinfo"]["tags"]["genres"]),
"extra": ", ".join(e["musicinfo"]["tags"]["vartags"]),
"title": e["name"],
"playing": e["album_name"] + " / " + e["artist_name"],
"img": e["album_image"],
"homepage": e["shareurl"],
#"url": e["audio"],
"url": "http://storage-new.newjamendo.com/?trackid=%s&format=ogg2&u=0&from=app-%s" % (e["id"], self.cid),
"format": "audio/ogg",
})
# done |