mirror of
https://github.com/ytdl-org/youtube-dl
synced 2025-07-27 22:04:15 +09:00
Completed ErocastIE
This commit is contained in:
parent
5b366d3092
commit
bce9e2bc80
@ -8,101 +8,14 @@ class ErocastIE(InfoExtractor):
|
|||||||
_VALID_URL = r'https?://(?:www\.)?erocast\.me/track/(?P<id>[0-9]+)/([a-z]+-)+[a-z]+'
|
_VALID_URL = r'https?://(?:www\.)?erocast\.me/track/(?P<id>[0-9]+)/([a-z]+-)+[a-z]+'
|
||||||
_TEST = {
|
_TEST = {
|
||||||
'url': 'https://erocast.me/track/4254/intimate-morning-with-your-wife',
|
'url': 'https://erocast.me/track/4254/intimate-morning-with-your-wife',
|
||||||
'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)',
|
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 4254,
|
'id': '4254',
|
||||||
'ext': 'mp3',
|
'ext': 'mp3',
|
||||||
'mp3': 0,
|
'mp3': 0,
|
||||||
'waveform': 0,
|
'title':'Intimate morning with your wife'
|
||||||
'preview': 0,
|
|
||||||
'wav': 0,
|
|
||||||
'flac': 0,
|
|
||||||
'hd': 0,
|
|
||||||
'hls': 1,
|
|
||||||
'explicit': 0,
|
|
||||||
'selling': 1,
|
|
||||||
'price': '0.00',
|
|
||||||
'genre': '10,6',
|
|
||||||
'mood': None,
|
|
||||||
'title': 'Intimate morning with your wife',
|
|
||||||
'description': None,
|
|
||||||
'access': None,
|
|
||||||
'duration': 1409,
|
|
||||||
'artistIds': None,
|
|
||||||
'loves': 0,
|
|
||||||
'collectors': 0,
|
|
||||||
'plays': 2344,
|
|
||||||
'released_at': '08/26/2022',
|
|
||||||
'copyright': None,
|
|
||||||
'allow_download': 0,
|
|
||||||
'download_count': 0,
|
|
||||||
'allow_comments': 1,
|
|
||||||
'comment_count': 0,
|
|
||||||
'visibility': 1,
|
|
||||||
'approved': 1,
|
|
||||||
'pending': 0,
|
|
||||||
'created_at': '2022-08-26T19:20:14.000000Z',
|
|
||||||
'updated_at': '2022-08-27T11:49:34.000000Z',
|
|
||||||
'vocal': 1,
|
|
||||||
'script': None,
|
|
||||||
'artwork_url': 'https://erocast.me/common/default/song.png',
|
|
||||||
'permalink_url': 'https://erocast.me/track/4254/intimate-morning-with-your-wife',
|
|
||||||
'stream_url': 'https://erocast.me/stream/hls/4254',
|
|
||||||
'favorite': False,
|
|
||||||
'library': False,
|
|
||||||
'streamable': True,
|
|
||||||
'user': {
|
|
||||||
'id': 4198,
|
|
||||||
'name': 'ZLOY_ASMR',
|
|
||||||
'username': 'ZLOY_ASMR',
|
|
||||||
'session_id': None,
|
|
||||||
'artist_id': 0,
|
|
||||||
'collection_count': 0,
|
|
||||||
'following_count': 0,
|
|
||||||
'follower_count': 0,
|
|
||||||
'last_activity': '2022-08-26 19:41:03',
|
|
||||||
'notification': None,
|
|
||||||
'bio': None,
|
|
||||||
'allow_comments': 1,
|
|
||||||
'comment_count': 0,
|
|
||||||
'script': None,
|
|
||||||
'artwork_url': 'https://erocast.me/common/default/user.png',
|
|
||||||
'permalink_url': 'https://erocast.me/zloy-asmr'
|
|
||||||
},
|
|
||||||
'tags': [
|
|
||||||
{
|
|
||||||
'id': 48044,
|
|
||||||
'song_id': 4254,
|
|
||||||
'tag': 'morning',
|
|
||||||
'permalink_url': 'https://erocast.me/tracks/tag/morning'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'id': 48045,
|
|
||||||
'song_id': 4254,
|
|
||||||
'tag': 'established relationships',
|
|
||||||
'permalink_url': 'https://erocast.me/tracks/tag/established-relationships'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'id': 48046,
|
|
||||||
'song_id': 4254,
|
|
||||||
'tag': 'wholesome',
|
|
||||||
'permalink_url': 'https://erocast.me/tracks/tag/wholesome'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'id': 48047,
|
|
||||||
'song_id': 4254,
|
|
||||||
'tag': 'kisses',
|
|
||||||
'permalink_url': 'https://erocast.me/tracks/tag/kisses'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'id': 48048,
|
|
||||||
'song_id': 4254,
|
|
||||||
'tag': 'wife',
|
|
||||||
'permalink_url': 'https://erocast.me/tracks/tag/wife'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
# TODO more properties, either as:
|
# TODO more properties, either as:
|
||||||
# * A value
|
# * A
|
||||||
|
# value
|
||||||
# * MD5 checksum; start the string with md5:
|
# * MD5 checksum; start the string with md5:
|
||||||
# * A regular expression; start the string with re:
|
# * A regular expression; start the string with re:
|
||||||
# * Any Python type (for example int or float)
|
# * Any Python type (for example int or float)
|
||||||
@ -112,14 +25,20 @@ class ErocastIE(InfoExtractor):
|
|||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
video_id = self._match_id(url)
|
video_id = self._match_id(url)
|
||||||
webpage = self._download_webpage(url, video_id)
|
webpage = self._download_webpage(url, video_id)
|
||||||
|
json_data = self._search_regex(r'<script>(.+\n)', webpage, 'song data')
|
||||||
|
json_data = json_data.replace("</script>", "")
|
||||||
|
json_data = json_data[json_data.find('{') - 1:]
|
||||||
|
json_data = self._parse_json(json_data, video_id)
|
||||||
|
ext="mp3"
|
||||||
# TODO more code goes here, for example ...
|
# TODO more code goes here, for example ...
|
||||||
title = self._html_search_regex(r'<h1>(.+?)</h1>', webpage, 'title')
|
# title = self._html_search_regex(r'<script>(.|\n)+*}<\/script>', webpage, 'title')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': title,
|
'title': json_data["title"],
|
||||||
'description': self._og_search_description(webpage),
|
'ext':ext,
|
||||||
'uploader': self._search_regex(r'<div[^>]+id="uploader"[^>]*>([^<]+)<', webpage, 'uploader', fatal=False),
|
'url': json_data["permalink_url"],
|
||||||
|
'mp3':json_data["mp3"]
|
||||||
|
# 'description': self._og_search_description(webpage),
|
||||||
|
# 'uploader': self._search_regex(r'<div[^>]+id="uploader"[^>]*>([^<]+)<', webpage, 'uploader', fatal=False),
|
||||||
# TODO more properties (see youtube_dl/extractor/common.py)
|
# TODO more properties (see youtube_dl/extractor/common.py)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user