diff options
| author | Remita Amine <remitamine@gmail.com> | 2019-07-13 12:47:02 +0100 | 
|---|---|---|
| committer | Remita Amine <remitamine@gmail.com> | 2019-07-13 12:47:02 +0100 | 
| commit | fd95105ed4293098d15dec4bd48d6c761d32ab83 (patch) | |
| tree | 839ee05b31b209ca0c52b07b2235718501827ac1 | |
| parent | c72dc20d099bbe1dc4ede83e8f94a7bc42d81532 (diff) | |
[livejournal] Add new extractor(closes #21526)
| -rw-r--r-- | youtube_dl/extractor/extractors.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/livejournal.py | 42 | 
2 files changed, 43 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index e88ad34a8..75a53f54b 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -579,6 +579,7 @@ from .linkedin import (  )  from .linuxacademy import LinuxAcademyIE  from .litv import LiTVIE +from .livejournal import LiveJournalIE  from .liveleak import (      LiveLeakIE,      LiveLeakEmbedIE, diff --git a/youtube_dl/extractor/livejournal.py b/youtube_dl/extractor/livejournal.py new file mode 100644 index 000000000..3a9f4553f --- /dev/null +++ b/youtube_dl/extractor/livejournal.py @@ -0,0 +1,42 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import compat_str +from ..utils import int_or_none + + +class LiveJournalIE(InfoExtractor): +    _VALID_URL = r'https?://(?:[^.]+\.)?livejournal\.com/video/album/\d+.+?\bid=(?P<id>\d+)' +    _TEST = { +        'url': 'https://andrei-bt.livejournal.com/video/album/407/?mode=view&id=51272', +        'md5': 'adaf018388572ced8a6f301ace49d4b2', +        'info_dict': { +            'id': '1263729', +            'ext': 'mp4', +            'title': 'Истребители против БПЛА', +            'upload_date': '20190624', +            'timestamp': 1561406715, +        } +    } + +    def _real_extract(self, url): +        video_id = self._match_id(url) +        webpage = self._download_webpage(url, video_id) +        record = self._parse_json(self._search_regex( +            r'Site\.page\s*=\s*({.+?});', webpage, +            'page data'), video_id)['video']['record'] +        storage_id = compat_str(record['storageid']) +        title = record.get('name') +        if title: +            # remove filename extension(.mp4, .mov, etc...) +            title = title.rsplit('.', 1)[0] +        return { +            '_type': 'url_transparent', +            'id': video_id, +            'title': title, +            'thumbnail': record.get('thumbnail'), +            'timestamp': int_or_none(record.get('timecreate')), +            'url': 'eagleplatform:vc.videos.livejournal.com:' + storage_id, +            'ie_key': 'EaglePlatform', +        } | 
