59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
class youtube (ChannelPlugin):
# description
title = "Youtube"
module = "youtube"
homepage = "http://www.youtube.com/"
listformat = "url/youtube"
fmt = "video/youtube"
titles = dict( genre="Channel", title="Title", playing="Playlist", bitrate=False, listeners=False )
# API config
service = {
2: [ "http://gdata.youtube.com/",
{
|
>
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
class youtube (ChannelPlugin):
# description
title = "Youtube"
module = "youtube"
homepage = "http://www.youtube.com/"
listformat = "url/youtube"
has_search = True
fmt = "video/youtube"
titles = dict( genre="Channel", title="Title", playing="Playlist", bitrate=False, listeners=False )
# API config
service = {
2: [ "http://gdata.youtube.com/",
{
|
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
"fields": "pageInfo,nextPageToken,items(id,snippet(title,thumbnails/default/url,channelTitle))",
}
]
}
categories = [
"mostPopular",
["Music", "Comedy", "Movies", "Shows", "Short Movies", "Trailers", "Film & Animation", "Entertainment", "News & Politics"],
"topics",
["Pop", "Billboard charts", "Rock", "Hip Hop", "Classical", "Soundtrack", "Ambient",
"Jazz", "Blues", "Soul", "Country", "Disco", "Dance", "House", "Trance", "Techno", "Electronica"],
"my channels",
["Key of Awesome", "Pentatonix"]
]
|
|
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
"fields": "pageInfo,nextPageToken,items(id,snippet(title,thumbnails/default/url,channelTitle))",
}
]
}
categories = [
"mostPopular",
["Music", "Comedy", "Movies", "Shows", "Trailers", "Film & Animation", "Entertainment", "News & Politics"],
"topics",
["Pop", "Billboard charts", "Rock", "Hip Hop", "Classical", "Soundtrack", "Ambient",
"Jazz", "Blues", "Soul", "Country", "Disco", "Dance", "House", "Trance", "Techno", "Electronica"],
"my channels",
["Key of Awesome", "Pentatonix"]
]
|
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
# just a static list for now
def update_categories(self):
i = self.categories.index("my channels") + 1
self.categories[i] = [ title.strip() for title in conf.youtube_channels.split(",") ]
# retrieve and parse
def update_streams(self, cat, force=0, search=None):
entries = []
channels = self.categories[self.categories.index("my channels") + 1]
# Most Popular
if cat == "mostPopular":
#for row in self.api("feeds/api/standardfeeds/%s/most_popular"%conf.youtube_region, ver=2):
# entries.append(self.wrap2(row))
for row in self.api("videos", chart="mostPopular", regionCode=conf.youtube_region):
entries.append( self.wrap3(row, {"genre": "mostPopular"}) )
# Categories
elif cat in self.videocat_id:
|
|
>
>
>
>
>
|
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
# just a static list for now
def update_categories(self):
i = self.categories.index("my channels") + 1
self.categories[i] = [ title.strip() for title in conf.youtube_channels.split(",") ]
# retrieve and parse
def update_streams(self, cat, search=None):
entries = []
channels = self.categories[self.categories.index("my channels") + 1]
# plain search request for videos
if search is not None:
for row in self.api("search", type="video", regionCode=conf.youtube_region, q=search):
entries.append( self.wrap3(row, {"genre": "Youtube"}) )
# Most Popular
elif cat == "mostPopular":
#for row in self.api("feeds/api/standardfeeds/%s/most_popular"%conf.youtube_region, ver=2):
# entries.append(self.wrap2(row))
for row in self.api("videos", chart="mostPopular", regionCode=conf.youtube_region):
entries.append( self.wrap3(row, {"genre": "mostPopular"}) )
# Categories
elif cat in self.videocat_id:
|
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
# items (videos)
for row in self.api("playlistItems", playlistId=playlist["id"], fields="items(snippet(title,resourceId/videoId,description))"):
entries.append(self.wrap3(row, {"genre": cat, "playing": playlist["snippet"]["title"]}))
self.update_streams_partially_done(entries)
self.parent.status(i / 15.0)
# plain search request for videos
elif search is not None:
for row in self.api("search", type="video", regionCode=conf.youtube_region, q=search):
entries.append( self.wrap3(row, {"genre": ""}) )
# empty entries
else:
entries = [dict(title="Placeholder for subcategories", genre="./.", playing="./.", url="http://youtube.com/")]
# done
return entries
|
<
<
<
<
|
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
# items (videos)
for row in self.api("playlistItems", playlistId=playlist["id"], fields="items(snippet(title,resourceId/videoId,description))"):
entries.append(self.wrap3(row, {"genre": cat, "playing": playlist["snippet"]["title"]}))
self.update_streams_partially_done(entries)
self.parent.status(i / 15.0)
# empty entries
else:
entries = [dict(title="Placeholder for subcategories", genre="./.", playing="./.", url="http://youtube.com/")]
# done
return entries
|