#!/usr/bin/env python # -*- coding: utf-8 -*- import re from module.plugins.Crypter import Crypter class YoutubeBatch(Crypter): __name__ = "YoutubeBatch" __type__ = "container" __pattern__ = r"http://(?:www\.)?(?:de\.)?\youtube\.com/(?:user/.*?/user/(?P.{16})|(?:.*?feature=PlayList\&|view_play_list\?)p=(?P.{16}))" __version__ = "0.9" __description__ = """Youtube.com Channel Download Plugin""" __author_name__ = ("RaNaN", "Spoob") __author_mail__ = ("RaNaN@pyload.org", "spoob@pyload.org") def setup(self): compile_id = re.compile(self.__pattern__) match_id = compile_id.match(self.pyfile.url) self.playlist = match_id.group(match_id.lastgroup) def file_exists(self): if "User not found" in self.req.load("http://gdata.youtube.com/feeds/api/playlists/%s?v=2" % self.playlist): return False return True def decrypt(self, pyfile): if not self.file_exists(): self.offline() url = "http://gdata.youtube.com/feeds/api/playlists/%s?v=2" % self.playlist rep = self.load(url) new_links = [] new_links.extend(re.findall(r"href\='(http:\/\/www.youtube.com\/watch\?v\=[^']+)&", rep)) self.packages.append((self.pyfile.package().name, new_links, self.pyfile.package().name))