From 2a30f0b684a2f90e30addf88ec1f81d7a787f90a Mon Sep 17 00:00:00 2001 From: clauderains Date: Fri, 8 Jan 2016 09:19:31 +0800 Subject: [PATCH 1/4] add ifeng extracotr --- youtube_dl/extractor/__init__.py | 1 + youtube_dl/extractor/ifeng.py | 52 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 youtube_dl/extractor/ifeng.py diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 989331bcb..8c5fd0f29 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -271,6 +271,7 @@ from .howstuffworks import HowStuffWorksIE from .huffpost import HuffPostIE from .hypem import HypemIE from .iconosquare import IconosquareIE +from .ifeng import IfengIE from .ign import ( IGNIE, OneUPIE, diff --git a/youtube_dl/extractor/ifeng.py b/youtube_dl/extractor/ifeng.py new file mode 100644 index 000000000..394a36ccd --- /dev/null +++ b/youtube_dl/extractor/ifeng.py @@ -0,0 +1,52 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + +class IfengIE(InfoExtractor): + IE_NAME = 'ifeng' + IE_DESC = '凤凰网' + # http://v.ifeng.com/mil/mainland/201601/01d92436-8afe-4af0-82a4-cef889018295.shtml + # http://v.ifeng.com/ent/mingxing/201601/01e29bc2-1e89-41ee-9a91-25d56e2b0740.shtml + _VALID_URL = r'http://v\.ifeng\.com/.+?/(?P[\w\-\d]+)\.shtml' + _TESTS = [{ + 'url': 'http://v.ifeng.com/mil/mainland/201601/01d92436-8afe-4af0-82a4-cef889018295.shtml', + 'info_dict': { + 'id': '01d92436-8afe-4af0-82a4-cef889018295', + 'ext': 'mp4', + 'title': '中国火箭军正式亮相 多支导弹旅携罕见导弹出镜', + } + }, + { + 'url': 'http://v.ifeng.com/ent/mingxing/201601/01e29bc2-1e89-41ee-9a91-25d56e2b0740.shtml', + 'info_dict': { + 'id': '01e29bc2-1e89-41ee-9a91-25d56e2b0740', + 'ext': 'mp4', + 'title': '陈羽凡锁骨骨折 盼早日康复', + }, + } + ] + + def _real_extract(self, url): + video_id = self._match_id(url); + + d = video_id[-2] + dd = video_id[-2:] + + info_doc = self._download_xml( + 'http://v.ifeng.com/video_info_new/%s/%s/%s.xml' % (d, dd, video_id), + video_id, 'fetch video metadata') + + title = info_doc.find('./item').get('Name') + + for element in info_doc.findall('./videos/video[@mediaType=\'mp4\']'): + url = element.get('VideoPlayUrl') + if element.get('type') == '500k': + break + + return { + 'id': video_id, + 'title': title, + 'url': url, + 'ext': 'mp4', + } From d5611eee6297e37258f8fa4691307a4ba9707676 Mon Sep 17 00:00:00 2001 From: huangtiande Date: Fri, 8 Jan 2016 09:26:24 +0800 Subject: [PATCH 2/4] add test case --- youtube_dl/extractor/ifeng.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/youtube_dl/extractor/ifeng.py b/youtube_dl/extractor/ifeng.py index 394a36ccd..1663b726b 100644 --- a/youtube_dl/extractor/ifeng.py +++ b/youtube_dl/extractor/ifeng.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from .common import InfoExtractor + class IfengIE(InfoExtractor): IE_NAME = 'ifeng' IE_DESC = '凤凰网' @@ -24,6 +25,14 @@ class IfengIE(InfoExtractor): 'ext': 'mp4', 'title': '陈羽凡锁骨骨折 盼早日康复', }, + }, + { + 'url': 'http://v.ifeng.com/mil/mainland/201601/01168f8e-bcd5-459b-91b4-f85893b3e40a.shtml', + 'info_dict': { + 'id': '01168f8e-bcd5-459b-91b4-f85893b3e40a', + 'ext': 'mp4', + 'title': '2015年中美两国组织多次演练', + }, } ] From bf7f7b32a47978d0bace6fad98c4e2140a1a4932 Mon Sep 17 00:00:00 2001 From: huangtiande Date: Fri, 8 Jan 2016 09:57:43 +0800 Subject: [PATCH 3/4] fix bug --- youtube_dl/extractor/ifeng.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/ifeng.py b/youtube_dl/extractor/ifeng.py index 1663b726b..a74922fe5 100644 --- a/youtube_dl/extractor/ifeng.py +++ b/youtube_dl/extractor/ifeng.py @@ -48,7 +48,10 @@ class IfengIE(InfoExtractor): title = info_doc.find('./item').get('Name') - for element in info_doc.findall('./videos/video[@mediaType=\'mp4\']'): + for element in info_doc.findall('./videos/video'): + if element.get('mediaType') != 'mp4': + continue + url = element.get('VideoPlayUrl') if element.get('type') == '500k': break From b04decf107b41b3f5ee3104e6e805cc67b28eee7 Mon Sep 17 00:00:00 2001 From: huangtiande Date: Fri, 8 Jan 2016 14:09:41 +0800 Subject: [PATCH 4/4] This PR should not contain changes unrelated to ifeng extractor. --- youtube_dl/extractor/__init__.py | 57 ++++++++++++++++---------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 8c5fd0f29..b897a043a 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -18,11 +18,11 @@ from .adultswim import AdultSwimIE from .aftonbladet import AftonbladetIE from .airmozilla import AirMozillaIE from .aljazeera import AlJazeeraIE -from .allocine import AllocineIE from .alphaporno import AlphaPornoIE from .anitube import AnitubeIE from .anysex import AnySexIE from .aol import AolIE +from .allocine import AllocineIE from .aparat import AparatIE from .appleconnect import AppleConnectIE from .appletrailers import ( @@ -57,9 +57,9 @@ from .bbc import ( BBCCoUkArticleIE, BBCIE, ) -from .beatportpro import BeatportProIE from .beeg import BeegIE from .behindkink import BehindKinkIE +from .beatportpro import BeatportProIE from .bet import BetIE from .bild import BildIE from .bilibili import BiliBiliIE @@ -83,8 +83,8 @@ from .camdemy import ( CamdemyIE, CamdemyFolderIE ) -from .canalc2 import Canalc2IE from .canalplus import CanalplusIE +from .canalc2 import Canalc2IE from .cbs import CBSIE from .cbsnews import CBSNewsIE from .cbssports import CBSSportsIE @@ -114,8 +114,8 @@ from .cnn import ( ) from .collegehumor import CollegeHumorIE from .collegerama import CollegeRamaIE -from .comcarcoff import ComCarCoffIE from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE +from .comcarcoff import ComCarCoffIE from .commonmistakes import CommonMistakesIE, UnicodeBOMIE from .condenast import CondeNastIE from .cracked import CrackedIE @@ -146,11 +146,9 @@ from .dcn import ( ) from .dctp import DctpTvIE from .deezer import DeezerPlaylistIE -from .defense import DefenseGouvFrIE from .democracynow import DemocracynowIE from .dfb import DFBIE from .dhm import DHMIE -from .discovery import DiscoveryIE from .dotsub import DotsubIE from .douyutv import DouyuTVIE from .dplay import DPlayIE @@ -158,14 +156,16 @@ from .dramafever import ( DramaFeverIE, DramaFeverSeriesIE, ) -from .drbonanza import DRBonanzaIE from .dreisat import DreiSatIE -from .dropbox import DropboxIE +from .drbonanza import DRBonanzaIE from .drtuber import DrTuberIE from .drtv import DRTVIE +from .dvtv import DVTVIE from .dump import DumpIE from .dumpert import DumpertIE -from .dvtv import DVTVIE +from .defense import DefenseGouvFrIE +from .discovery import DiscoveryIE +from .dropbox import DropboxIE from .eagleplatform import EaglePlatformIE from .ebaumsworld import EbaumsWorldIE from .echomsk import EchoMskIE @@ -304,17 +304,17 @@ from .izlesene import IzleseneIE from .jadorecettepub import JadoreCettePubIE from .jeuxvideo import JeuxVideoIE from .jove import JoveIE -from .jpopsukitv import JpopsukiIE from .jwplatform import JWPlatformIE +from .jpopsukitv import JpopsukiIE from .kaltura import KalturaIE from .kanalplay import KanalPlayIE from .kankan import KankanIE from .karaoketv import KaraoketvIE from .karrierevideos import KarriereVideosIE -from .keek import KeekIE from .keezmovies import KeezMoviesIE from .khanacademy import KhanAcademyIE from .kickstarter import KickStarterIE +from .keek import KeekIE from .kontrtube import KontrTubeIE from .krasview import KrasViewIE from .ku6 import Ku6IE @@ -372,6 +372,7 @@ from .mit import TechTVMITIE, MITIE, OCWMITIE from .mitele import MiTeleIE from .mixcloud import MixcloudIE from .mlb import MLBIE +from .mpora import MporaIE from .moevideo import MoeVideoIE from .mofosex import MofosexIE from .mojvideo import MojvideoIE @@ -382,7 +383,6 @@ from .motherless import MotherlessIE from .motorsport import MotorsportIE from .movieclips import MovieClipsIE from .moviezine import MoviezineIE -from .mpora import MporaIE from .mtv import ( MTVIE, MTVServicesEmbeddedIE, @@ -416,6 +416,7 @@ from .ndr import ( NJoyEmbedIE, ) from .ndtv import NDTVIE +from .netzkino import NetzkinoIE from .nerdcubed import NerdCubedFeedIE from .nerdist import NerdistIE from .neteasemusic import ( @@ -427,7 +428,6 @@ from .neteasemusic import ( NetEaseMusicProgramIE, NetEaseMusicDjRadioIE, ) -from .netzkino import NetzkinoIE from .newgrounds import NewgroundsIE from .newstube import NewstubeIE from .nextmedia import ( @@ -481,11 +481,11 @@ from .nrk import ( ) from .ntvde import NTVDeIE from .ntvru import NTVRuIE -from .nuvid import NuvidIE from .nytimes import ( NYTimesIE, NYTimesArticleIE, ) +from .nuvid import NuvidIE from .odnoklassniki import OdnoklassnikiIE from .oktoberfesttv import OktoberfestTVIE from .onionstudios import OnionStudiosIE @@ -509,8 +509,8 @@ from .philharmoniedeparis import PhilharmonieDeParisIE from .phoenix import PhoenixIE from .photobucket import PhotobucketIE from .pinkbike import PinkbikeIE -from .pladform import PladformIE from .planetaplay import PlanetaPlayIE +from .pladform import PladformIE from .played import PlayedIE from .playfm import PlayFMIE from .playtvak import PlaytvakIE @@ -542,13 +542,12 @@ from .qqmusic import ( QQMusicToplistIE, QQMusicPlaylistIE, ) -from .qqvideo import QqVideoIE from .quickvid import QuickVidIE from .r7 import R7IE -from .radiobremen import RadioBremenIE from .radiode import RadioDeIE -from .radiofrance import RadioFranceIE from .radiojavan import RadioJavanIE +from .radiobremen import RadioBremenIE +from .radiofrance import RadioFranceIE from .rai import ( RaiTVIE, RaiIE, @@ -566,8 +565,8 @@ from .rottentomatoes import RottenTomatoesIE from .roxwel import RoxwelIE from .rtbf import RTBFIE from .rte import RteIE, RteRadioIE -from .rtl2 import RTL2IE from .rtlnl import RtlNlIE +from .rtl2 import RTL2IE from .rtp import RTPIE from .rts import RTSIE from .rtve import RTVEALaCartaIE, RTVELiveIE, RTVEInfantilIE @@ -582,11 +581,11 @@ from .rutube import ( ) from .rutv import RUTVIE from .ruutu import RuutuIE +from .sandia import SandiaIE from .safari import ( SafariIE, SafariCourseIE, ) -from .sandia import SandiaIE from .sapo import SapoIE from .savefrom import SaveFromIE from .sbs import SBSIE @@ -644,6 +643,7 @@ from .spankwire import SpankwireIE from .spiegel import SpiegelIE, SpiegelArticleIE from .spiegeltv import SpiegeltvIE from .spike import SpikeIE +from .stitcher import StitcherIE from .sport5 import Sport5IE from .sportbox import ( SportBoxIE, @@ -658,7 +658,6 @@ from .srmediathek import SRMediathekIE from .ssa import SSAIE from .stanfordoc import StanfordOpenClassroomIE from .steam import SteamIE -from .stitcher import StitcherIE from .streamcloud import StreamcloudIE from .streamcz import StreamCZIE from .streetvoice import StreetVoiceIE @@ -699,10 +698,6 @@ from .theplatform import ( from .thesixtyone import TheSixtyOneIE from .thisamericanlife import ThisAmericanLifeIE from .thisav import ThisAVIE -from .thvideo import ( - THVideoIE, - THVideoPlaylistIE -) from .tinypic import TinyPicIE from .tlc import TlcDeIE from .tmz import ( @@ -715,6 +710,10 @@ from .tnaflix import ( MovieFapIE, ) from .toggle import ToggleIE +from .thvideo import ( + THVideoIE, + THVideoPlaylistIE +) from .toutv import TouTvIE from .toypics import ToypicsUserIE, ToypicsIE from .traileraddict import TrailerAddictIE @@ -803,10 +802,6 @@ from .vidzi import VidziIE from .vier import VierIE, VierVideosIE from .viewster import ViewsterIE from .viidea import ViideaIE -from .viki import ( - VikiIE, - VikiChannelIE, -) from .vimeo import ( VimeoIE, VimeoAlbumIE, @@ -822,6 +817,10 @@ from .vine import ( VineIE, VineUserIE, ) +from .viki import ( + VikiIE, + VikiChannelIE, +) from .vk import ( VKIE, VKUserVideosIE,