Browse Source

[hgtvcom:show] Add extractor (Closes #10365)

totalwebcasting
Sergey M․ 8 years ago
parent
commit
4e9fee1015
No known key found for this signature in database GPG Key ID: 2C393E0F18A9236D
2 changed files with 35 additions and 1 deletions
  1. +4
    -1
      youtube_dl/extractor/extractors.py
  2. +31
    -0
      youtube_dl/extractor/hgtv.py

+ 4
- 1
youtube_dl/extractor/extractors.py View File

@ -324,7 +324,10 @@ from .heise import HeiseIE
from .hellporno import HellPornoIE from .hellporno import HellPornoIE
from .helsinki import HelsinkiIE from .helsinki import HelsinkiIE
from .hentaistigma import HentaiStigmaIE from .hentaistigma import HentaiStigmaIE
from .hgtv import HGTVIE
from .hgtv import (
HGTVIE,
HGTVComShowIE,
)
from .historicfilms import HistoricFilmsIE from .historicfilms import HistoricFilmsIE
from .hitbox import HitboxIE, HitboxLiveIE from .hitbox import HitboxIE, HitboxLiveIE
from .hornbunny import HornBunnyIE from .hornbunny import HornBunnyIE


+ 31
- 0
youtube_dl/extractor/hgtv.py View File

@ -46,3 +46,34 @@ class HGTVIE(InfoExtractor):
'episode_number': int_or_none(embed_vars.get('episode')), 'episode_number': int_or_none(embed_vars.get('episode')),
'ie_key': 'ThePlatform', 'ie_key': 'ThePlatform',
} }
class HGTVComShowIE(InfoExtractor):
IE_NAME = 'hgtv.com:show'
_VALID_URL = r'https?://(?:www\.)?hgtv\.com/shows/[^/]+/(?P<id>[^/?#&]+)'
_TEST = {
'url': 'http://www.hgtv.com/shows/flip-or-flop/flip-or-flop-full-episodes-videos',
'info_dict': {
'id': 'flip-or-flop-full-episodes-videos',
'title': 'Flip or Flop Full Episodes',
},
'playlist_mincount': 15,
}
def _real_extract(self, url):
display_id = self._match_id(url)
webpage = self._download_webpage(url, display_id)
config = self._parse_json(
self._search_regex(
r'(?s)data-module=["\']video["\'][^>]*>.*?<script[^>]+type=["\']text/x-config["\'][^>]*>(.+?)</script',
webpage, 'video config'),
display_id)['channels'][0]
entries = [
self.url_result(video['releaseUrl'])
for video in config['videos'] if video.get('releaseUrl')]
return self.playlist_result(
entries, display_id, config.get('title'), config.get('description'))

Loading…
Cancel
Save