Move tests to the IE definitions
authorPhilipp Hagemeister <phihag@phihag.de>
Thu, 27 Jun 2013 18:46:46 +0000 (20:46 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Thu, 27 Jun 2013 18:46:46 +0000 (20:46 +0200)
48 files changed:
test/tests.json
youtube_dl/extractor/ard.py
youtube_dl/extractor/bandcamp.py
youtube_dl/extractor/bliptv.py
youtube_dl/extractor/breakcom.py
youtube_dl/extractor/comedycentral.py
youtube_dl/extractor/cspan.py
youtube_dl/extractor/dailymotion.py
youtube_dl/extractor/escapist.py
youtube_dl/extractor/facebook.py
youtube_dl/extractor/flickr.py
youtube_dl/extractor/funnyordie.py
youtube_dl/extractor/gametrailers.py
youtube_dl/extractor/generic.py
youtube_dl/extractor/hotnewhiphop.py
youtube_dl/extractor/howcast.py
youtube_dl/extractor/hypem.py
youtube_dl/extractor/ina.py
youtube_dl/extractor/justintv.py
youtube_dl/extractor/keek.py
youtube_dl/extractor/liveleak.py
youtube_dl/extractor/myspass.py
youtube_dl/extractor/myvideo.py
youtube_dl/extractor/nba.py
youtube_dl/extractor/photobucket.py
youtube_dl/extractor/pornotube.py
youtube_dl/extractor/rbmaradio.py
youtube_dl/extractor/redtube.py
youtube_dl/extractor/soundcloud.py
youtube_dl/extractor/spiegel.py
youtube_dl/extractor/stanfordoc.py
youtube_dl/extractor/statigram.py
youtube_dl/extractor/teamcoco.py
youtube_dl/extractor/ted.py
youtube_dl/extractor/tudou.py
youtube_dl/extractor/tumblr.py
youtube_dl/extractor/ustream.py
youtube_dl/extractor/vbox7.py
youtube_dl/extractor/vevo.py
youtube_dl/extractor/vimeo.py
youtube_dl/extractor/vine.py
youtube_dl/extractor/wimp.py
youtube_dl/extractor/xhamster.py
youtube_dl/extractor/xnxx.py
youtube_dl/extractor/xvideos.py
youtube_dl/extractor/yahoo.py
youtube_dl/extractor/youjizz.py
youtube_dl/extractor/youporn.py

index ce4e7fe0887b6cc13c18d7449cad199374690297..fe51488c7066f6687ef680d6bfaa4f7768ef205c 100644 (file)
@@ -1,479 +1 @@
-[
-  {
-    "name": "Dailymotion",
-    "md5":  "392c4b85a60a90dc4792da41ce3144eb",
-    "url":  "http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech",
-    "file":  "x33vw9.mp4",
-    "info_dict": {
-      "uploader": "Alex and Van .",
-      "title": "Tutoriel de Youtubeur\"DL DES VIDEO DE YOUTUBE\""
-    }
-  },
-  {
-    "name": "BlipTV",
-    "md5":  "b2d849efcf7ee18917e4b4d9ff37cafe",
-    "url":  "http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352",
-    "file":  "5779306.m4v",
-    "info_dict": {
-      "upload_date": "20111205",
-      "description": "md5:9bc31f227219cde65e47eeec8d2dc596",
-      "uploader": "Comic Book Resources - CBR TV",
-      "title": "CBR EXCLUSIVE: \"Gotham City Imposters\" Bats VS Jokerz Short 3"
-    }
-  },
-  {
-    "name": "XVideos",
-    "md5":  "1d0c835822f0a71a7bf011855db929d0",
-    "url":  "http://www.xvideos.com/video939581/funny_porns_by_s_-1",
-    "file":  "939581.flv",
-    "info_dict": {
-      "title": "Funny Porns By >>>>S<<<<<< -1"
-    }
-  },
-  {
-    "name": "YouPorn",
-    "md5": "c37ddbaaa39058c76a7e86c6813423c1",
-    "url": "http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/",
-    "file": "505835.mp4",
-    "info_dict": {
-      "upload_date": "20101221",
-      "description": "Love & Sex Answers: http://bit.ly/DanAndJenn -- Is It Unhealthy To Masturbate Daily?",
-      "uploader": "Ask Dan And Jennifer",
-      "title": "Sex Ed: Is It Safe To Masturbate Daily?"
-    }
-  },
-  {
-    "name": "Pornotube",
-    "md5": "374dd6dcedd24234453b295209aa69b6",
-    "url": "http://pornotube.com/c/173/m/1689755/Marilyn-Monroe-Bathing",
-    "file": "1689755.flv",
-    "info_dict": {
-      "upload_date": "20090708",
-      "title": "Marilyn-Monroe-Bathing"
-    }
-  },
-  {
-    "name": "YouJizz",
-    "md5": "07e15fa469ba384c7693fd246905547c",
-    "url": "http://www.youjizz.com/videos/zeichentrick-1-2189178.html",
-    "file": "2189178.flv",
-    "info_dict": {
-      "title": "Zeichentrick 1"
-    }
-  },
-  {
-    "name": "Vimeo",
-    "md5":  "8879b6cc097e987f02484baf890129e5",
-    "url":  "http://vimeo.com/56015672",
-    "file": "56015672.mp4",
-    "info_dict": {
-      "title": "youtube-dl test video - ★ \" ' 幸 / \\ ä ↭ 𝕐",
-      "uploader": "Filippo Valsorda",
-      "uploader_id": "user7108434",
-      "upload_date": "20121220",
-      "description": "This is a test case for youtube-dl.\nFor more information, see github.com/rg3/youtube-dl\nTest chars: ★ \" ' 幸 / \\ ä ↭ 𝕐"
-    }
-  },
-  {
-    "name": "Soundcloud",
-    "md5":  "ebef0a451b909710ed1d7787dddbf0d7",
-    "url":  "http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy",
-    "file":  "62986583.mp3",
-    "info_dict": {
-      "upload_date": "20121011",
-      "description": "No Downloads untill we record the finished version this weekend, i was too pumped n i had to post it , earl is prolly gonna b hella p.o'd",
-      "uploader": "E.T. ExTerrestrial Music",
-      "title": "Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1"
-    }
-  },
-  {
-    "name": "StanfordOpenClassroom",
-    "md5":  "544a9468546059d4e80d76265b0443b8",
-    "url":  "http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100",
-    "file":  "PracticalUnix_intro-environment.mp4",
-    "info_dict": {
-      "title": "Intro Environment"
-    }
-  },
-  {
-    "name": "XNXX",
-    "md5":  "0831677e2b4761795f68d417e0b7b445",
-    "url":  "http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_",
-    "file":  "1135332.flv",
-    "info_dict": {
-      "title": "lida » Naked Funny Actress  (5)"
-    }
-  },
-  {
-    "name": "NBA",
-    "url": "http://www.nba.com/video/games/nets/2012/12/04/0021200253-okc-bkn-recap.nba/index.html",
-    "file": "0021200253-okc-bkn-recap.nba.mp4",
-    "md5": "c0edcfc37607344e2ff8f13c378c88a4",
-    "info_dict": {
-      "description": "Kevin Durant scores 32 points and dishes out six assists as the Thunder beat the Nets in Brooklyn.",
-      "title": "Thunder vs. Nets"
-    }
-  },
-  {
-    "name": "JustinTV",
-    "url": "http://www.twitch.tv/thegamedevhub/b/296128360",
-    "file": "296128360.flv",
-    "md5": "ecaa8a790c22a40770901460af191c9a",
-    "info_dict": {
-      "upload_date": "20110927",
-      "uploader_id": 25114803,
-      "uploader": "thegamedevhub",
-      "title": "Beginner Series - Scripting With Python Pt.1"
-    }
-  },
-  {
-    "name": "MyVideo",
-    "url": "http://www.myvideo.de/watch/8229274/bowling_fail_or_win",
-    "file": "8229274.flv",
-    "md5": "2d2753e8130479ba2cb7e0a37002053e",
-    "info_dict": {
-      "title": "bowling-fail-or-win"
-    }
-  },
-  {
-    "name": "Escapist",
-    "url": "http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate",
-    "file": "6618-Breaking-Down-Baldurs-Gate.mp4",
-    "md5": "c6793dbda81388f4264c1ba18684a74d",
-    "info_dict": {
-      "description": "Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition.",
-      "uploader": "the-escapist-presents",
-      "title": "Breaking Down Baldur's Gate"
-    }
-  },
-  {
-    "name": "FunnyOrDie",
-    "url": "http://www.funnyordie.com/videos/0732f586d7/heart-shaped-box-literal-video-version",
-    "file": "0732f586d7.mp4",
-    "md5": "f647e9e90064b53b6e046e75d0241fbd",
-    "info_dict": {
-      "description": "Lyrics changed to match the video. Spoken cameo by Obscurus Lupa (from ThatGuyWithTheGlasses.com). Based on a concept by Dustin McLean (DustFilms.com). Performed, edited, and written by David A. Scott.",
-      "title": "Heart-Shaped Box: Literal Video Version"
-    }
-  },
-  {
-    "name": "Ustream",
-    "url": "http://www.ustream.tv/recorded/20274954",
-    "file": "20274954.flv",
-    "md5": "088f151799e8f572f84eb62f17d73e5c",
-    "info_dict": {
-        "title": "Young Americans for Liberty February 7, 2012 2:28 AM",
-        "uploader": "Young Americans for Liberty"
-    }
-  },
-  {
-    "name": "ComedyCentral",
-    "url": "http://www.thedailyshow.com/watch/thu-december-13-2012/kristen-stewart",
-    "file": "422212.mp4",
-    "md5": "4e2f5cb088a83cd8cdb7756132f9739d",
-    "info_dict": {
-      "upload_date": "20121214",
-      "description": "Kristen Stewart",
-      "uploader": "thedailyshow",
-      "title": "thedailyshow-kristen-stewart part 1"
-    }
-  },
-  {
-    "name": "RBMARadio",
-    "url": "http://www.rbmaradio.com/shows/ford-lopatin-live-at-primavera-sound-2011",
-    "file": "ford-lopatin-live-at-primavera-sound-2011.mp3",
-    "md5": "6bc6f9bcb18994b4c983bc3bf4384d95",
-    "info_dict": {
-        "title": "Live at Primavera Sound 2011",
-        "description": "Joel Ford and Daniel \u2019Oneohtrix Point Never\u2019 Lopatin fly their midified pop extravaganza to Spain. Live at Primavera Sound 2011.",
-        "uploader": "Ford & Lopatin",
-        "uploader_id": "ford-lopatin",
-        "location": "Spain"
-    }
-  },
-  {
-    "name": "Facebook",
-    "url": "https://www.facebook.com/photo.php?v=120708114770723",
-    "file": "120708114770723.mp4",
-    "md5": "48975a41ccc4b7a581abd68651c1a5a8",
-    "info_dict": {
-      "title": "PEOPLE ARE AWESOME 2013",
-      "duration": 279
-    }
-  },
-  {
-    "name": "Keek",
-    "url": "http://www.keek.com/ytdl/keeks/NODfbab",
-    "file": "NODfbab.mp4",
-    "md5": "9b0636f8c0f7614afa4ea5e4c6e57e83",
-    "info_dict": {
-      "uploader": "ytdl",
-      "title": "test chars: \"'/\\ä<>This is a test video for youtube-dl.For more information, contact phihag@phihag.de ."
-    }
-  },
-  {
-    "name": "TED",
-    "url": "http://www.ted.com/talks/dan_dennett_on_our_consciousness.html",
-    "file": "102.mp4",
-    "md5": "8cd9dfa41ee000ce658fd48fb5d89a61",
-    "info_dict": {
-        "title": "Dan Dennett: The illusion of consciousness",
-        "description": "md5:c6fa72e6eedbd938c9caf6b2702f5922"
-    }
-  },
-  {
-    "name": "MySpass",
-    "url": "http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/",
-    "file": "11741.mp4",
-    "md5": "0b49f4844a068f8b33f4b7c88405862b",
-    "info_dict": {
-      "description": "Wer kann in die Fußstapfen von Wolfgang Kubicki treten und die Mehrheit der Zuschauer hinter sich versammeln? Wird vielleicht sogar die Absolute Mehrheit geknackt und der Jackpot von 200.000 Euro mit nach Hause genommen?",
-      "title": "Absolute Mehrheit vom 17.02.2013 - Die Highlights, Teil 2"
-    }
-  },
-  {
-    "name": "Generic",
-    "url": "http://www.hodiho.fr/2013/02/regis-plante-sa-jeep.html",
-    "file": "13601338388002.mp4",
-    "md5": "85b90ccc9d73b4acd9138d3af4c27f89",
-    "info_dict": {
-      "uploader": "www.hodiho.fr",
-      "title": "Régis plante sa Jeep"
-    }
-  },
-  {
-    "name": "Spiegel",
-    "url": "http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html",
-    "file": "1259285.mp4",
-    "md5": "2c2754212136f35fb4b19767d242f66e",
-    "info_dict": {
-        "title": "Vulkanausbruch in Ecuador: Der \"Feuerschlund\" ist wieder aktiv"
-    }
-  },
-  {
-    "name": "LiveLeak",
-    "md5":  "0813c2430bea7a46bf13acf3406992f4",
-    "url":  "http://www.liveleak.com/view?i=757_1364311680",
-    "file":  "757_1364311680.mp4",
-    "info_dict": {
-        "title": "Most unlucky car accident",
-        "description": "extremely bad day for this guy..!",
-        "uploader": "ljfriel2"
-    }
-  },
-  {
-    "name": "ARD",
-    "url": "http://www.ardmediathek.de/das-erste/tagesschau-in-100-sek?documentId=14077640",
-    "file": "14077640.mp4",
-    "md5": "6ca8824255460c787376353f9e20bbd8",
-    "info_dict": {
-        "title": "11.04.2013 09:23 Uhr - Tagesschau in 100 Sekunden"
-    },
-    "skip": "Requires rtmpdump"
-  },
-  {
-    "name": "Tumblr",
-    "url": "http://resigno.tumblr.com/post/53364321212/e-de-extrema-importancia-que-esse-video-seja",
-    "file": "53364321212.mp4",
-    "md5": "0716d3dd51baf68a28b40fdf1251494e",
-    "info_dict": {
-        "title": "Rafael Lemos | Tumblr"
-    }
-  },
-  {
-    "name":"Bandcamp",
-    "url":"http://youtube-dl.bandcamp.com/track/youtube-dl-test-song",
-    "file":"1812978515.mp3",
-    "md5":"cdeb30cdae1921719a3cbcab696ef53c",
-    "info_dict": {
-      "title":"youtube-dl test song \"'/\\ä↭"
-    },
-    "skip": "There is a limit of 200 free downloads / month for the test song"
-  },
-  {
-    "name": "RedTube",
-    "url": "http://www.redtube.com/66418",
-    "file": "66418.mp4",
-    "md5": "7b8c22b5e7098a3e1c09709df1126d2d",
-    "info_dict":{
-      "title":"Sucked on a toilet"
-    }
-  },
-  {
-    "name": "Photobucket",
-    "url": "http://media.photobucket.com/user/rachaneronas/media/TiredofLinkBuildingTryBacklinkMyDomaincom_zpsc0c3b9fa.mp4.html?filters[term]=search&filters[primary]=videos&filters[secondary]=images&sort=1&o=0",
-    "file": "zpsc0c3b9fa.mp4",
-    "md5": "7dabfb92b0a31f6c16cebc0f8e60ff99",
-    "info_dict": {
-      "upload_date": "20130504",
-      "uploader": "rachaneronas",
-      "title": "Tired of Link Building? Try BacklinkMyDomain.com!"
-    }
-  },
-  {
-    "name": "Ina",
-    "url": "www.ina.fr/video/I12055569/francois-hollande-je-crois-que-c-est-clair-video.html",
-    "file": "I12055569.mp4",
-    "md5": "a667021bf2b41f8dc6049479d9bb38a3",
-    "info_dict":{
-      "title":"François Hollande \"Je crois que c'est clair\""
-    }
-  },
-  {
-    "name": "Yahoo",
-    "url": "http://screen.yahoo.com/julian-smith-travis-legg-watch-214727115.html",
-    "file": "214727115.flv",
-    "md5": "2e717f169c1be93d84d3794a00d4a325",
-    "info_dict": {
-        "title": "Julian Smith & Travis Legg Watch Julian Smith"
-    },
-    "skip": "Requires rtmpdump"
-  },
-  {
-    "name": "Howcast",
-    "url": "http://www.howcast.com/videos/390161-How-to-Tie-a-Square-Knot-Properly",
-    "file": "390161.mp4",
-    "md5": "1d7ba54e2c9d7dc6935ef39e00529138",
-    "info_dict":{
-      "title":"How to Tie a Square Knot Properly",
-      "description":"The square knot, also known as the reef knot, is one of the oldest, most basic knots to tie, and can be used in many different ways. Here's the proper way to tie a square knot."
-    }
-  },
-  {
-    "name": "Vine",
-    "url": "https://vine.co/v/b9KOOWX7HUx",
-    "file": "b9KOOWX7HUx.mp4",
-    "md5": "2f36fed6235b16da96ce9b4dc890940d",
-    "info_dict":{
-      "title": "Chicken.",
-      "uploader": "Jack Dorsey"
-    }
-  },
-  {
-    "name": "Flickr",
-    "url": "http://www.flickr.com/photos/forestwander-nature-pictures/5645318632/in/photostream/",
-    "file": "5645318632.mp4",
-    "md5": "6fdc01adbc89d72fc9c4f15b4a4ba87b",
-    "info_dict":{
-      "title": "Dark Hollow Waterfalls",
-      "uploader_id": "forestwander-nature-pictures",
-      "description": "Waterfalls in the Springtime at Dark Hollow Waterfalls. These are located just off of Skyline Drive in Virginia. They are only about 6/10 of a mile hike but it is a pretty steep hill and a good climb back up."
-    }
-  },
-  {
-    "name": "Teamcoco",
-    "url": "http://teamcoco.com/video/louis-ck-interview-george-w-bush",
-    "file": "19705.mp4",
-    "md5": "27b6f7527da5acf534b15f21b032656e",
-    "info_dict":{
-      "title": "Louis C.K. Interview Pt. 1 11/3/11",
-      "description": "Louis C.K. got starstruck by George W. Bush, so what? Part one."
-    }
-  },
-  {
-    "name": "XHamster",
-    "url": "http://xhamster.com/movies/1509445/femaleagent_shy_beauty_takes_the_bait.html",
-    "file": "1509445.flv",
-    "md5": "9f48e0e8d58e3076bb236ff412ab62fa",
-    "info_dict": {
-      "upload_date": "20121014",
-      "uploader_id": "Ruseful2011",
-      "title": "FemaleAgent Shy beauty takes the bait"
-    }
-  },
-  {
-    "name": "Hypem",
-    "url": "http://hypem.com/track/1v6ga/BODYWORK+-+TAME",
-    "file": "1v6ga.mp3",
-    "md5": "b9cc91b5af8995e9f0c1cee04c575828",
-    "info_dict":{
-      "title":"Tame"
-    }
-  },
-  {
-    "name": "Vbox7",
-    "url": "http://vbox7.com/play:249bb972c2",
-    "file": "249bb972c2.flv",
-    "md5": "9c70d6d956f888bdc08c124acc120cfe",
-    "info_dict":{
-      "title":"Смях! Чудо - чист за секунди - Скрита камера"
-    }
-  },
-  {
-    "name": "Gametrailers",
-    "url": "http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer",
-    "file": "zbvr8i.flv",
-    "md5": "c3edbc995ab4081976e16779bd96a878",
-    "info_dict": {
-        "title": "E3 2013: Debut Trailer"
-    },
-    "skip": "Requires rtmpdump"
-  },
-  {
-    "name": "Statigram",
-    "url": "http://statigr.am/p/484091715184808010_284179915",
-    "file": "484091715184808010_284179915.mp4",
-    "md5": "deda4ff333abe2e118740321e992605b",
-    "info_dict": {
-        "uploader_id": "videoseconds",
-        "title": "Instagram photo by @videoseconds (Videos)"
-    }
-  },
-  {
-    "name": "Break",
-    "url": "http://www.break.com/video/when-girls-act-like-guys-2468056",
-    "file": "2468056.mp4",
-    "md5": "a3513fb1547fba4fb6cfac1bffc6c46b",
-    "info_dict": {
-        "title": "When Girls Act Like D-Bags"
-    }
-  },
-  {
-    "name": "Vevo",
-    "url": "http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280",
-    "file": "GB1101300280.mp4",
-    "md5": "06bea460acb744eab74a9d7dcb4bfd61",
-    "info_dict": {
-        "title": "Somebody To Die For",
-        "upload_date": "20130624",
-        "uploader": "Hurts"
-    }
-  },
-  {
-    "name": "Tudou",
-    "url": "http://www.tudou.com/listplay/zzdE77v6Mmo/2xN2duXMxmw.html",
-    "file": "159447792.f4v",
-    "md5": "ad7c358a01541e926a1e413612c6b10a",
-    "info_dict": {
-        "title": "卡马乔国足开大脚长传冲吊集锦"
-    }
-  },
-  {
-    "name": "CSpan",
-    "url": "http://www.c-spanvideo.org/program/HolderonV",
-    "file": "315139.flv",
-    "md5": "74a623266956f69e4df0068ab6c80fe4",
-    "info_dict": {
-        "title": "Attorney General Eric Holder on Voting Rights Act Decision"
-    },
-    "skip": "Requires rtmpdump"
-  },
-  {
-    "name": "Wimp",
-    "url": "http://www.wimp.com/deerfence/",
-    "file": "deerfence.flv",
-    "md5": "8b215e2e0168c6081a1cf84b2846a2b5",
-    "info_dict": {
-        "title": "Watch Till End: Herd of deer jump over a fence."
-    }
-  },
-  {
-    "name": "HotNewHipHop",
-    "url": "http://www.hotnewhiphop.com/freddie-gibbs-lay-it-down-song.1435540.html'",
-    "file": "1435540.mp3",
-    "md5": "2c2cd2f76ef11a9b3b581e8b232f3d96",
-    "info_dict": {
-        "title": "Freddie Gibbs Songs - Lay It Down"
-    }
-  }
-]
+[]
index e1ecdf4d3672215068bf223c282daa5f9609a02e..5793a4129d21c8c36e20d1b57607629e3adb94fd 100644 (file)
@@ -9,6 +9,15 @@ class ARDIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:(?:www\.)?ardmediathek\.de|mediathek\.daserste\.de)/(?:.*/)(?P<video_id>[^/\?]+)(?:\?.*)?'
     _TITLE = r'<h1(?: class="boxTopHeadline")?>(?P<title>.*)</h1>'
     _MEDIA_STREAM = r'mediaCollection\.addMediaStream\((?P<media_type>\d+), (?P<quality>\d+), "(?P<rtmp_url>[^"]*)", "(?P<video_url>[^"]*)", "[^"]*"\)'
+    _TEST = {
+        u'url': u'http://www.ardmediathek.de/das-erste/tagesschau-in-100-sek?documentId=14077640',
+        u'file': u'14077640.mp4',
+        u'md5': u'6ca8824255460c787376353f9e20bbd8',
+        u'info_dict': {
+            u"title": u"11.04.2013 09:23 Uhr - Tagesschau in 100 Sekunden"
+        },
+        u'skip': u'Requires rtmpdump'
+    }
 
     def _real_extract(self, url):
         # determine video id from url
index dcf6721ee1af7ba56e89bd43f40f95c44826746e..129a20f4497b4cc6fc9f031e8e48dd8eb8980f66 100644 (file)
@@ -9,6 +9,15 @@ from ..utils import (
 
 class BandcampIE(InfoExtractor):
     _VALID_URL = r'http://.*?\.bandcamp\.com/track/(?P<title>.*)'
+    _TEST = {
+        u'url': u'http://youtube-dl.bandcamp.com/track/youtube-dl-test-song',
+        u'file': u'1812978515.mp3',
+        u'md5': u'cdeb30cdae1921719a3cbcab696ef53c',
+        u'info_dict': {
+            u"title": u"youtube-dl test song \"'/\\\u00e4\u21ad"
+        },
+        u'skip': u'There is a limit of 200 free downloads / month for the test song'
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index df2ad4be2a454ff7f864e775586970e126787a37..37141e6a0a9016a39c9ef0f254c3e0599109baa5 100644 (file)
@@ -24,6 +24,17 @@ class BlipTVIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?blip\.tv/((.+/)|(play/)|(api\.swf#))(.+)$'
     _URL_EXT = r'^.*\.([a-z0-9]+)$'
     IE_NAME = u'blip.tv'
+    _TEST = {
+        u'url': u'http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352',
+        u'file': u'5779306.m4v',
+        u'md5': u'b2d849efcf7ee18917e4b4d9ff37cafe',
+        u'info_dict': {
+            u"upload_date": u"20111205", 
+            u"description": u"md5:9bc31f227219cde65e47eeec8d2dc596", 
+            u"uploader": u"Comic Book Resources - CBR TV", 
+            u"title": u"CBR EXCLUSIVE: \"Gotham City Imposters\" Bats VS Jokerz Short 3"
+        }
+    }
 
     def report_direct_download(self, title):
         """Report information extraction."""
index 1f6620d9158d25323e9aeb1c5f172eb74a26a806..34f555e891e1b6c1c079ef54ab976c53694b5daa 100644 (file)
@@ -5,6 +5,14 @@ from .common import InfoExtractor
 
 class BreakIE(InfoExtractor):
     _VALID_URL = r'(?:http://)?(?:www\.)?break\.com/video/([^/]+)'
+    _TEST = {
+        u'url': u'http://www.break.com/video/when-girls-act-like-guys-2468056',
+        u'file': u'2468056.mp4',
+        u'md5': u'a3513fb1547fba4fb6cfac1bffc6c46b',
+        u'info_dict': {
+            u"title": u"When Girls Act Like D-Bags"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 6985e88f0a474fc48806304d03f5553bb01d315b..d9337f8a1d77ca10a4cc98e298405d77548d3788 100644 (file)
@@ -27,6 +27,17 @@ class ComedyCentralIE(InfoExtractor):
                               (the-colbert-report-(videos|collections)/(?P<clipID>[0-9]+)/[^/]*/(?P<cntitle>.*?))
                               |(watch/(?P<date>[^/]*)/(?P<tdstitle>.*)))))
                      $"""
+    _TEST = {
+        u'url': u'http://www.thedailyshow.com/watch/thu-december-13-2012/kristen-stewart',
+        u'file': u'422212.mp4',
+        u'md5': u'4e2f5cb088a83cd8cdb7756132f9739d',
+        u'info_dict': {
+            u"upload_date": u"20121214", 
+            u"description": u"Kristen Stewart", 
+            u"uploader": u"thedailyshow", 
+            u"title": u"thedailyshow-kristen-stewart part 1"
+        }
+    }
 
     _available_formats = ['3500', '2200', '1700', '1200', '750', '400']
 
index 2246515f2a9205da9a329a78343b759e460bf3df..a4853279bbfc0bce6517a2b1d032ea1eafe07482 100644 (file)
@@ -7,6 +7,15 @@ from ..utils import (
 
 class CSpanIE(InfoExtractor):
     _VALID_URL = r'http://www.c-spanvideo.org/program/(.*)'
+    _TEST = {
+        u'url': u'http://www.c-spanvideo.org/program/HolderonV',
+        u'file': u'315139.flv',
+        u'md5': u'74a623266956f69e4df0068ab6c80fe4',
+        u'info_dict': {
+            u"title": u"Attorney General Eric Holder on Voting Rights Act Decision"
+        },
+        u'skip': u'Requires rtmpdump'
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 34306b073c8bd01f104bef4d368943f057bda082..3297a8549e38e7ddb5be2bda2053964bf70802e7 100644 (file)
@@ -14,6 +14,15 @@ class DailymotionIE(InfoExtractor):
 
     _VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/video/([^/]+)'
     IE_NAME = u'dailymotion'
+    _TEST = {
+        u'url': u'http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech',
+        u'file': u'x33vw9.mp4',
+        u'md5': u'392c4b85a60a90dc4792da41ce3144eb',
+        u'info_dict': {
+            u"uploader": u"Alex and Van .", 
+            u"title": u"Tutoriel de Youtubeur\"DL DES VIDEO DE YOUTUBE\""
+        }
+    }
 
     def _real_extract(self, url):
         # Extract id and simplified title from URL
index 86b145bca9d9da95024525be3f4b5cf441b36b58..794460e8459b65130b117b0806e4ef1630160685 100644 (file)
@@ -12,6 +12,16 @@ from ..utils import (
 
 class EscapistIE(InfoExtractor):
     _VALID_URL = r'^(https?://)?(www\.)?escapistmagazine\.com/videos/view/(?P<showname>[^/]+)/(?P<episode>[^/?]+)[/?]?.*$'
+    _TEST = {
+        u'url': u'http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate',
+        u'file': u'6618-Breaking-Down-Baldurs-Gate.mp4',
+        u'md5': u'c6793dbda81388f4264c1ba18684a74d',
+        u'info_dict': {
+            u"description": u"Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition.", 
+            u"uploader": u"the-escapist-presents", 
+            u"title": u"Breaking Down Baldur's Gate"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index c694f9adbb7cb3dbe0db5a528d14273b14dcc3eb..beaa5b4bdfe146419a97edb4b01bf65ec51c2551 100644 (file)
@@ -22,6 +22,15 @@ class FacebookIE(InfoExtractor):
     _LOGIN_URL = 'https://login.facebook.com/login.php?m&next=http%3A%2F%2Fm.facebook.com%2Fhome.php&'
     _NETRC_MACHINE = 'facebook'
     IE_NAME = u'facebook'
+    _TEST = {
+        u'url': u'https://www.facebook.com/photo.php?v=120708114770723',
+        u'file': u'120708114770723.mp4',
+        u'md5': u'48975a41ccc4b7a581abd68651c1a5a8',
+        u'info_dict': {
+            u"duration": 279, 
+            u"title": u"PEOPLE ARE AWESOME 2013"
+        }
+    }
 
     def report_login(self):
         """Report attempt to log in."""
index 791d5b61dd27efcaf0aa94d3bce2e1744aa72678..bd97bff9a78a9098ae6e5a6d8aa8612683405012 100644 (file)
@@ -10,6 +10,16 @@ from ..utils import (
 class FlickrIE(InfoExtractor):
     """Information Extractor for Flickr videos"""
     _VALID_URL = r'(?:https?://)?(?:www\.)?flickr\.com/photos/(?P<uploader_id>[\w\-_@]+)/(?P<id>\d+).*'
+    _TEST = {
+        u'url': u'http://www.flickr.com/photos/forestwander-nature-pictures/5645318632/in/photostream/',
+        u'file': u'5645318632.mp4',
+        u'md5': u'6fdc01adbc89d72fc9c4f15b4a4ba87b',
+        u'info_dict': {
+            u"description": u"Waterfalls in the Springtime at Dark Hollow Waterfalls. These are located just off of Skyline Drive in Virginia. They are only about 6/10 of a mile hike but it is a pretty steep hill and a good climb back up.", 
+            u"uploader_id": u"forestwander-nature-pictures", 
+            u"title": u"Dark Hollow Waterfalls"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 3045978f1b35cff1552b9b0dbf12f7a7ff522989..388aacf2f1b513c0797bc92d27a8217e49628f08 100644 (file)
@@ -5,6 +5,15 @@ from .common import InfoExtractor
 
 class FunnyOrDieIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:www\.)?funnyordie\.com/videos/(?P<id>[0-9a-f]+)/.*$'
+    _TEST = {
+        u'url': u'http://www.funnyordie.com/videos/0732f586d7/heart-shaped-box-literal-video-version',
+        u'file': u'0732f586d7.mp4',
+        u'md5': u'f647e9e90064b53b6e046e75d0241fbd',
+        u'info_dict': {
+            u"description": u"Lyrics changed to match the video. Spoken cameo by Obscurus Lupa (from ThatGuyWithTheGlasses.com). Based on a concept by Dustin McLean (DustFilms.com). Performed, edited, and written by David A. Scott.", 
+            u"title": u"Heart-Shaped Box: Literal Video Version"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 33e59e82c47f10d37c0004de073757568d25347b..3ce93b492eac0bb5e1595e453949658e4bf68140 100644 (file)
@@ -9,6 +9,15 @@ from ..utils import (
 
 class GametrailersIE(InfoExtractor):
     _VALID_URL = r'http://www.gametrailers.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)'
+    _TEST = {
+        u'url': u'http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer',
+        u'file': u'zbvr8i.flv',
+        u'md5': u'c3edbc995ab4081976e16779bd96a878',
+        u'info_dict': {
+            u"title": u"E3 2013: Debut Trailer"
+        },
+        u'skip': u'Requires rtmpdump'
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 7a877b3bcb4e51dfb68a3cbc2720ce52d17c4be9..f2bb4aa2104c1d306ba658de794be3db4b0d2066 100644 (file)
@@ -15,6 +15,15 @@ class GenericIE(InfoExtractor):
 
     _VALID_URL = r'.*'
     IE_NAME = u'generic'
+    _TEST = {
+        u'url': u'http://www.hodiho.fr/2013/02/regis-plante-sa-jeep.html',
+        u'file': u'13601338388002.mp4',
+        u'md5': u'85b90ccc9d73b4acd9138d3af4c27f89',
+        u'info_dict': {
+            u"uploader": u"www.hodiho.fr", 
+            u"title": u"R\u00e9gis plante sa Jeep"
+        }
+    }
 
     def report_download_webpage(self, video_id):
         """Report webpage download."""
index 82752f9128ccd2cf56cb663740904d232bccf954..ca3abb7d7fdaaf5c84869e1b4eda125d5076573a 100644 (file)
@@ -6,6 +6,14 @@ from .common import InfoExtractor
 
 class HotNewHipHopIE(InfoExtractor):
     _VALID_URL = r'http://www\.hotnewhiphop.com/.*\.(?P<id>.*)\.html'
+    _TEST = {
+        u'url': u"http://www.hotnewhiphop.com/freddie-gibbs-lay-it-down-song.1435540.html'",
+        u'file': u'1435540.mp3',
+        u'md5': u'2c2cd2f76ef11a9b3b581e8b232f3d96',
+        u'info_dict': {
+            u"title": u"Freddie Gibbs Songs - Lay It Down"
+        }
+    }
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url)
index 7b94f85adc2730cdf13304bcbb47b84de6ecc244..6104c4b5e910c5bcd61574b26b1bf6a57ba5bbce 100644 (file)
@@ -5,6 +5,15 @@ from .common import InfoExtractor
 
 class HowcastIE(InfoExtractor):
     _VALID_URL = r'(?:https?://)?(?:www\.)?howcast\.com/videos/(?P<id>\d+)'
+    _TEST = {
+        u'url': u'http://www.howcast.com/videos/390161-How-to-Tie-a-Square-Knot-Properly',
+        u'file': u'390161.mp4',
+        u'md5': u'1d7ba54e2c9d7dc6935ef39e00529138',
+        u'info_dict': {
+            u"description": u"The square knot, also known as the reef knot, is one of the oldest, most basic knots to tie, and can be used in many different ways. Here's the proper way to tie a square knot.", 
+            u"title": u"How to Tie a Square Knot Properly"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index ceec4f616e6b77f6766261b4cdde1761213a5ae5..ab2b591036a6371fc31e7437c368858dfb708efa 100644 (file)
@@ -15,6 +15,14 @@ from ..utils import (
 class HypemIE(InfoExtractor):
     """Information Extractor for hypem"""
     _VALID_URL = r'(?:http://)?(?:www\.)?hypem\.com/track/([^/]+)/([^/]+)'
+    _TEST = {
+        u'url': u'http://hypem.com/track/1v6ga/BODYWORK+-+TAME',
+        u'file': u'1v6ga.mp3',
+        u'md5': u'b9cc91b5af8995e9f0c1cee04c575828',
+        u'info_dict': {
+            u"title": u"Tame"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index c19b956592e4b6099bb0d6d42b8c1f9bb3aea5cd..962c5921447e72a3f15ce20ca1f8e293acf26c44 100644 (file)
@@ -6,6 +6,14 @@ from .common import InfoExtractor
 class InaIE(InfoExtractor):
     """Information Extractor for Ina.fr"""
     _VALID_URL = r'(?:http://)?(?:www\.)?ina\.fr/video/(?P<id>I[0-9]+)/.*'
+    _TEST = {
+        u'url': u'www.ina.fr/video/I12055569/francois-hollande-je-crois-que-c-est-clair-video.html',
+        u'file': u'I12055569.mp4',
+        u'md5': u'a667021bf2b41f8dc6049479d9bb38a3',
+        u'info_dict': {
+            u"title": u"Fran\u00e7ois Hollande \"Je crois que c'est clair\""
+        }
+    }
 
     def _real_extract(self,url):
         mobj = re.match(self._VALID_URL, url)
index b2006e33499a31096d516b88e01c9f81f14392a6..f6001799231f6361608643e0b2a27667913c882e 100644 (file)
@@ -26,6 +26,17 @@ class JustinTVIE(InfoExtractor):
         """
     _JUSTIN_PAGE_LIMIT = 100
     IE_NAME = u'justin.tv'
+    _TEST = {
+        u'url': u'http://www.twitch.tv/thegamedevhub/b/296128360',
+        u'file': u'296128360.flv',
+        u'md5': u'ecaa8a790c22a40770901460af191c9a',
+        u'info_dict': {
+            u"upload_date": u"20110927", 
+            u"uploader_id": 25114803, 
+            u"uploader": u"thegamedevhub", 
+            u"title": u"Beginner Series - Scripting With Python Pt.1"
+        }
+    }
 
     def report_download_page(self, channel, offset):
         """Report attempt to download a single page of videos."""
index e2093a0be92dd700002a20c00dd93f6e525e6da1..72ad6a3d00b25f30f8d56e06bf5a15da32b8a911 100644 (file)
@@ -6,6 +6,15 @@ from .common import InfoExtractor
 class KeekIE(InfoExtractor):
     _VALID_URL = r'http://(?:www\.)?keek\.com/(?:!|\w+/keeks/)(?P<videoID>\w+)'
     IE_NAME = u'keek'
+    _TEST = {
+        u'url': u'http://www.keek.com/ytdl/keeks/NODfbab',
+        u'file': u'NODfbab.mp4',
+        u'md5': u'9b0636f8c0f7614afa4ea5e4c6e57e83',
+        u'info_dict': {
+            u"uploader": u"ytdl", 
+            u"title": u"test chars: \"'/\\\u00e4<>This is a test video for youtube-dl.For more information, contact phihag@phihag.de ."
+        }
+    }
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url)
index d4b142ea09766b96bf38d35d21e36371b748718e..cf8a2c9312a53d8fe3f16b363cce31b2dd7c989d 100644 (file)
@@ -10,6 +10,16 @@ class LiveLeakIE(InfoExtractor):
 
     _VALID_URL = r'^(?:http?://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)'
     IE_NAME = u'liveleak'
+    _TEST = {
+        u'url': u'http://www.liveleak.com/view?i=757_1364311680',
+        u'file': u'757_1364311680.mp4',
+        u'md5': u'0813c2430bea7a46bf13acf3406992f4',
+        u'info_dict': {
+            u"description": u"extremely bad day for this guy..!", 
+            u"uploader": u"ljfriel2", 
+            u"title": u"Most unlucky car accident"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 7b016bb86a239ae9252f1e4864de667cb78fc62f..107665d15f1b939155159121c1ff00da58a33243 100644 (file)
@@ -11,6 +11,15 @@ from ..utils import (
 
 class MySpassIE(InfoExtractor):
     _VALID_URL = r'http://www.myspass.de/.*'
+    _TEST = {
+        u'url': u'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/',
+        u'file': u'11741.mp4',
+        u'md5': u'0b49f4844a068f8b33f4b7c88405862b',
+        u'info_dict': {
+            u"description": u"Wer kann in die Fu\u00dfstapfen von Wolfgang Kubicki treten und die Mehrheit der Zuschauer hinter sich versammeln? Wird vielleicht sogar die Absolute Mehrheit geknackt und der Jackpot von 200.000 Euro mit nach Hause genommen?", 
+            u"title": u"Absolute Mehrheit vom 17.02.2013 - Die Highlights, Teil 2"
+        }
+    }
 
     def _real_extract(self, url):
         META_DATA_URL_TEMPLATE = 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=%s'
index 47a44e3e0ec0acce8bec22fe1c2622658549ae2f..b2a7b1df04dd86cc12a4a3f94b7712cd201ae706 100644 (file)
@@ -18,6 +18,14 @@ class MyVideoIE(InfoExtractor):
 
     _VALID_URL = r'(?:http://)?(?:www\.)?myvideo\.de/watch/([0-9]+)/([^?/]+).*'
     IE_NAME = u'myvideo'
+    _TEST = {
+        u'url': u'http://www.myvideo.de/watch/8229274/bowling_fail_or_win',
+        u'file': u'8229274.flv',
+        u'md5': u'2d2753e8130479ba2cb7e0a37002053e',
+        u'info_dict': {
+            u"title": u"bowling-fail-or-win"
+        }
+    }
 
     # Original Code from: https://github.com/dersphere/plugin.video.myvideo_de.git
     # Released into the Public Domain by Tristan Fischer on 2013-05-19
index 296d4cd36e9e295ccbb6f88af0c3b73e7a78ce3b..122b7dd2628e3b1cd43ffb9dbb67035047745c9f 100644 (file)
@@ -8,6 +8,15 @@ from ..utils import (
 
 class NBAIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:watch\.|www\.)?nba\.com/(?:nba/)?video(/[^?]*?)(?:/index\.html)?(?:\?.*)?$'
+    _TEST = {
+        u'url': u'http://www.nba.com/video/games/nets/2012/12/04/0021200253-okc-bkn-recap.nba/index.html',
+        u'file': u'0021200253-okc-bkn-recap.nba.mp4',
+        u'md5': u'c0edcfc37607344e2ff8f13c378c88a4',
+        u'info_dict': {
+            u"description": u"Kevin Durant scores 32 points and dishes out six assists as the Thunder beat the Nets in Brooklyn.", 
+            u"title": u"Thunder vs. Nets"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index cd7fe6f52f1dffef0da32e64170be07c5a97ac25..305b79773b3eaa25b8b580686d4e356f947b13f7 100644 (file)
@@ -16,6 +16,16 @@ class PhotobucketIE(InfoExtractor):
     # Check if it's necessary to keep the old extracion process
     _VALID_URL = r'(?:http://)?(?:[a-z0-9]+\.)?photobucket\.com/.*(([\?\&]current=)|_)(?P<id>.*)\.(?P<ext>(flv)|(mp4))'
     IE_NAME = u'photobucket'
+    _TEST = {
+        u'url': u'http://media.photobucket.com/user/rachaneronas/media/TiredofLinkBuildingTryBacklinkMyDomaincom_zpsc0c3b9fa.mp4.html?filters[term]=search&filters[primary]=videos&filters[secondary]=images&sort=1&o=0',
+        u'file': u'zpsc0c3b9fa.mp4',
+        u'md5': u'7dabfb92b0a31f6c16cebc0f8e60ff99',
+        u'info_dict': {
+            u"upload_date": u"20130504", 
+            u"uploader": u"rachaneronas", 
+            u"title": u"Tired of Link Building? Try BacklinkMyDomain.com!"
+        }
+    }
 
     def _real_extract(self, url):
         # Extract id from URL
index 0adb40db0748c7267365ab34a87faeb4d4d54f61..add76a11e5f2c0c17af76b71db6e8bd07adc6cd6 100644 (file)
@@ -10,6 +10,15 @@ from ..utils import (
 
 class PornotubeIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?pornotube\.com(/c/(?P<channel>[0-9]+))?(/m/(?P<videoid>[0-9]+))(/(?P<title>.+))$'
+    _TEST = {
+        u'url': u'http://pornotube.com/c/173/m/1689755/Marilyn-Monroe-Bathing',
+        u'file': u'1689755.flv',
+        u'md5': u'374dd6dcedd24234453b295209aa69b6',
+        u'info_dict': {
+            u"upload_date": u"20090708", 
+            u"title": u"Marilyn-Monroe-Bathing"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 0c75eee2a8d5e17a0b9b8f873fbd15e6fc3615ac..4b6147a73560460988fc356dd5a9684317985b36 100644 (file)
@@ -11,6 +11,18 @@ from ..utils import (
 
 class RBMARadioIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)?rbmaradio\.com/shows/(?P<videoID>[^/]+)$'
+    _TEST = {
+        u'url': u'http://www.rbmaradio.com/shows/ford-lopatin-live-at-primavera-sound-2011',
+        u'file': u'ford-lopatin-live-at-primavera-sound-2011.mp3',
+        u'md5': u'6bc6f9bcb18994b4c983bc3bf4384d95',
+        u'info_dict': {
+            u"uploader_id": u"ford-lopatin", 
+            u"location": u"Spain", 
+            u"description": u"Joel Ford and Daniel \u2019Oneohtrix Point Never\u2019 Lopatin fly their midified pop extravaganza to Spain. Live at Primavera Sound 2011.", 
+            u"uploader": u"Ford & Lopatin", 
+            u"title": u"Live at Primavera Sound 2011"
+        }
+    }
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url)
index ebc4e23261bfe029e6e30150c2ca3b264d24ab81..1d2cf1f56df7ae932e67d4cd8253f6441818d80e 100644 (file)
@@ -5,6 +5,14 @@ from .common import InfoExtractor
 
 class RedTubeIE(InfoExtractor):
     _VALID_URL = r'(?:http://)?(?:www\.)?redtube\.com/(?P<id>[0-9]+)'
+    _TEST = {
+        u'url': u'http://www.redtube.com/66418',
+        u'file': u'66418.mp4',
+        u'md5': u'7b8c22b5e7098a3e1c09709df1126d2d',
+        u'info_dict': {
+            u"title": u"Sucked on a toilet"
+        }
+    }
 
     def _real_extract(self,url):
         mobj = re.match(self._VALID_URL, url)
index 05342c9b1b2071d8beb971fc155413bdc32daea0..9f81fa87ac2ca0258f6412bc31f12ca71c815b89 100644 (file)
@@ -21,6 +21,17 @@ class SoundcloudIE(InfoExtractor):
 
     _VALID_URL = r'^(?:https?://)?(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)'
     IE_NAME = u'soundcloud'
+    _TEST = {
+        u'url': u'http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy',
+        u'file': u'62986583.mp3',
+        u'md5': u'ebef0a451b909710ed1d7787dddbf0d7',
+        u'info_dict': {
+            u"upload_date": u"20121011", 
+            u"description": u"No Downloads untill we record the finished version this weekend, i was too pumped n i had to post it , earl is prolly gonna b hella p.o'd", 
+            u"uploader": u"E.T. ExTerrestrial Music", 
+            u"title": u"Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1"
+        }
+    }
 
     def report_resolve(self, video_id):
         """Report information extraction."""
index 98a65b78bab945b999a1edae2ca088771622e125..13c86401c0095bd5584e03ac35614d06edb76be1 100644 (file)
@@ -6,6 +6,14 @@ from .common import InfoExtractor
 
 class SpiegelIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)?spiegel\.de/video/[^/]*-(?P<videoID>[0-9]+)(?:\.html)?(?:#.*)?$'
+    _TEST = {
+        u'url': u'http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html',
+        u'file': u'1259285.mp4',
+        u'md5': u'2c2754212136f35fb4b19767d242f66e',
+        u'info_dict': {
+            u"title": u"Vulkanausbruch in Ecuador: Der \"Feuerschlund\" ist wieder aktiv"
+        }
+    }
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url)
index 8d3e32ab9755f7d365a0c346126d450d65ccac51..25a0d09f79a63a56eef76203b101df751e43ebca 100644 (file)
@@ -20,6 +20,14 @@ class StanfordOpenClassroomIE(InfoExtractor):
 
     _VALID_URL = r'^(?:https?://)?openclassroom.stanford.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$'
     IE_NAME = u'stanfordoc'
+    _TEST = {
+        u'url': u'http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100',
+        u'file': u'PracticalUnix_intro-environment.mp4',
+        u'md5': u'544a9468546059d4e80d76265b0443b8',
+        u'info_dict': {
+            u"title": u"Intro Environment"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 95d2ee3c046fa70289fc5ab07e7062db7a66f047..25bf5b85ce205fb936a534cc6b79a5233bb7d593 100644 (file)
@@ -4,6 +4,15 @@ from .common import InfoExtractor
 
 class StatigramIE(InfoExtractor):
     _VALID_URL = r'(?:http://)?(?:www\.)?statigr\.am/p/([^/]+)'
+    _TEST = {
+        u'url': u'http://statigr.am/p/484091715184808010_284179915',
+        u'file': u'484091715184808010_284179915.mp4',
+        u'md5': u'deda4ff333abe2e118740321e992605b',
+        u'info_dict': {
+            u"uploader_id": u"videoseconds", 
+            u"title": u"Instagram photo by @videoseconds (Videos)"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 092ac74d8ea4969ecfc047b88ffd6e5d099f8ca3..1dd5e1b685e7aa99804d51d99a594945f30961a6 100644 (file)
@@ -8,6 +8,15 @@ from ..utils import (
 
 class TeamcocoIE(InfoExtractor):
     _VALID_URL = r'http://teamcoco\.com/video/(?P<url_title>.*)'
+    _TEST = {
+        u'url': u'http://teamcoco.com/video/louis-ck-interview-george-w-bush',
+        u'file': u'19705.mp4',
+        u'md5': u'27b6f7527da5acf534b15f21b032656e',
+        u'info_dict': {
+            u"description": u"Louis C.K. got starstruck by George W. Bush, so what? Part one.", 
+            u"title": u"Louis C.K. Interview Pt. 1 11/3/11"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index ccad1c7c2087b533712b62aedaed43abcfa0bf90..46b66582ced7edbb1cf4752f192b9df003031fc0 100644 (file)
@@ -14,6 +14,15 @@ class TEDIE(InfoExtractor):
                    (/lang/(.*?))? # The url may contain the language
                    /(?P<name>\w+) # Here goes the name and then ".html"
                    '''
+    _TEST = {
+        u'url': u'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html',
+        u'file': u'102.mp4',
+        u'md5': u'8cd9dfa41ee000ce658fd48fb5d89a61',
+        u'info_dict': {
+            u"description": u"md5:c6fa72e6eedbd938c9caf6b2702f5922", 
+            u"title": u"Dan Dennett: The illusion of consciousness"
+        }
+    }
 
     @classmethod
     def suitable(cls, url):
index 9ca860ab084f523c7dc5ed7b16b28ff0e91c3324..4681a6f797ce17bdfc96381308991d46a6e96cd6 100644 (file)
@@ -5,6 +5,14 @@ from .common import InfoExtractor
 
 class TudouIE(InfoExtractor):
     _VALID_URL = r'(?:http://)?(?:www\.)?tudou\.com/(?:listplay|programs)/(?:view|(.+?))/(?:([^/]+)|([^/]+)\.html)'
+    _TEST = {
+        u'url': u'http://www.tudou.com/listplay/zzdE77v6Mmo/2xN2duXMxmw.html',
+        u'file': u'159447792.f4v',
+        u'md5': u'ad7c358a01541e926a1e413612c6b10a',
+        u'info_dict': {
+            u"title": u"\u5361\u9a6c\u4e54\u56fd\u8db3\u5f00\u5927\u811a\u957f\u4f20\u51b2\u540a\u96c6\u9526"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index b0851b4f9cd360fc8d4ba58c725c7b04d4708c50..618199d6b93f6ab86ad24d3c3d846c8df357c2c3 100644 (file)
@@ -8,6 +8,14 @@ from ..utils import (
 
 class TumblrIE(InfoExtractor):
     _VALID_URL = r'http://(?P<blog_name>.*?)\.tumblr\.com/((post)|(video))/(?P<id>\d*)/(.*?)'
+    _TEST = {
+        u'url': u'http://resigno.tumblr.com/post/53364321212/e-de-extrema-importancia-que-esse-video-seja',
+        u'file': u'53364321212.mp4',
+        u'md5': u'0716d3dd51baf68a28b40fdf1251494e',
+        u'info_dict': {
+            u"title": u"Rafael Lemos | Tumblr"
+        }
+    }
 
     def _real_extract(self, url):
         m_url = re.match(self._VALID_URL, url)
index cfe3a6840af834a1f4740c7c4f7290c63b591096..5f423870abb6c9e337f7e0c328b16ed3ef5049ab 100644 (file)
@@ -6,6 +6,15 @@ from .common import InfoExtractor
 class UstreamIE(InfoExtractor):
     _VALID_URL = r'https?://www\.ustream\.tv/recorded/(?P<videoID>\d+)'
     IE_NAME = u'ustream'
+    _TEST = {
+        u'url': u'http://www.ustream.tv/recorded/20274954',
+        u'file': u'20274954.flv',
+        u'md5': u'088f151799e8f572f84eb62f17d73e5c',
+        u'info_dict': {
+            u"uploader": u"Young Americans for Liberty", 
+            u"title": u"Young Americans for Liberty February 7, 2012 2:28 AM"
+        }
+    }
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url)
index 2f3ce46e86a880fa5058c6ebcb2fce28ad913c82..4f803bcd3c02c69bc390fa0784e8622007f9db49 100644 (file)
@@ -12,6 +12,14 @@ from ..utils import (
 class Vbox7IE(InfoExtractor):
     """Information Extractor for Vbox7"""
     _VALID_URL = r'(?:http://)?(?:www\.)?vbox7\.com/play:([^/]+)'
+    _TEST = {
+        u'url': u'http://vbox7.com/play:249bb972c2',
+        u'file': u'249bb972c2.flv',
+        u'md5': u'9c70d6d956f888bdc08c124acc120cfe',
+        u'info_dict': {
+            u"title": u"\u0421\u043c\u044f\u0445! \u0427\u0443\u0434\u043e - \u0447\u0438\u0441\u0442 \u0437\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0438 - \u0421\u043a\u0440\u0438\u0442\u0430 \u043a\u0430\u043c\u0435\u0440\u0430"
+        }
+    }
 
     def _real_extract(self,url):
         mobj = re.match(self._VALID_URL, url)
index 49a249ae32a901ea3bc5be431b2a510a09fc95bc..3b16dcfbc160b34c787d7dd99e9b54fb2dea1c6b 100644 (file)
@@ -12,6 +12,16 @@ class VevoIE(InfoExtractor):
     (currently used by MTVIE)
     """
     _VALID_URL = r'((http://www.vevo.com/watch/.*?/.*?/)|(vevo:))(?P<id>.*)$'
+    _TEST = {
+        u'url': u'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280',
+        u'file': u'GB1101300280.mp4',
+        u'md5': u'06bea460acb744eab74a9d7dcb4bfd61',
+        u'info_dict': {
+            u"upload_date": u"20130624", 
+            u"uploader": u"Hurts", 
+            u"title": u"Somebody To Die For"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 20dc255d4c3e8de8dd4dd4cc30a60cb0427135de..11741e27d0033f548b277bcd7cf3bba2f2c1a2b4 100644 (file)
@@ -18,6 +18,18 @@ class VimeoIE(InfoExtractor):
     # _VALID_URL matches Vimeo URLs
     _VALID_URL = r'(?P<proto>https?://)?(?:(?:www|player)\.)?vimeo(?P<pro>pro)?\.com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?P<direct_link>play_redirect_hls\?clip_id=)?(?:videos?/)?(?P<id>[0-9]+)'
     IE_NAME = u'vimeo'
+    _TEST = {
+        u'url': u'http://vimeo.com/56015672',
+        u'file': u'56015672.mp4',
+        u'md5': u'8879b6cc097e987f02484baf890129e5',
+        u'info_dict': {
+            u"upload_date": u"20121220", 
+            u"description": u"This is a test case for youtube-dl.\nFor more information, see github.com/rg3/youtube-dl\nTest chars: \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550", 
+            u"uploader_id": u"user7108434", 
+            u"uploader": u"Filippo Valsorda", 
+            u"title": u"youtube-dl test video - \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550"
+        }
+    }
 
     def _verify_video_password(self, url, video_id, webpage):
         password = self._downloader.params.get('videopassword', None)
index b44b1cb024f607e78ba1b977be42220ea7090e81..bdd3522ebf5a7385a80c54a6e85c808d54346cc4 100644 (file)
@@ -5,6 +5,15 @@ from .common import InfoExtractor
 
 class VineIE(InfoExtractor):
     _VALID_URL = r'(?:https?://)?(?:www\.)?vine\.co/v/(?P<id>\w+)'
+    _TEST = {
+        u'url': u'https://vine.co/v/b9KOOWX7HUx',
+        u'file': u'b9KOOWX7HUx.mp4',
+        u'md5': u'2f36fed6235b16da96ce9b4dc890940d',
+        u'info_dict': {
+            u"uploader": u"Jack Dorsey", 
+            u"title": u"Chicken."
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 84f065a3df97c4d4b1c40c37cac5d4494d6ff8f6..b9c3b13f918f5fbffa73010cbefb46543dac9586 100644 (file)
@@ -6,6 +6,14 @@ from .common import InfoExtractor
 
 class WimpIE(InfoExtractor):
     _VALID_URL = r'(?:http://)?(?:www\.)?wimp\.com/([^/]+)/'
+    _TEST = {
+        u'url': u'http://www.wimp.com/deerfence/',
+        u'file': u'deerfence.flv',
+        u'md5': u'8b215e2e0168c6081a1cf84b2846a2b5',
+        u'info_dict': {
+            u"title": u"Watch Till End: Herd of deer jump over a fence."
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 00135092623f61a86bae99862fbf6b788a85be76..0f1feeffd777ccc152b1ea1c4bb15dc00dc6b494 100644 (file)
@@ -11,6 +11,16 @@ from ..utils import (
 class XHamsterIE(InfoExtractor):
     """Information Extractor for xHamster"""
     _VALID_URL = r'(?:http://)?(?:www.)?xhamster\.com/movies/(?P<id>[0-9]+)/.*\.html'
+    _TEST = {
+        u'url': u'http://xhamster.com/movies/1509445/femaleagent_shy_beauty_takes_the_bait.html',
+        u'file': u'1509445.flv',
+        u'md5': u'9f48e0e8d58e3076bb236ff412ab62fa',
+        u'info_dict': {
+            u"upload_date": u"20121014", 
+            u"uploader_id": u"Ruseful2011", 
+            u"title": u"FemaleAgent Shy beauty takes the bait"
+        }
+    }
 
     def _real_extract(self,url):
         mobj = re.match(self._VALID_URL, url)
index 68acb84098fc0c2b9349ad6fd540d857fbcb5075..40d8489000bb7a25f277c84d6d407b72ce778c8d 100644 (file)
@@ -13,6 +13,14 @@ class XNXXIE(InfoExtractor):
     VIDEO_URL_RE = r'flv_url=(.*?)&amp;'
     VIDEO_TITLE_RE = r'<title>(.*?)\s+-\s+XNXX.COM'
     VIDEO_THUMB_RE = r'url_bigthumb=(.*?)&amp;'
+    _TEST = {
+        u'url': u'http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_',
+        u'file': u'1135332.flv',
+        u'md5': u'0831677e2b4761795f68d417e0b7b445',
+        u'info_dict': {
+            u"title": u"lida \u00bb Naked Funny Actress  (5)"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 8b3cb3930d77c0c7a649a57afee84c2425713ba5..c3b9736d70a7af6fb90cd617312d25fd2d7cc740 100644 (file)
@@ -8,6 +8,14 @@ from ..utils import (
 
 class XVideosIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:www\.)?xvideos\.com/video([0-9]+)(?:.*)'
+    _TEST = {
+        u'url': u'http://www.xvideos.com/video939581/funny_porns_by_s_-1',
+        u'file': u'939581.flv',
+        u'md5': u'1d0c835822f0a71a7bf011855db929d0',
+        u'info_dict': {
+            u"title": u"Funny Porns By >>>>S<<<<<< -1"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 4b3aec9d1f5a8ce91f676d585e5f98dd3ba126aa..1f98f24eb69aaa0f63fc9596f89203db92509f4e 100644 (file)
@@ -13,6 +13,15 @@ from ..utils import (
 class YahooIE(InfoExtractor):
     """Information extractor for screen.yahoo.com."""
     _VALID_URL = r'http://screen\.yahoo\.com/.*?-(?P<id>\d*?)\.html'
+    _TEST = {
+        u'url': u'http://screen.yahoo.com/julian-smith-travis-legg-watch-214727115.html',
+        u'file': u'214727115.flv',
+        u'md5': u'2e717f169c1be93d84d3794a00d4a325',
+        u'info_dict': {
+            u"title": u"Julian Smith & Travis Legg Watch Julian Smith"
+        },
+        u'skip': u'Requires rtmpdump'
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index d9efac76eb7707d622fc3c4e499e380521cd40fb..6f022670cb9ef076a002c387e6357d99ec87d402 100644 (file)
@@ -8,6 +8,14 @@ from ..utils import (
 
 class YouJizzIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+).html$'
+    _TEST = {
+        u'url': u'http://www.youjizz.com/videos/zeichentrick-1-2189178.html',
+        u'file': u'2189178.flv',
+        u'md5': u'07e15fa469ba384c7693fd246905547c',
+        u'info_dict': {
+            u"title": u"Zeichentrick 1"
+        }
+    }
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
index 5d8b7db2cefe9175f37e3c1902c3288ef816ee49..d1156bf425ea3f1b5522bb528a042758d30a2075 100644 (file)
@@ -16,6 +16,17 @@ from ..utils import (
 
 class YouPornIE(InfoExtractor):
     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youporn\.com/watch/(?P<videoid>[0-9]+)/(?P<title>[^/]+)'
+    _TEST = {
+        u'url': u'http://www.youporn.com/watch/505835/sex-ed-is-it-safe-to-masturbate-daily/',
+        u'file': u'505835.mp4',
+        u'md5': u'c37ddbaaa39058c76a7e86c6813423c1',
+        u'info_dict': {
+            u"upload_date": u"20101221", 
+            u"description": u"Love & Sex Answers: http://bit.ly/DanAndJenn -- Is It Unhealthy To Masturbate Daily?", 
+            u"uploader": u"Ask Dan And Jennifer", 
+            u"title": u"Sex Ed: Is It Safe To Masturbate Daily?"
+        }
+    }
 
     def _print_formats(self, formats):
         """Print all available formats"""