diff --git a/src/you_get/extractors/vimeo.py b/src/you_get/extractors/vimeo.py index 60611f74..29e21049 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, info_only) + +#---------------------------------------------------------------------- +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, 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) @@ -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, info_only) + 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