get_iplayer forums

Full Version: Fails with "Not a HASH reference at /usr/local/bin/get_iplayer line 5354"
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
get_iplayer version 3.02 command line interface
linux mint Maya
saving to internal harddrive

I've manually installed new version of get_iplayer using instructions on wiki pages  but fail to download any programmes with exactly same line output "Not a HASH reference at /usr/local/bin/get_iplayer line 5354."
e.g.
get_iplayer --pid b08zd4m7 --type=radio

log attached
[attachment=256]
Post your Perl version:
Code:
perl -v
and some XML::LibXML version info from:
Code:
perl -MXML::LibXML -e 'print $XML::LibXML::VERSION, " ", XML::LibXML::LIBXML_DOTTED_VERSION, "\n"'
$ perl -v
perl 5, version 14, subversion 2 (v5.14.2) built for i686-linux-gnu-thread-multi-64int
(with 60 registered patches, see perl -V for more detail)


$ perl -MXML::LibXML -e 'print $XML::LibXML::VERSION, " ", XML::LibXML::LIBXML_DOTTED_VERSION, "\n"'
1.89 2.7.8
As I suspected, your version of XML::LibXML is too old. I'll have to change get_iplayer so that it emits a warning for this, but the end result is the same. The get_iplayer install doc tells you how to set up a local module library where you can install an updated version of XML::LibXML. This problem only manifests for DASH streams, so you also may be able to work around it with something like --radiomode=haf and --tvmode=hls,hvf, though that is a rather blunt instrument. Better to update XML::LibXML.
I had already followed the instructions to set up a local module library:

curl -L "http://cpanmin.us" | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.bash_profile

and install modules with:

cpanm LWP LWP::Protocol::https Mojolicious XML::LibXML CGI

Should I repeat?
Remembered I had previously installed libxml-libxml-perl (XML::LibXML) along with libwww-perl liblwp-protocol-https-perl libmojolicious-perl using "sudo apt-get install". The get_iplayer install doc did say this was unwise. It was this perl module which was too old. Uninstalled using "sudo apt-get remove libxml-libxml-perl && sudo apt-get autoremove"

get_iplayer now works smoothly, presumably using the local module Iibrary I previously set up as per instructions.

Many thanks
In the end I did reinstall XML:LibXML using:
$ cpanm XML::LibXML

however build.log indicated missing libxml2 and zlib which I installed using
$ sudo apt-get install libxml2-dev zlib1g-dev


then tried installing XML::LibXML again

Don't appear to have any more warnings/error messages.
For others: XML::LibXML 1.91 is now the minimum version required for get_iplayer. You shouldn't have any trouble with that unless you are using a Linux/OSX release that is end-of-life (like Mint Maya), or is otherwise obsolete. If that is the case, create a local module library as described in install docs and install updated Perl modules to override the system-supplied modules.
Fixed in v3.03