summaryrefslogtreecommitdiffstats
path: root/module/plugins/decrypter/YoutubeChannel.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/decrypter/YoutubeChannel.py')
-rw-r--r--module/plugins/decrypter/YoutubeChannel.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/module/plugins/decrypter/YoutubeChannel.py b/module/plugins/decrypter/YoutubeChannel.py
new file mode 100644
index 000000000..27a4ff8a7
--- /dev/null
+++ b/module/plugins/decrypter/YoutubeChannel.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import re
+
+from module.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