diff --git a/rtv/mime_parsers.py b/rtv/mime_parsers.py index eee99cb..2c0b4be 100644 --- a/rtv/mime_parsers.py +++ b/rtv/mime_parsers.py @@ -130,6 +130,18 @@ class YoutubeMIMEParser(BaseMIMEParser): return url, 'video/x-youtube' +class VimeoMIMEParser(BaseMIMEParser): + """ + Vimeo videos can be streamed with vlc or downloaded with youtube-dl. + Assign a custom mime-type so they can be referenced in mailcap. + """ + pattern = re.compile(r'https?://(www\.)?vimeo\.com/\d+$') + + @staticmethod + def get_mimetype(url): + return url, 'video/x-youtube' + + class GifvMIMEParser(BaseMIMEParser): """ Special case for .gifv, which is a custom video format for imgur serves @@ -537,6 +549,7 @@ parsers = [ RedditUploadsMIMEParser, RedditVideoMIMEParser, YoutubeMIMEParser, + VimeoMIMEParser, LiveleakMIMEParser, TwitchMIMEParser, FlickrMIMEParser, diff --git a/tests/test_mime_parsers.py b/tests/test_mime_parsers.py index 1831251..fc271ce 100644 --- a/tests/test_mime_parsers.py +++ b/tests/test_mime_parsers.py @@ -134,6 +134,10 @@ URLS = OrderedDict([ 'http://www.worldstarhiphop.com/videos/video.php?v=wshhJ6bVdAv0iMrNGFZG', 'http://www.youtube.com/embed/Bze53qwHS8o?autoplay=1', 'video/x-youtube')), + ('vimeo', ( + 'https://vimeo.com/247872788', + 'https://vimeo.com/247872788', + 'video/x-youtube')), ('streamja', ( 'https://streamja.com/6WMb', 'https://cdnja.r.worldssl.net/mp4/6w/6WMb.mp4',