From 7ccf5d63a4bc6fea65194524c57ef09224426976 Mon Sep 17 00:00:00 2001 From: cnbeining Date: Thu, 10 Sep 2015 02:15:31 -0400 Subject: [PATCH 1/2] Add Vimeo Channel support --- src/you_get/extractors/vimeo.py | 36 ++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/you_get/extractors/vimeo.py b/src/you_get/extractors/vimeo.py index 60611f74..e1a4e5f1 100644 --- a/src/you_get/extractors/vimeo.py +++ b/src/you_get/extractors/vimeo.py @@ -1,8 +1,31 @@ #!/usr/bin/env python -__all__ = ['vimeo_download', 'vimeo_download_by_id'] +__all__ = ['vimeo_download', 'vimeo_download_by_id', 'vimeo_download_by_channel', 'vimeo_download_by_channel_id'] from ..common import * +from json import loads +access_token = 'f6785418277b72c7c87d3132c79eec24' #By Beining + +#---------------------------------------------------------------------- +def vimeo_download_by_channel(url, output_dir = '.', merge = False, info_only = False): + """str->None""" + # https://vimeo.com/channels/464686 + channel_id = match1(url, r'http://vimeo.com/channels/(\w+)') + vimeo_download_by_channel_id(channel_id, output_dir = '.', merge = False, info_only = False) + +#---------------------------------------------------------------------- +def vimeo_download_by_channel_id(channel_id, output_dir = '.', merge = False, info_only = False): + """str/int->None""" + html = get_content('https://api.vimeo.com/channels/{channel_id}/videos?access_token={access_token}'.format(channel_id = channel_id, access_token = access_token)) + data = loads(html) + id_list = [] + + #print(data) + for i in data['data']: + id_list.append(match1(i['uri'], r'/videos/(\w+)')) + + for id in id_list: + vimeo_download_by_id(id) def vimeo_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): video_page = get_content('http://player.vimeo.com/video/%s' % id, headers=fake_headers) @@ -21,11 +44,14 @@ def vimeo_download_by_id(id, title = None, output_dir = '.', merge = True, info_ download_urls([url], title, ext, size, output_dir, merge = merge, faker = True) def vimeo_download(url, output_dir = '.', merge = True, info_only = False): - id = r1(r'http://[\w.]*vimeo.com[/\w]*/(\d+)$', url) - assert id + if re.match(r'http://vimeo.com/channels/\w+', url): + vimeo_download_by_channel(url, output_dir='.', merge=False, info_only=False) + else: + id = r1(r'http://[\w.]*vimeo.com[/\w]*/(\d+)$', url) + assert id - vimeo_download_by_id(id, None, output_dir = output_dir, merge = merge, info_only = info_only) + vimeo_download_by_id(id, None, output_dir = output_dir, merge = merge, info_only = info_only) site_info = "Vimeo.com" download = vimeo_download -download_playlist = playlist_not_supported('vimeo') +download_playlist = vimeo_download_by_channel From c67766c156c0d3304dc8d4a45e13804100afe115 Mon Sep 17 00:00:00 2001 From: cnbeining Date: Sat, 12 Sep 2015 17:20:31 -0400 Subject: [PATCH 2/2] Fix #634 L2 --- src/you_get/extractors/vimeo.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/you_get/extractors/vimeo.py b/src/you_get/extractors/vimeo.py index e1a4e5f1..29e21049 100644 --- a/src/you_get/extractors/vimeo.py +++ b/src/you_get/extractors/vimeo.py @@ -11,7 +11,7 @@ def vimeo_download_by_channel(url, output_dir = '.', merge = False, info_only = """str->None""" # https://vimeo.com/channels/464686 channel_id = match1(url, r'http://vimeo.com/channels/(\w+)') - vimeo_download_by_channel_id(channel_id, output_dir = '.', merge = False, info_only = False) + vimeo_download_by_channel_id(channel_id, output_dir, merge, info_only) #---------------------------------------------------------------------- def vimeo_download_by_channel_id(channel_id, output_dir = '.', merge = False, info_only = False): @@ -25,7 +25,7 @@ def vimeo_download_by_channel_id(channel_id, output_dir = '.', merge = False, in id_list.append(match1(i['uri'], r'/videos/(\w+)')) for id in id_list: - vimeo_download_by_id(id) + vimeo_download_by_id(id, None, output_dir, merge, info_only) def vimeo_download_by_id(id, title = None, output_dir = '.', merge = True, info_only = False): video_page = get_content('http://player.vimeo.com/video/%s' % id, headers=fake_headers) @@ -45,7 +45,7 @@ def vimeo_download_by_id(id, title = None, output_dir = '.', merge = True, info_ def vimeo_download(url, output_dir = '.', merge = True, info_only = False): if re.match(r'http://vimeo.com/channels/\w+', url): - vimeo_download_by_channel(url, output_dir='.', merge=False, info_only=False) + vimeo_download_by_channel(url, output_dir, merge, info_only) else: id = r1(r'http://[\w.]*vimeo.com[/\w]*/(\d+)$', url) assert id