flypig.co.uk

GetIPlay

A totally unofficial UI for get_iplayer, the unofficial tool for accessing BBC iPlayer TV and radio programmes. GetiPlay is built using QT for Sailfish OS smartphones.

As of version 0.3-3 it should work without the need to install any separate packages, but may not work outside the UK. It's so far only been tested on an Xperia X. Please share your experiences in the comments.

Install direct to your phone via OpenRepos.

The source is available on GitHub.

Neither BBC iPlayer nor get_iplayer have any involvement with this. Programmes should only be downloaded in accordance with copyright etc. Be aware before downloading on a limited data plan that that some programes (especially videos) have quite large filesizes.

Scroll down for posts and downloads about GetiPlay, the unofficial Sailfish OS app for accessing all things BBC iPlayer.

Getiplay

10 most recent items

23 Jul 2023 : Public Service Unbroadcasting #
Benefits come from the strangest of places. When the BBC withdrew its open radio streaming services at the start of the month I felt pretty frustrated. All the indicators suggested this was a great move for the BBC, not so great for listeners like me. Withdrawing MP3 streams means users have been forced to move to the BBC Sounds app or website if they want to listen to live radio online. The BBC gets one fewer service to maintain, plus the ability to better track listening habits, advertise podcasts and other means of user manipulation.
 
BBC Sounds Android app, website and the Sailfish OS Received app

This is an especially big hit for me, because when it comes to Sailfish OS — the smartphone operating system I use in preference to iOS or Android for reasons of privacy and control — there is no official native BBC Sounds app. I can run it using App Support, but what I really want is to listen to the radio through one of my preferred, native, open source apps (such as Received). I've been happily doing so for a decade, and while I accept the BBC is entitled to make its content available (or not) in whatever way it wants, it's frustrating to have a perfectly good option taken away.

So where's the upside? It's counterintuitive, but not listening to the radio turns out to be a really good thing. Since dropping the service my mornings have become an oasis of calm. They're no longer filled with politicians, pundits and presenters verbally sparing with one another. I don't have to suffer the banality of the sports coverage (made worse by the lack of any actual live sports in the mornings). The treacly vacuity of Thought for the Day is blissfully absent from my life.

It was during the pandemic that my obsession with the radio really embedded. Like everyone else I was desperate to know whether we were going to survive the next 24 hours. Stuck in a small apartment on my own it became an important proxy for real human interaction.

Happily that time is over, both the pandemic and the obsessive listening. I now sit quietly, listening to the birds sing, the leaves rustling in the breeze, the occasional propeller plane humming overhead. It's soothing. My anxiety is reduced. And I'm now certain this BBC-enforced calm is a positive change after all.

Having said all this, I've not stopped listening to BBC Radio completely: hapilly all BBC radio content is still available using my own GetiPlay app. This doesn't support live streaming though, so it means I have to actively choose to listen, rather than blithely surrounding myself with whatever happens to be on.
Comment
12 Sep 2022 : GetiPlay 1.1-1 released #
Version 1.1-1 of GetiPlay is now available. The latest version brings the latest get_iplayer 3.30, allows TV and Radio types (National, Local, etc.) to be set independently from one another, and applies a bunch of compatibility changes (Sandboxing, Sharing, Amber Mpris, Pickers). The source is on GitHub and binaries are available on OpenRepos.
4 Jul 2021 : GetiPlay 1.0-1 released #
A new version of GetiPlay, my app for accessing BBC radio and TV programmes on Sailfish OS, is now available. This is an exciting jump to version 1.0, which doesn't really mean anything except that it now seems pretty stable. But I have made some big internal changes. Most notably, this new version updates the underlying get_iplayer from 3.22 to 3.27. It drops the internal ffmpeg for the OS-supplied version. It also introduces lots of new build steps, so that the get_iplayer Perl dependences, and the internal AtomicParsley utility, can be built automatically. Previously I had to do this manually, which was a weekend of work for three platforms. Now it's just a few hours of work occupying my laptop rather than me. The source is available on GitHub and binaries are available on OpenRepos.
15 Sep 2019 : Sailfish app updates - Scintillon and GetiPlay #
Not just one but two new versions of my Sailfish apps are now available for download. GetiPlay has been updated to version 0.9 and now uses the latest ffmpeg and AtomicParsley utilities under the hood, which will hopefully lead to better audio and video rendering. There's also now an i486 version available for the first time. Scintillon has also seen an update to version 0.3. This latest version has Italian translations provided by the brilliant Francesco Vaccaro of Jolla-IT fame. Thanks Francesco!

 

10 Sep 2019 : GetiPlay 0.8-1 released #

Version 0.8-1 of GetiPlay is now available, refreshed with the latest version 3.22 of the amazing get_iplayer and updated perl modules. After some recent glitches, this will now work again with the iPlayer catch-up service for downloading BBC TV and radio programmes to your Sailfish OS device (probably UK-only I'm afraid). Install the binary to your phone from OpenRepos, or get the source from GitHub.

 

24 Mar 2019 : GetiPlay 0.7-1 released #
Here's the changelog for the just-released version 0.7-1 of GetiPlay. More details below, from OpenRepos or github.

Sun Mar 24 2019 David Llewellyn-Jones <david@flypig.co.uk> 0.7-1
  1. Correct iterator errors when deleting media files and items from queue.
  2. Correctly trim logfile and prevent UI performance degradation over time.
  3. Correct an incorrect RPM configuration.
  4. Remove cyclic dependences in QML.
  5. Fix various other QML errors.
  6. Add scroll animation when clicking on tab to jump to the top of the page.
  7. Allow control using the lockscreen media (MPRIS) controls.
  8. Improve the button layout on the queue item info screen.
Comment
24 Mar 2019 : GetiPlay 0.7-1 released #
I've just rleleased the latest version of GetiPlay (v0.7-1), an unofficial iPlayer app for Sailfish OS that lets you download and watch BBC TV and radio programmes. More details on the GetiPlay page, install the binary from OpenRepos, or get the MIT-licensed source code from github.
Comment
29 Jun 2018 : Going QML-Live #

In my spare time I've been developing a QT app called GetiPlay. It's a simple app that allows you to download audio and video from BBC iPlayer, for use on Sailfish OS phones. The traditional approach on Linux devices would be to use get_iplayer in a console, but for all of the progress that's been made on mobile devices in the last decade, console use still sucks. Given I spend so much time listening to or watching BBC content, slapping a simple UI over the command line get_iplayer was an obvious thing to do.

The app has been developing nicely, using the QT Creator for C++ and the UI written in QML. Historically I've not been a fan of QML, but as I grow more familiar with it, it's been growing on me. For all of the things that I find weird about it, it really does give great performance and helps build a consistent UI, as well as promoting loose coupling between the UI and underlying functional logic.

A big downside to QML is that there's no preview, so the development process follows a consistent cycle: adjust code, build code, deploy code, test, repeat. The build and deploy steps are loooong. This impacts things in three serious ways: it makes development slow, it makes me sleepy, and it incentivises against making minor tweaks or experimentation.

Is It Worth the Time?
 

Nevertheless, there's always a trade-off between configuring and learning new technologies, and just getting things done using those you're already using. The ever-relevant XKCD has more than one pertinent comics covering this topic.

 
Automation

The UI for GetiPlay is straightforward, so I was quite content to use this lengthy, but (crucially) working approach until yesterday. What prompted me to change was a feature request that needed some more subtle UI work, with animated transitions between elements that I knew would take a couple of hundred cycles round that development loop to get right. Doing the maths using Randall Munroe's automation matrix, I needed to find a more efficient approach.

So this morning I started out using QML Live. This is a pretty simple tool with an unnecessarily bulky UI that nevertheless does a great job of making the QML design approach more efficient. You build and run the app as usual, then any QML changes are directly copied over to the device (or emulator) and appear in the app immediately. Previously a build cycle took between 40 and 100 seconds. Now it's too quick to notice: less than a second.

QT Creator IDE and QML-Live

Using a quick back of the envelope calculation, I'll perform a UI tweak that would previously have required a rebuilt around 20 times a day, but probably only every-other day, so let's say 10 times a day for the next six months. So (10 * 365 * 0.5) / (60 * 24) = 1.27 days I can save. I spent about half a day configuring everything properly, so that leaves a saving of 0.77 days, or 18 hours. Not bad!

QML-Live certainly isn't perfect, but it's simple, neat and has made me far more likely to try out interesting and experimental UI designs. Time configuring it is time well spent, even if that extra 18 hours is just about the same amount of time I wasted dithering over the last two days!

Comment
29 Jun 2018 : GetiPlay v0.6-1 released #
Another exciting GetiPlay update. This new version has improved aesthetics, the ability to directly download a programme using the PID or URL from the BBC website, configurable skip/replay buttons in the media player. It also fixes the issues experienced on Jolla One and Jolla C devices refreshing with multiple connections by allowing the number to be limited to one or two (in which case, there don't seem to be any more failures generated). Get it from the - usual - places.
20 Jun 2018 : GetiPlay v0.5-2 released #
A few more updates to GetiPlay, including a bundle of bugfixes; getting it working across multiple devices (Jolla One, Jolla C, Xperia X); using different graphics resolutions for different devices; persistent tab selection across executions. Plus, did I mention bugfixes? As always, get it from the - usual - places.

Download

  • GetiPlay GetiPlay
    Version 1.1-1 (12 Sep 2022) for SailfishOS.
    GetiPlay is a simple user interface for the get_iplayer command line utility for Sailfish OS devices. It allows TV and radio programmes to be downloaded from the BBC iPlayer listings.
    Download: binary, source, screenshot.

Comments

Uncover Disqus comments