#!/usr/bin/env python # -*- coding: utf-8 -*- import re from Plugin import Plugin class YoutubeChannel(Plugin): def __init__(self, parent): Plugin.__init__(self, parent) props = {} props['name'] = "YoutubeChannel" props['type'] = "container" props['pattern'] = r"http://(www\.)?(de\.)?\youtube\.com/user/*" props['version'] = "0.3" props['description'] = """Youtube.com Channel Download Plugin""" props['author_name'] = ("RaNaN", "Spoob") props['author_mail'] = ("RaNaN@pyload.org", "Spoob@pyload.org") self.props = props self.parent = parent self.html = None self.read_config() def file_exists(self): """ returns True or False """ return True def proceed(self, url, location): self.user = re.search(r"/user/(.+)", self.parent.url).group(1) max_videos = self.config['max_videos'] if not max_videos: max_videos = 1000 #max video a user can upload page = 0 temp_links = [] for start_index in range(1, int(max_videos), 50): max_results = max_videos - page * 50 if max_results > 50: max_results = 50 url = "http://gdata.youtube.com/feeds/api/users/" + self.user + "/uploads?max-results=" + str(max_results) + "&start-index=" + str(start_index) rep = self.req.load(url) new_links = re.findall(r"href\='(http:\/\/www.youtube.com\/watch\?v\=[^']+)", rep) if new_links != []: temp_links.extend(new_links) else: break page += 1 self.links = temp_links