GetiPlay

Rating: 
4.2
Your rating: None Average: 4.2 (5 votes)

A totally unofficial UI for get_iplayer, the unofficial tool for accessing BBC iPlayer TV and radio programmes.

This version should work without the need to install any separate packages, but may not work outside the UK. It's been tested on a Jolla One, Jolla C and Xperia X. For some reason it doesn't always download the full programme index on One and C, but I'm working on fixing this. Please share your experiences in the comments.

GetiPlay on GitHub: https://github.com/llewelld/getiplay

Neither BBC iPlayer nor get_iplayer have any involvement with this. Programmes should only be downloaded in accordance with copyright etc.

Note: Since version 0.2-6 the executable has changed name to match the Jolla Harbour guidelines (from getiplay to harbour-getiplay). To use it you'll therefore need to uninstall any older version before installing the latest.

Screenshots: 
Changelog: 

Wed Jun 20 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.5-2
- Bugfix to use correct graphics on queue placeholder
- Bugfix to display vesion number on About page

Wed Jun 20 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.5-1
- Add option to list all programmes, combining national, regional and local.
- Improve placeholder help text
- Make currently selected tab persistent across app execution
- Support different resolution graphics for different devices
- Ensure UI works across devices (Jolla One, Jolla C, Xperia X)

Wed Jun 13 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.4-2
- Add missing dependencies (thanks to gaelic for flagging up)

Tue Jun 12 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.4-1
- Allow videos to be played within the app
- Allow audio to be played within the app
- Add media controls to app cover

Sun Jun 10 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.3-3
- Add perl-Digest-SHA as dependency to allow refresh to work

Sat Jun 09 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.3-2
- Add XML::SAX::Base perl libs to allow get_iplayer to work

Wed Jun 06 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.3-1
- Completely reworked tab-based UI
- Improved get_iplayer control (following input from dinkypumpkin)
- Refresh perfomed in the background
- Programmes downloaded in a queue, rather than individually
- Files tracked to ensure queue matches filesystem
- All text now translatable
- Cover page to show queue information on the home screen
- Programme details are collected and can be previewed
- Unified log interface, allowing log to be shared
- Settings page to set storage locations, proxy and programme type
- Updated About page showing details of get_iplayer

Wed May 16 2018 David Llewellyn-Jones <david@flypig.co.uk> 0.2-6
- Update to get-iplayer 3.14
- Store downloaded files in Music/Video directories as appropriate
- Output full get-iplayer command in log window
- Perl dependencies packaged with application
- Include AtomicParsley runtime dependency for get-iplayer
- Improve version number macros
- Ensure data storage follows Harbour guidelines
- Include additional program icon sizes

 

Comments

DaveRo's picture

Thanks for building this. Installs and runs fine on Jolla C running SFOS 2.2.0.29.

I'm very familiar with get_iplayer but have never used a GUI with it. I normally run a script which downloads specified radio programs by name each week, and I also download individual programmes, both radio and TV, by pid from the BBC program pages. The GUI seems to work fine, but I have a couple of requests.

1 I regularly download both national and local radio programs. So I set the  listing type to 'national' and found and downloaded Music Planet on Radio 3. To get Folkscene on Radio Merseyside I had to set it 'local' and re-refresh - which seemed to clear the national programmes. Why do you do it that way? Can you add a setting 'all'?

2 Can you add a 'download by pid' feature? I suspect it would need to be within the radio or tv page so you can request type=radio pid=b0b5wkcq. No need to cope with series pids, etc.

Frankly I'm very happy just having the get_iplayer CLI. And you've get a job for yourself just updating GiP after the BBC's frequent changes!

 

flypig's picture

Thanks for your comment @DaveRo. Originally the listings were set to 'all', but I had to restrict it to national/regional/local because the number of programmes was causing performance issues. I'll try adding back in 'all' again and test the results. If it's usable, I'll release a version with this.

I could add the 'download by pid' feature, but I don't quite follow your usecase. I'll send you a DM so we can discuss it further, to help me figure out what it is you really need here.

It's amazing how well the get_iplayer team (mostly dinkypumpkin I believe) keep on top of the BBC's changes. Because it's the same get_iplayer CLI I'm using in the background, I'm basically benefitting from all of their work, so I just need to update the CLI backend when things change.

pagis's picture

Hello, thanks for the reply, from storeman it does not install, i had to download the rpm manually and use pkcon install-local. It failed with the message i sent earlier.

flypig's picture

Thanks @pagis for your help.

For the benefit of others reading this, @pagis ran some tests and it looks like there were two problems here.

1. Storeman was installing the wrong version, caused by me having changed the name of the package. This should now be resolved.

2. The package list needed updating in order to find the right dependencies.

If you have similar issues, please refresh your cache (Refresh menu option in Storeman), and if you still experience problems, please let me know.

flypig's picture

Thanks for flagging this up. I've sent you a DM to ask for a bit more detail so that we can try to solve the issue.

pagis's picture

Hello, 0.4-2 still requires perl-Digest-SHA but this requirement cannot be provided

flypig's picture

Hi @pagis. perl-Digest-SHA is now a dependency of the harbour-geitplay RPM and is in the official Jolla repo, so it should get installed automatically when you install the app. Did you experience something different?

gaelic's picture

Missing deps for me:

Perl-digest-SHA
rpmlib <= 4.9.0-1

flypig's picture

Thanks for helping me fix this @gaelic. The latest version 0.4-2, has the extra dependencies needed.

flypig's picture

Thanks for letting me know. I've sent you a DM for a bit more info and I hope we can get to the bottom of it. Here's the issue on github.

gaelic's picture

Hi. Working great now after the update. Cheers.

flypig's picture

Thank you, that's excellent to hear. I've noticed some minor issues with 0.5-2, so there'll be an update soon. If you experience any further problems yourself, please let me know and thanks again for all of your help.

flypig's picture

Versions prior to 0.3-3 had dependency issues which prevented the app properly working on many phones. From version 0.3-3 onwards this should now be fixed (but please say otherwise).

Feathers_McGraw's picture

Thanks for your continued efforts on this, it's going to be a very useful app when complete, and I like the interface! When I try to download a program, I get he following output:

http://m.imgur.com/sFG8IHa

Should I attempt to manually install that perl module, or are the metadata and PID errors two separate things?

I have a UK IP address BTW.

To get the screenshot above I had to search for the program again and click on it, would it be possible to only return to the main screen if get_iplayer returns 0, and leave the info on the screen if it returns an error code?

flypig's picture

Thanks for the feedback. I'm sorry the download still isn't working; I'm pretty sure it's just the missing perl module that's causing both errors.

Unfortunately XML::Simple isn't in the Sailfish repos, and I've not yet figured out how to install it locally alongside the GetiPlayer binary. You can certainly manually install it though. Something like this:

devel-su
cpan App::cpanminus
cpan XML::Simple

should do the trick. However, once you've done this you may not then be able to uninstall XML::Simple easily. Given this, I'd only recommend doing this if you really know what you're doing (which I do not!). I'm really hoping to get a properly working version out soon.

Concerning your suggestion to only leave the screen on a successful download, that's a nice idea. I'll give it a go. In the meantime, it may help to know that the log output is shown on every info page (so you can skip the step where you search for the same programme; just click on any programme to see the log).

Feathers_McGraw's picture

So I've created an RPM for perl-XML-Simple and installed it, now I don't get that error any more. Feel free to add that to your repo, if you specify it as a dependency of your app it should then be auto-installed when people download GetiPlay.

Now I get a different error, which I also get on desktop when I download manually without specifiying a mode (default used to work, but doesn't any more).

I don't think it's a GetiPlay bug. Any chance of adding settings to specify a default mode?

Keen to work with you on this, I think it would be great to have a fully functioning iPlayer app on Sailfish!

flypig's picture

Thanks for the great help. I've been so busy at work I only just got back to looking at this. Thank you for the perl-XML-Simple RPM. I've transferred it to my repo and added it as a dependency. It seems to be working well when I install it locally, so I'm very grateful (I know nothing about Perl and it's been a thorn in my side for over a year now). Once it's filtered through the OpenRepos system I'll check it properly.

I also now set the mode explicitly. That seems to work, but I much prefer your idea to have a settings screen. I'd be keen to work with you too. I'm happy to take a pull request on the repo, or any other approach you prefer.

Feathers_McGraw's picture

I don't think I got a notification email for this or I would have replied sooner, sorry! I know the feeling, it's difficult to find the time to work on things like this. I'm interested in working on it with you, time permitting.

I packaged the perl module (and many others) using cpanspec, which has been really useful. It's not too difficult, but quite time consuming - you can download cpanspec using cpan, but before you build an rpm for a perl module you need to buid & install rpms for all of its build dependencies (they have to be installed using a package manager before the module will build properly, not just installed using cpan).

perl-XML-Simple was relatively straightforward, but while building a package for cpanspec itself I ran into a couple of packages that won't build properly (out of about 50 that built just fine! so annoying). I'll have another crack at it tonight, I'd like to get that done before I start on anything else.

I might write up a guide for packaging perl modules too, in which case I'll post it here.

Sam

flypig's picture

Sorry for the attrocious lack of instructions. You need to refresh the programme list first (from the pulley menu). If clicking on the refresh 'Go' button takes you straight back to the (empty) programme list, it's because get_iplayer failed for some reason in the background (in which case, this would be good to know).

Markkyboy's picture

Thanks for replying, I tried your suggestion, but am still returned to an empty programme list.

If I read you right, we need to refresh the list before typing something in or after typing something in (either way, I'm still returned to an empty prog list).

flypig's picture

I just updated the program so it shows a log file when refreshing. It also stores the latest log at /home/nemo/Music/GetiPlay/log.txt

If you could take a look at the output and let me know if it's complaining about anything that would be a big help.

Markkyboy's picture

Sorry for late reply, work getting in the way of having fun!

Output to /home/nemo/Music/GetiPlay/log.txt reads;

Process
/usr/share/GetiPlay/bin/get_iplayer
Finished with code 2
Finished with code 2

( I did try to search twice, probably why the last message is repeated).

Hope this help :)

 

flypig's picture

Thanks for this: very helpful. I'm not sure I've 100% got the reason, but I think it was some missing Perl dependencies. At least I hope so. It's awkward for me to test because removing Perl modules apparently isn't straightforward!

Anyway, I've added what I think was missing to the RPM, which hopefully will move things forwards. If you could give this new version a go, I'd appreciate it.

Markkyboy's picture

Hi, tried the 3rd RPM, the result is still the same I'm afraid. clicking refresh, then go, returns me almost immediately, back to an empty programme list.

flypig's picture

Sorry :( I've been trying to figure this out all afternoon but without success yet.

If you have access to a terminal on your phone (or can SSH in), it would be helpful if you could post the output from the following:

perl -e 'use LWP;print "installed\n"'
Markkyboy's picture

[nemo@Jolla ~]$ perl -e 'use LWP;print "installed\n"'
Can't locate URI.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at (eval 1) line 2.
Compilation failed in require at /usr/share/perl5/vendor_perl/HTTP/Request.pm line 3.
Compilation failed in require at /usr/share/perl5/vendor_perl/LWP/UserAgent.pm line 10.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/LWP/UserAgent.pm line 10.
Compilation failed in require at /usr/share/perl5/vendor_perl/LWP.pm line 7.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
[nemo@Jolla ~]$

flypig's picture

Yep, you've got it. You need to refresh first. The search field just filters the local list once there is one.

I'll update the programme now to include some logging to make it easier to figure out what's going wrong. It's almost certainly some mistake I've made that's preventing get_iplayer running correctly in the background.

Markkyboy's picture

hi flypig, app installed okay, but search doesn't appear to actually search at all. 'No items found' is always displayed. Any ideas?