Hi everyone ,
I am using Windows 10 and cannot download programmes using any of the methods , including the pid one . The error messages are :
WARNING : Could not parse programme metadata from ....
ERROR : Failed to get version pid metadata from iplayer site
My command was : get_iplayer --pid=<PID>
I also tried to download subtitles using : get_iplayer --pid=<PID> --subtitles-only
thanking you all
That is not enough information to work with. Show the actual command used, and post the full output as a .txt file attachment (for one programme ONLY). Otherwise, there is no way to verify your report or provide any assistance. All we can tell from the information provided is that get_iplayer received some garbage data, but we need an example from you to test.
Hi there ,
Sorry about the lack of information . Actually , I've tried to download several TV programmes but always without success. In any case , I'm attaching the output for a randomly selected iplayer programme which failed to download using the pid method .
Thanks a lot.
output_sample_error_pid.txt
Ok. Firstly the command you are using will not work as it is. You need to specify a modes option to use. In your case it would be something like
get_iplayer --modes=flashstd --pid=b0687919
The second problem is the fact that for some reason you can't get the PID metadata so get_iplayer cannot actually trigger the download.
Even using your original command I get told which modes I can try for that programme to make it work
get_iplayer Output:
Matches:
883: Pound Shop Wars: Series 2 - Forty New Shops, BBC One Cambridgeshire, , d
efault
INFO: 1 Matching Programmes
INFO: Checking existence of default version
INFO: No specified modes () available for this programme with version 'default'
INFO: Try using --modes=flashhd,flashhigh,flashlow,flashstd,flashvhigh,hlshd,hls
high,hlslow,hlsstd,hlsvhigh,subtitles
Are you in the UK?
@user-1013: Thanks. Unfortunately, I can't reproduce your problem. If you have curl (or wget) and know how to use it, download
http://www.bbc.co.uk/programmes/b0687919.xml to a .txt file and post it as an attachment. If you don't, load that URL in a browser, save it as plain text to a .txt file and post it as an attachment. You're obviously getting something different from that URL than I am.
@user-585: I hate to tell you, but something appears to be wrong with your configuration.
--modes is absolutely not required (there is a built-in default). Check your user options file for an empty
modes value.
Thanks user-2.
Options file only has an expiry value stored in it.
@user-585: try get_iplayer --show-options and see if modes or tvmode is set. If not, then I'm all out of clues.
Thanks to both of you .
@user-585: I tried your suggestion of making the mode explicit as in
Code:
get_iplayer --modes=flashstd --pid=b0687919
but to no avail .
@user-2: I can't seem to find the user options file . Have searched in the get_iplayer installation (on Windows 10) .
I am attaching two text files :
1. the wget xml file from
http://www.bbc.co.uk/programmes/b0687919.xml (I have never used wget so hope this is what you needed)
2. the output from the
Code:
get_iplayer --show-options
command .
Thanks .
b0687919.xml.txt
show_options_output.txt
Hi I'm seeing the same problem on a Windows 10 system, it was working fine with get_iplayer following upgrade from Windows 7, but I then did a clean install of Windows 10 and reinstalled get_iplayer from the installer.
Started getting WARNING: Could not parse programme metadata from
http://www.bbc.co.uk/programmes/b03mpphy.xml type errors.
If I run get_iplayer as Administrator then I don't get the error- is this some sort of file permissions problem?
I've attached debug output for successful (Admin) and unsuccessful (user) output for the command:
get_iplayer --debug --info "top of the pops"
Any suggestions as to what has gone wrong?
Thanks
debug_no_get_xml_user.txt
debug_get_xml_admin.txt
@user-1013: Thanks for the xml output, which looks OK. Check if the situation described by @user-763 applies to you (installed get_iplayer as administrator but use it as non-administrator).
@user-763: Thanks for the additional input. It's not impossible that permissions might be the cause, but there could be other causes. The behaviour suggests your non-admin user somehow can't load the DLL containing the XML parser (libexpat-1_.dll in get_iplayer installation directory). The install dir permissions must be OK since you can run get_iplayer and perl, but to be safe you can check the permissions on the DLL files in that directory. They should just inherit the directory permissions, though. It's also possible that for some reason the XML parser DLL can't access one or more system DLLs (it doesn't have any other dependencies). And I suppose anti-virus could be at fault somehow, but that is iffy. Whatever the reason, I can't reproduce the problem on a clean Win 10 system, though there is no way to know if we are testing like for like.
At this point, all I can suggest is to make a small change to the get_iplayer.pl script in your installation directory (make a backup of existing script first), if a) you're comfortable editing text files; b) you know how to launch applications as administrator.
Find this line:
main::logger "WARNING: Could not parse programme metadata from $url\n";
And change it to:
main::logger "WARNING: Could not parse programme metadata from $url ($@)\n";
That will print the error message produced by Perl - there may be something instructive in there. DON'T edit the file in Notepad. Use Notepad++ or another proper text editor. You will need to run the text editor as administrator to edit the file properly.
An additional note: You should install get_iplayer while logged in with the user account you are going to employ for regular use. You can temporarily put a non-admin account in the Administrators group to get the installation done. Most users don't notice, but there are some flaws in the installer that cause problems on multi-user systems.
@user-2 many thanks for your reply.
The patched script gives this output:
WARNING: Could not parse programme metadata from
http://www.bbc.co.uk/programmes/b03mpphy.xml (Can't load 'C:/Program Files (x86)/get_iplayer/lib/auto/XML/LibXML/LibXML.dll' for module XML::LibXML: load_file:The specified module could not be found at DynaLoader.pm line 190.
at XML/LibXML.pm line 156.
BEGIN failed--compilation aborted at XML/LibXML.pm line 156.
Compilation failed in require at XML/LibXML/SAX.pm line 19.
BEGIN failed--compilation aborted at XML/LibXML/SAX.pm line 19.
Compilation failed in require at (eval 66) line 1.
I confess I'm at a loss with this one, the file is there and all permissions are normal (compared it to the previous working version-always keep a backup!)
The system is single user with Adminstrator rights, the installation completes normally (done it twice now), everything else works normally -Iplayer via a browser etc. I've completely deinstalled (not just disabled) my antivirus/firewall (Eset Smart Security) the only way this runs correctly is if I launch a command window (run as administrator) and run get_iplayer from the elevated command window.
I'd previously tested get_iplayer as a clean install on a Windows Insider build on the same machine to check compatibility before migrating with no issues, it also worked fine after the Windows 7 to Windows 10 migration, so I'm not surprised that you can't reproduce the problem.
Any further input welcome!
Further update, created new user on system, completely uninstalled get_iplayer (deleted all directories after uninstall). Reinstalled get_iplayer as new user- result exactly the same problem! I can run get_iplayer from elevated command prompt (run as Administrator) but using a normal command prompt it fails with the same error as before.
It is beginning to look like it's time for the big reset on this build.....
Finally fixed it!
I had to associate .dll file extension with perl.exe in the get_iplayer directory.
It then worked from non Administrator command window.
The downside was that all .dll files on the system were associated with perl.exe.
Cleared that by editing the registry entries in [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dll]
Even though the .dll were no longer associated with perl.exe get_iplayer now functions normally.
Weird eh?
I've no idea whether this has any bearing on the OP problem, apologies for hijacking the thread and many thanks to @user-2 for the debug info.
Weird is the word. I don't know why perl.exe wouldn't have been able to load DLLs. It obviously doesn't happen on most Windows systems, so none of this made sense to me. A couple of additional notes - To correct my mistake: LibXML.dll loads the libxml2 parser (libxml2-2_.dll in install dir). Also, an issue with LibXML.dll failing to load has been reported before (with no resolution recorded), so it's not necessarily unique to Windows 10.
@user-763: Thanks for putting me on the track for a solution to the problem . In fact , in my case , get_iplayer was installed under an account with full Administrator rights . So what I had to do was to open an elevated command prompt window to run get_iplayer - and it worked ! (I used the CONTROL+SHIFT+ENTER shortcut key to launch the elevated command prompt from the search box) .
So I think the source of the problem may be Window 10's insistence that scripts run on an elevated command prompt ?
@user-2: thanks for all your help
@user-1013 - I don't believe that Windows 10 HAS an insistence on running scripts from elevated command windows.
What you are seeing is not "normal" behavior for get_iplayer and in fact you won't be able to run things like the Web PVR manager successfully unless you can get the script to execute successfully from a normal user mode command window.
As user-2 has stated he is running with no problems on a clean install of Windows 10, I was running quite happily on a migrated Windows 10 install and I have another migrated (Windows 7 to Windows 10) system that is also running get_iplayer without any issues.
I will shortly be doing a clean install on that migrated system so I will be interested to see if I encounter the same problem again.
As a matter of interest what version of Windows 10 are you running? (Home, Pro, x32 or x64) and was it migrated or a clean install?
I had the issue with a clean install of Windows 10 Home x64 UK English iso downloaded from Microsoft using the media creation tool.
@user-763: I am running Windows 10 Pro x64 . Have never used the PVR manager but will look into it . Mine was an upgrade from Windows 8.2 Thanks .
@user-763 how did you associate .dlls with perl.exe? Just tell windows to open dlls with perl.exe?
Associating with .dlls with perl.exe made no difference to webpvr for me...should I have expected it to?
OK, so, getting exactly the same problem as the OP.
Let my machine move to Win10, expecting to use WebPVR still, but no joy, tried the dll association trick - did nothing (as far as I can see) but command line (e.g. get_iplayer --pid=b0687919 ) works fine from admin cmd prompt...
Any chance we'll get webPVR working again, or do I need to learn command line get_iplayer, again?
Cheers
Argon0