-
Notifications
You must be signed in to change notification settings - Fork 10k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Mildom] Add new extractor #25958
[Mildom] Add new extractor #25958
Changes from 7 commits
9cbf7f1
8be011b
2f5eb72
f477b12
40d8455
a75f383
0ca9dbd
114f514
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# coding: utf-8 | ||
from __future__ import unicode_literals | ||
|
||
import re | ||
|
||
from .common import InfoExtractor | ||
from ..compat import compat_str | ||
from ..utils import try_get | ||
|
||
|
||
class MildomIE(InfoExtractor): | ||
_VALID_URL = r'https?://(?:www\.)?mildom\.com/playback/(?P<channel>[0-9]+)\?v_id=(?P<id>[-0-9]+)' | ||
_VIDEO_INFO_BASE_URL = 'https://cloudac.mildom.com/nonolive/videocontent/playback/getPlaybackDetail' | ||
_TEST = { | ||
'url': 'https://www.mildom.com/playback/10819667?v_id=10819667-1594032863', | ||
'md5': 'bed067a7dff3492184bd06d6131dd8be', | ||
'info_dict': { | ||
'id': '10819667-1594032863', | ||
'ext': 'mp4', | ||
'title': '月曜!雀荘ほめちぎり #1', | ||
'thumbnail': r're:^https?://.*\.png$', | ||
'description': '#1 記念すべき初回の出演者は声優の高木美佑さんとVtuber界の麻雀つよつよ先生こと千羽黒乃さん!\nMildom公式番組『麻雀番組』毎週月曜に生放送!\n麻雀アプリも使った視聴者対戦型麻雀バラエティ!', | ||
'uploader': '月曜!雀荘ほめちぎり' | ||
} | ||
} | ||
|
||
def _real_extract(self, url): | ||
channel_id, video_id = re.match(self._VALID_URL, url).groups() | ||
|
||
webpage = self._download_webpage(url, video_id) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe this could be done only if necessary to save one request? |
||
video_data = self._download_json( | ||
self._VIDEO_INFO_BASE_URL + '?v_id=%s' % video_id, video_id) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it's better to directly include |
||
playback_data = video_data['body']['playback'] | ||
|
||
video_url = playback_data['source_url'] | ||
description = playback_data.get('video_intro') | ||
uploader = try_get(playback_data, lambda x: x['author_info']['login_name'], compat_str) | ||
title = playback_data.get('title') | ||
if not title: | ||
title = self._html_search_meta( | ||
['og:description', 'description'], | ||
webpage, 'title', default=None) | ||
thumbnail = playback_data.get('video_pic') | ||
if not thumbnail: | ||
thumbnail = self._html_search_meta( | ||
'og:image', | ||
webpage, 'thumbnail', default=None) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This could use thumbnail = self._og_search_thumbnail(webpage, default=None) |
||
|
||
return { | ||
'id': video_id, | ||
'title': title, | ||
'url': video_url, | ||
'uploader': uploader, | ||
'channel_id': channel_id, | ||
'thumbnail': thumbnail, | ||
'description': description | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(according to json)