diff options
| author | 2022-12-24 17:14:46 -0500 | |
|---|---|---|
| committer | 2022-12-24 17:14:46 -0500 | |
| commit | ebdfcd3cd3f76534a590ba08933ff7ea54813316 (patch) | |
| tree | 35db6003766dff695cf8a5aa24f47629b602b7c0 /gallery_dl/extractor/webmshare.py | |
| parent | 3338dfce719c999467ffe08fd45663be8190057a (diff) | |
New upstream version 1.24.2.upstream/1.24.2
Diffstat (limited to 'gallery_dl/extractor/webmshare.py')
| -rw-r--r-- | gallery_dl/extractor/webmshare.py | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/gallery_dl/extractor/webmshare.py b/gallery_dl/extractor/webmshare.py new file mode 100644 index 0000000..b038425 --- /dev/null +++ b/gallery_dl/extractor/webmshare.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- + +# Copyright 2022 Mike Fährmann +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. + +"""Extractors for https://webmshare.com/""" + +from .common import Extractor, Message +from .. import text + + +class WebmshareVideoExtractor(Extractor): + """Extractor for webmshare videos""" + category = "webmshare" + subcategory = "video" + root = "https://webmshare.com" + filename_fmt = "{id}{title:? //}.{extension}" + archive_fmt = "{id}" + pattern = (r"(?:https?://)?(?:s\d+\.)?webmshare\.com" + r"/(?:play/|download-webm/)?(\w{3,})") + test = ( + ("https://webmshare.com/O9mWY", { + "keyword": { + "date": "dt:2022-12-04 00:00:00", + "extension": "webm", + "filename": "O9mWY", + "height": 568, + "id": "O9mWY", + "thumb": "https://s1.webmshare.com/t/O9mWY.jpg", + "title": "Yeah buddy over here", + "url": "https://s1.webmshare.com/O9mWY.webm", + "views": int, + "width": 320, + }, + }), + ("https://s1.webmshare.com/zBGAg.webm", { + "keyword": { + "date": "dt:2018-12-07 00:00:00", + "height": 1080, + "id": "zBGAg", + "thumb": "https://s1.webmshare.com/t/zBGAg.jpg", + "title": "", + "url": "https://s1.webmshare.com/zBGAg.webm", + "views": int, + "width": 1920, + }, + }), + ("https://webmshare.com/play/zBGAg"), + ("https://webmshare.com/download-webm/zBGAg"), + ) + + def __init__(self, match): + Extractor.__init__(self, match) + self.video_id = match.group(1) + + def items(self): + url = "{}/{}".format(self.root, self.video_id) + extr = text.extract_from(self.request(url).text) + + data = { + "title": text.unescape(extr( + 'property="og:title" content="', '"').rpartition(" — ")[0]), + "thumb": "https:" + extr('property="og:image" content="', '"'), + "url" : "https:" + extr('property="og:video" content="', '"'), + "width": text.parse_int(extr( + 'property="og:video:width" content="', '"')), + "height": text.parse_int(extr( + 'property="og:video:height" content="', '"')), + "date" : text.parse_datetime(extr( + "<small>Added ", "<"), "%B %d, %Y"), + "views": text.parse_int(extr('glyphicon-eye-open"></span>', '<')), + "id" : self.video_id, + "filename" : self.video_id, + "extension": "webm", + } + + if data["title"] == "webmshare": + data["title"] = "" + + yield Message.Directory, data + yield Message.Url, data["url"], data |
