Giter Site home page Giter Site logo

jjl / get_iplayer Goto Github PK

View Code? Open in Web Editor NEW
118.0 3.0 15.0 608 KB

A utility for grabbing tv and radio from BBC iPlayer. Phil Lewis has stopped developed it so I've forked it.

Home Page: http://linuxcentre.net/get_iplayer-dropped-in-response-to-bbcs-lack-of-support-for-open-source

License: GNU General Public License v3.0

Perl 100.00%

get_iplayer's Introduction

get_iplayer -- tool for accessing tv and radio from BBC iPlayer.

The BBC currently only provides two choices for accessing iPlayer content from a regular machine, either through it's windows desktop client or through adobe flash. There are apps for the iPhone and other devices and some set top boxes as well.

What the BBC do not cater for are people who use alternative operating systems or who do not wish to use the BBC's selected technologies (which, frankly, should be anyone not running windows since flash's performance is atrocious).

The BBC have a well documented platform neutrality policy which they seem to be reluctant to keep themselves to and after repeated digs at open source, I thought we'd show them what open source can do.

So get hacking!

PROMETHEUS

The original get_iplayer code is a mess. I initially began to gradually refactor it but encountered severe problems, largely owing to lexical scoping and variables being shared through scopes.

I gave up and started rewriting it instead. The original script is still there as 'get_iplayer' and i reverted it to the last version that Phil released.

Prometheus is the next generation of get_iplayer. It won't steal fire from the Gods, but it may enable you to use get_iplayer on a non-bbc-supported platform.

Also: http://www.youtube.com/watch?v=-Ryd_p20XEU

get_iplayer's People

Contributors

caius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

get_iplayer's Issues

get_iplayer doesn't support akamai video streams for live channels

As noted in #4 it seems get_iplayer doesn't currently support video/mp4 streams served via over rtmp from akamai hosts.

Currently BBC One is using these to serve live coverage of their World Cup footage.

$ curl http://www.bbc.co.uk/emp/simulcast/bbc_one_london.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- bbc_one_london.html r13490 -->
<playlist xmlns="http://bbc.co.uk/2008/emp/playlist" revision="1">
  <config>
    <plugin name="iPlayerLiveStats"/>
    <plugin name="spacesReporting"/>
  </config> 
    <id>tag:bbc.co.uk,2009:simulcast:bbc_one_london:playlist</id>
    <link rel="alternate" href="http://www.bbc.co.uk/bbcone/"/>
    <title>BBC One</title>
    <summary>-</summary>
    <link rel="holding" href="http://www.bbc.co.uk/iplayer/images/tv/bbc_one_london_640_360.jpg" width="640" height="360" type="image/jpeg"/>
    <updated>2009-09-24T12:10:00Z</updated>
    <item kind="programme" live="true" simulcast="true" identifier="bbc_one_london" group="bbc_one_london">
      <id>tag:bbc.co.uk,2009:simulcast:bbc_one_london</id>
      <service id="bbc_one_london" href="http://www.bbc.co.uk/bbc_one_london">BBC One London</service>
      <masterbrand id="bbc_one" href="http://www.bbc.co.uk/iplayer/bbc_one">BBC One</masterbrand>
      <media kind="video" width="688" height="386" bitrate="1500" type="video/mp4" encoding="h264">
        <connection kind="akamai" application="live" identifier="bbc1_inlet_1500@s13633" server="cp80627.live.edgefcs.net" tokenIssuer="akamaiUk" />
      </media>
      <media kind="video" width="640" height="360" bitrate="800" type="video/mp4" encoding="h264">
        <connection kind="akamai" application="live" identifier="bbc1_inlet_800@s13632" server="cp80627.live.edgefcs.net" tokenIssuer="akamaiUk" />
      </media>
      <media kind="video" width="640" height="360" bitrate="480" type="video/mp4" encoding="h264">
        <connection kind="akamai" application="live" identifier="bbc1_inlet_500@s13631" server="cp80627.live.edgefcs.net" tokenIssuer="akamaiUk" />
      </media>
    </item>
</playlist>

It would be nice if we could work out what else is needed to support these. I've tried commenting out the skip and using latest rtmpdump, but without success thus far.

status

is the project finished? im a java developer and could help.

flashaudio mode not working

The flashaudio mode of radio programs is no longer working. I can download the audio if I switch same programme to realaudio.

The error I get is:
FLVStreamer v2.1c1
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
ERROR: rtmp server sent error
ERROR: rtmp server requested close
INFO: Command exit code 1 (raw code = 256)
WARNING: Failed to stream file /home/ode79/listen/radio/Mark_Steels_in_Town_Series_2_-_4._Penzance_b00s3gq5_default.partial.mp3.flv via RTMP
INFO: skipping flashaudio1 mode
ERROR: Failed to record 'Mark Steel's in Town: Series 2 - 4. Penzance (b00s3gq5)'

[PATCH] get_iplayer doesn't warn about unsupported akamai video streams

currently get_iplayer simply silently ignores akamai video streams on the livetv channels

these are currently being used by BBC One's live streaming of World Cup matches.

A simple patch to at least output a proper warning when these are found is available here:

oldmanuk@a0141163ea77cc0e621a4f9f7c848edf68fc52af

RE: Perl modules

This isn't an issue with the program (I don't think), but I think it may be a common source of errors preventing it running - in searching for the solution I found others with the same and thought it might be a good idea to save others time doing so in future.

Running the get_iplayer.pl script (renamed since the instructions were written to just get_iplayer) errored out because of use HTML::Entities and use HTTP::Cookies

Just for the info of anyone else trying to use this, the modules can be obtained via a package manager from within libhtml-parser-perl and libhttp-parser-perl (i.e. with sudo apt-get install ...) respectively

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.