New radio PIDs, more than 8 characters - "solved"

M Clark mclark at gmx.co.uk
Mon Aug 14 05:19:14 PDT 2017


Aside from tellyaddict's caveat (others welcome);
snip

> I think what Charles was meaning is that if you were using --url "http://www.bbc.co.uk/programmes/b08xy0gl" rather than a direct PID then the code is looking for something starting with either b, p or w followed by between 7 and 14 letters or numbers and the first thing it hits that matches all that criteria is the word "programmes". Like you say, GiP wouldn't return any VPID info but as it finds programmes to be a valid PID, it won't keep looking for the proper PID in that URL so would never be able to download from a URL.
> 

?
pseudo code
if --url
  strip characters following last /
  use as pid
  validate_pid
end-if
?

Anyway...
changing all 7 occurrences (sigh...) of
[bp]0[a-z0-9]{6}
to
(?:[bp]0[a-z0-9]{6}|w[a-z0-9]{7,14})
solves the w3*, w1* problem for Me.

I only use WebPVR and command line with explicit pids.
A re-run of WebPVR successfully downloaded all my outstanding programmes.  I then refreshed (radio) cache, made selections (b*, p* & w*) and everything down loaded fine.

Big thanks to Vangelis & Ralph.

FWIW
I usually refresh radio cache daily, make selections and then run WebPVR (or list on command line).  First noticed a w* pid on the 5th August (Music Extra: The Music of Time - The Music of Time – Cuba (w3csvnyc) ).  Thought it was a one-off.  It was until the 12th when a slew of w3* and w1* appeared.
Can't comment on the BBC's Pid.php;
https://github.com/bbc/programmes-pages-service/blob/master/src/Domain/ValueObject/Pid.php#l14

Also.
No disrespect intended to Dinkypumpkin as "he's" only picked-up existing code but, as an ex-programmer I'm horrified by the code repetition.  Doesn't Perl allow 'functions'?  i.e. if valid_pid ... where valid_pid contains said validation.

Regards,
Martin



More information about the get_iplayer mailing list