Another download issue.

Vangelis forthnet northmedia1 at the.forthnet.gr
Tue Oct 7 11:04:27 PDT 2014


On Tue Oct 7 12:52:44 BST 2014, dinkypumpkin wrote:

> For TV programmes, vPID is buried in the source of the episode
> player page. View the page source and search for "vpid".

Huge thanks for this priceless tip!

> For radio programmes, the online player appears to still retrieve the 
> episode playlist and look for the vPID there. 
> So for radio, you would need to do URL sniffing

Yes, the player gets the vPID by fetching this json file:

http://www.bbc.co.uk/programmes/[pid]/playlist.json

So, for this radio show:

http://www.bbc.co.uk/programmes/b04k6p56

it would get this file (open in a Firefox tab):

http://www.bbc.co.uk/programmes/b04k6p56/playlist.json

=> {"vpid":"b04k6p3j","kind":"audio","duration":10800}

Notice the following line:

"legacyPlaylist":"http:\/\/www.bbc.co.uk\/iplayer\/playlist\/b04k6p56"

Does this mean that the default "playlist URL" used by GiP 
is now a "legacy" option, soon to be retired?

And I want to share an important find here:
Although the .json file states: 
"readme":"For the use of Radio, Music and Programmes only", 
I thought I should try it on one of the TV shows 
mentioned earlier in this thread, that fail to download with 
GiP via the PID method:

http://www.bbc.co.uk/iplayer/episode/b04jmx7l/
http://www.bbc.co.uk/iplayer/episode/b04jtmbc/
http://www.bbc.co.uk/iplayer/episode/b04jthhv/
http://www.bbc.co.uk/iplayer/episode/b04kk759/

If you take e.g. the link the OP mentioned, the "json" playlist 
DOES RETURN the correct vpid string:
http://www.bbc.co.uk/programmes/b04jmx7l/playlist.json
=> {"vpid":"b04jmwzz","kind":"video","duration":5400}

So, in theory at least, GiP could be patched to use 
this "NEW" playlist URL to access the "vpid" string 
and hence retrieve the needed stream parameters 
to feed to rtmpdump...

> to retrieve the stream parameters you could use 
> to construct a rtmpdump command line.

You'd have to agree with me that both tasks 
(manually retrieve the stream details/manually 
construct a working rtmpdump command for a 
certain CDN) is beyond the skills of an average 
GiP user, who just wants to fetch to disk the episode 
of Eastenders from a fortnight ago. 
Many windows users are unfamiliar/uncomfortable 
with a CLI tool like rtmpdump, and wouldn't know 
what to do with the template commands I provided...
Moreover, rtmpdump will get you an untagged flv file 
with a meaningless string as a file name...
I personally know how to proceed further (i.e. 
remux losslessly to MP4/M4A container, tag with CLI 
or GUI MP4 taggers), but the average Joe/Jill would struggle...

What my aging mind proposes is that (for an interim crude fix) 
a new "vpid" option be created, its value would be the string 
one finds manually via, e.g., the "page source" method you kindly 
revealed; this option would work alongside the standard "pid "one 
and the script would be instructed to look for the manually fed value 
in cases where the standard method of using the (now "legacy") 
"playlist URL" returns either of these:

<noItems reason="preAvailability"/>
<noItems reason="postAvailability"/>
<noItems reason="noMedia"/>

If no "vpid" value, then it would proceed to display the 
standard error message:
WARNING: No programmes are available for this pid with version(s): default'

So, I envisage this working command:

get_iplayer --type=tv --pid=b04jmx7l  --vpid=b04jmwzz  --modes=flashvhigh

(This request is addressed not only to DP, but to any list member 
with Perl writing skills - I totally lack those; and you can't 
teach new tricks to an old dog :-) ).
To communicate to the average Joe/Jill that a new "patched" 
version of GiP has been created is another difficult task - many 
are oblivious to the existence of this list and/or SP's support forum...

Sincere greetings,
Vangelis.



More information about the get_iplayer mailing list