Skip to content
The goal of Get iPlayer Automator is to allow iTunes and your Mac to become the hub for your British Television experience regardless of where in the world you are. Currently, Get iPlayer Automator allows you to download and watch BBC and ITV shows on your Mac. Series-Link/PVR functionality ensures you will never miss your favourite shows. Progr…
Perl Python Objective-C Swift Perl 6 HTML Other
Branch: master
Clone or download
Pull request Compare This branch is 278 commits ahead, 3 commits behind GetiPlayerAutomator:master.
Latest commit c49344b Nov 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github More formatting. May 12, 2017
Base.lproj "get lower quality audio" is no longer supported in get_iplayer, so r… Nov 30, 2019
Binaries Latest (or, more recent) youtube-dl binary. Sep 15, 2019
Get iPlayer Automator.xcodeproj v1.17 release Nov 30, 2019
Get iPlayer Automator Rewriting getCurrentWebpage in Swift. On a branch because AppleEvents… Aug 12, 2018
Get iPlayer Programme Minor code cleanup -- trailing closures in swift are easier to read. Mar 30, 2019
_includes Restore old naming, and point to new appcast location. Oct 7, 2017
_layouts More website updating. Oct 7, 2017
en.lproj Minor cleanup to get ready for Xcode 10.2. Jan 28, 2019
gh-pages Move the includes folder? Oct 7, 2017
.gitignore Reorganized the project for automatic building. Will try to use githu… Oct 7, 2017
ASDownloadShows.h Fixed some build-and-analyze issues. Also, using Xcode 9 now. Jun 11, 2017
ASDownloadShows.m Fixed some build-and-analyze issues. Also, using Xcode 9 now. Jun 11, 2017
ActivityWindow.tiff Initial Import - RC1 Aug 25, 2009
ActivityWindow@2X.tiff Add retina graphic for show log. May 12, 2013
AppController.h Merge. Aug 27, 2018
AppController.m "get lower quality audio" is no longer supported in get_iplayer, so r… Nov 30, 2019
BBCDownload.h Added option for forcing HLS-format BBC downloads. Dec 31, 2017
BBCDownload.m "get lower quality audio" is no longer supported in get_iplayer, so r… Nov 30, 2019
Cartfile #255: v1.16, with get_iplayer 3.22 Aug 20, 2019
Cartfile.resolved #255: v1.16, with get_iplayer 3.22 Aug 20, 2019
Chrome.h - Updated to get_iplayer 3.0.1 May 8, 2017
Chrome.swift Add new flag indicating we want to use appleevents for Safari, iTunes… Aug 30, 2018
ChromeScripting.swift Rewriting getCurrentWebpage in Swift. On a branch because AppleEvents… Aug 12, 2018
Credits.html Merge branch 'master' into MojaveWork Aug 27, 2018
Download.h Cleaned up some unused files and code. Mar 23, 2019
Download.m Cleaned up some unused files and code. Mar 23, 2019
DownloadHistoryController.h Add logging of download history errors. Sep 21, 2011
DownloadHistoryController.m Code cleanup: Use standard method for getting application support dir… Jan 19, 2019
DownloadHistoryEntry.h - Updated to get_iplayer 3.0.1 May 8, 2017
DownloadHistoryEntry.m - Updated to get_iplayer 3.0.1 May 8, 2017
EmptyToStringTransformer.h
EmptyToStringTransformer.m - Updated to get_iplayer 3.0.1 May 8, 2017
ExportOptions.plist Reorganized the project for automatic building. Will try to use githu… Oct 7, 2017
ExtendedShowInformationController.h Fixed parsing and display of modes in extended info Aug 1, 2016
ExtendedShowInformationController.m Safari Extension work Aug 25, 2018
Features.rtf Update feature listing. Jul 7, 2014
GTMNSString+HTML.h - Updated to get_iplayer 3.0.1 May 8, 2017
GTMNSString+HTML.m - Updated to get_iplayer 3.0.1 May 8, 2017
Get iPlayer Automator-Bridging-Header.h Cleaned up some unused files and code. Mar 23, 2019
GetCaminoURL.applescript Initial Import - RC1 Aug 25, 2009
GetCurrentWebpage.swift Support Safari Tech Preview if available Mar 3, 2019
GetFireFoxURL.applescript Workaround for Firefox Applescript brokenness... Dec 22, 2009
GetITVListings.swift Reset the episodes when caching ITV programs (memory leak when cachin… Mar 31, 2019
GetOperaURL.applescript Initial Import - RC1 Aug 25, 2009
Get_iPlayer GUI_Prefix.pch Initial Import - RC1 Aug 25, 2009
GetiPlayerArguments.h Clean up PR GetiPlayerAutomator#594 Oct 11, 2016
GetiPlayerArguments.m - Got rid of JRFeedbackController and library references it used Jun 15, 2018
GetiPlayerAutomator.sdef Add basic applescript support. Supports start command. Applescript: d… Dec 25, 2013
GetiPlayerProxy.h Got rid of ASIHTTPRequest altogether. Nov 25, 2017
GetiPlayerProxy.m Code cleanup. More Mojave migration prep work. Aug 27, 2018
GiASearch.h - Updated to get_iplayer 3.0.1 May 8, 2017
GiASearch.m Trying MOJO_INSECURE for addressing 500/certificate errors Nov 29, 2019
HTTPProxy.h General code cleanup: Fixed use of properties and old-style Obj-C cod… Jan 15, 2018
HTTPProxy.m - Updated to get_iplayer 3.0.1 May 8, 2017
HTTPRequest.h Convert to ARC except for ASIHTTPRequest library. Will need to move t… Jun 13, 2013
ITVDownload.swift #241: Send proxy username and password to youtube-dl. Apr 25, 2019
Info.plist Minor version bump Nov 30, 2019
Interface2.xib Regenerated iTunes header for latest version. Oct 30, 2017
LICENSE.txt Initial Import - RC1 Aug 25, 2009
LogController.h Rewrote the log window so it behaves like a console -- if the window … Nov 25, 2017
LogController.m Code cleanup: Use standard method for getting application support dir… Jan 19, 2019
NPHistoryWindow.xib Xcode 8.2.1 update Jan 7, 2017
NPHistoryWindowController.h Continuing rewrite to Swift 4. Mar 17, 2018
NPHistoryWindowController.m Updated BBC TV/Radio regional channels for filtering in the New Progr… Mar 31, 2019
NSFileManager+DirectoryLocations.h Use common method for getting application support directory instead o… Dec 30, 2018
NSFileManager+DirectoryLocations.m Re-indented code because it was annoying me. Dec 30, 2018
NSScanner+Swift.swift Continuing rewrite to Swift 4. Mar 17, 2018
NSString+HTML.h
NSString+HTML.m - Updated to get_iplayer 3.0.1 May 8, 2017
NewProgrammeHistory.swift --subs-embed no longer implies --subtitles (#219) Jan 4, 2019
NilToStringTransformer.h - Updated to get_iplayer 3.0.1 May 8, 2017
NilToStringTransformer.m - Updated to get_iplayer 3.0.1 May 8, 2017
Play.tiff Initial Import - RC1 Aug 25, 2009
Programme.h Better support for podcasts in Catalina. Oct 9, 2019
Programme.m Trying MOJO_INSECURE for addressing 500/certificate errors Nov 29, 2019
ProgrammeData.swift - Convert webvtt to srt. Mar 20, 2018
ProgrammeHistoryEntry.swift Continuing rewrite to Swift 4. Mar 17, 2018
README.md Release note update Oct 9, 2019
RSRTVArrayController.h - Updated to get_iplayer 3.0.1 May 8, 2017
RSRTVArrayController.m - Updated to get_iplayer 3.0.1 May 8, 2017
RadioFormat.h Convert to ARC except for ASIHTTPRequest library. Will need to move t… Jun 13, 2013
RadioFormat.m
ReasonForFailure.h Convert to ARC except for ASIHTTPRequest library. Will need to move t… Jun 13, 2013
ReasonForFailure.m - Updated to get_iplayer 3.0.1 May 8, 2017
ReasonsForFailure.plist Added additional check for programmes only available in signed or aud… Aug 2, 2016
SBApplicationProtocol.swift Rewriting getCurrentWebpage in Swift. On a branch because AppleEvents… Aug 12, 2018
SBObjectProtocol.swift Rewriting getCurrentWebpage in Swift. On a branch because AppleEvents… Aug 12, 2018
Safari.h Rewriting getCurrentWebpage in Swift. On a branch because AppleEvents… Aug 12, 2018
Safari.swift Debugging Aug 24, 2018
SafariScripting.swift Rewriting getCurrentWebpage in Swift. On a branch because AppleEvents… Aug 12, 2018
SafeArchiver.h Added some defensive code to guard against corrupted/outdated archive… Jan 2, 2019
SafeArchiver.m Added some defensive code to guard against corrupted/outdated archive… Jan 2, 2019
Series.h - Updated to get_iplayer 3.0.1 May 8, 2017
Series.m #104: Fixed decoding of objects to account for the possibility of nil… Feb 27, 2018
Stop.tiff Initial Import - RC1 Aug 25, 2009
StringTrimFormatter.h Fixes for custom series-link entries Jan 2, 2014
StringTrimFormatter.m Fixes for custom series-link entries Jan 2, 2014
TVFormat.h General code cleanup: Fixed use of properties and old-style Obj-C cod… Jan 15, 2018
TVFormat.m ITV download/cache rewrite to account for new ITV show page format. Mar 19, 2018
_config.yml First pass at newer, easier to read site. Oct 7, 2017
appcast.xml Maybe they go here? Oct 7, 2017
appcast_pre.xml Maybe they go here? Oct 7, 2017
bump_build.sh Reorganized the project for automatic building. Will try to use githu… Oct 7, 2017
camstudio_record_button.png Initial Import - RC1 Aug 25, 2009
dsa_pub.pem Regenerated the public key for updating. Sep 21, 2017
get_iplayer Incorrect removal. Nov 30, 2019
iTunes.h Regenerated iTunes header for latest version. Oct 30, 2017
icon.icns Initial Import - RC1 Aug 25, 2009
main.m Initial Import - RC1 Aug 25, 2009
name_extract.liquid Maybe they go here? Oct 7, 2017
release.sh Fix release script, due to Xcode changes in how versions are stored. Oct 9, 2019
ttml2srt.py Handle trailing white space in subtitles Jul 21, 2015

README.md

What is it?

The goal of Get iPlayer Automator is to allow iTunes and your Mac to become the hub for your British Television experience regardless of where in the world you are. Get iPlayer Automator allows you to download and watch BBC and ITV shows on your Mac. Series-Link/PVR functionality ensures you will never miss your favourite shows. Programmes are fully tagged and added to iTunes automatically upon completion. It is simple and easy to use, and runs on any machine running Mac OS X 10.9 or later. And since the shows are in iTunes, it is extremely easy to transfer them to your iPod, iPhone, or Apple TV allowing you to enjoy your shows on the go or on your television.

The current release is 1.16.1. Download it here.

What if I find a bug?

Start here.

Version history

Latest release

1.16.1

Get iPlayer Automator is now ready for use on macOS Catalina (10.15)! TV programs will be added to TV.app, and radio programs will be added to Music.app. Due to a bug in macOS shows tagged as podcasts will open in Music.app but can't be played. Also, because it was ported from iOS, Podcasts.app is not scriptable and cannot accept externally created m4a files. As a result, if you use the "Tag radio programmes as podcasts" your only option right now is to use QuickTime Player.app, or turn off this checkbox and play them through Music.app. We hope this bug is fixed in a future version of macOS.

1.16

Updated to get_iplayer 3.22. See the release notes for more information. Most notably, BBC program metadata caching will work after the 19-August bbc.co.uk iPlayer web site changes.

1.15.2

Proxy server support for ITV downloads

1.15.1

Updated the channel names used for new program filtering to match what's in get_iplayer. Fixed memory leak when caching ITV programs If ITV caching fails for some reason (ITV down, bad network, etc.) app is no longer stuck. (#210)

1.15.0

Updated to get_iplayer 3.20. See the release notes for more information. If you have Safari selected as your browser for "Get Current Webpage", Safari Technology Preview.app will be checked as well, if it is running.

1.14.3

Movies shown on ITV and other one-off programs weren't being cached, and therefore not downloadable. This is fixed. (#220)

1.14.2

Fixed a regression that caused BBC subtitles to not be downloaded, due to a change in get_iplayer's subtitle command semantics. (#219) Added support for embedding subtitles in ITV downloads, already supported in youtube-dl! (#216 )

1.14.1

Preemptive fix for #218, by guarding against corrupted archives.

1.14

Happy New Year! Thanks for your continued support in 2019. Starting with this release, the minor version will now increment whenever get_iplayer is updated. The bug fix version will reflect Get iPlayer Automator-only changes. Merged in get_iplayer 3.18, which necessitated some option changes. "Get higher-quality audio" is now the default, so if you want lower-bitrate audio the option is now "Get lower quality HLS audio". If you had the old option unchecked, it is now checked in this version for consistency. The new default value for this option is unchecked. For more information see https://github.com/get-iplayer/get_iplayer/wiki/release310to319#release318 Timeout for getting ITV listings is now 30 seconds. This feature still needs some tweaking, but the application won't hang anymore if ITV Hub is unavailable, or your network connection is having problems.

1.13.19

Small fix to add support for using Get Current Webpage with BBC Sounds pages.

1.13.18

Added option for embedding subtitles into BBC videos (#192, #213) If subtitle downloading is selected, they are embedded into the converted MP4 by default. If you don't want that, and want a standalone subtitle file, uncheck the "Embed Subtitles in Download" option. This option works only for BBC shows. ITV support will be added in a future release. Made sure certificates were set for all invocations of get_iplayer. This will fix showing the extended metadata for a program.

1.13.17

Updated the root certificates used by Mozilla::CA. This should address the 500 errors when starting a BBC download. This will most likely NOT fix 403 errors if you are using a VPN outside of the UK as that is the BBC blocking your connection.

1.13.16

BBC changed their page structure for radio and TV programs, so the Get Current Webpage scraping changed slightly to handle it.

1.13.15

Updated Perl support libraries to match get_iplayer distribution Fixed: Get Current Webpage will work with Chrome if the page source can't be accessed. (#201) Minimum macOS version is now 10.10, to match get_iplayer.

1.13.14

BBC Radio show pages have a new URL format. GiA now recognizes the new URL and will parse out the program ID. (#199) Rewrote 'Get Current Webpage' functionality in Swift, and cleaned out code for non-existent BBC pages. Now,only the frontmost window and tab will be checked for an ITV or BBC program page. No more checking random open web pages. (#123) Added necessary Info.plist entries so that Get Current Webpage and adding to iTunes works on macOS Mojave again.

1.13.13

Updated to get_iplayer 3.17. No major functionality changes, but there are more clarifying messages about 403 errors while downloading. Removed Growl. All of its functionality is available in macOS 10.9, so no need to have the extra library. Made some cleanup changes that won't affect the behavior, but will get the app ready for macOS Mojave. BBC is getting more aggressive about VPN blocking! Keep that in mind before filing new bugs.

1.13.12

Picked up get_iplayer 3.16 Fixed search result parsing (#191)

1.13.11

New version of get_iplayer (3.15) Updated perl library dependencies Updated ITV caching to match new format

1.13.10

Includes newest version of youtube-dl to address #189

1.13.9

Auto-record now shows the date of broadcast for found programs. (#174) Behind-the-scenes cleanup.

1.13.8

Removed 'Ignore DASH' flag for real

1.13.7

Removed the 'Ignore DASH streams' option, as it's no longer necessary with get_iplayer fixes. The option is completely ignored now, so don't worry if you had it set. Fixed fetching of metadata when using 'Get Current Webpage' for un-cached shows. (#182)

1.13.6

Updated to latest youtube-dl (2018.06.04) Fixed handling of DASH output which separates audio and video.

1.13.5

Updated to get_iplayer 3.14. This has some implications for your downloads, as 50 FPS streams are now the default. I added a checkbox to force 25 FPS streams, which will result in a smaller download. This setting is off by default. There are now only 4 levels of download: Best, Better, Good, Worst. I did not attempt to map the old values into the new ones, so check your settings to make sure they are what you want.

1.13.4

Updated to latest youtube-dl to handle ITV errors (#168, #170) Added option to tag audio downloads as podcasts. This means that when the audio is added to iTunes, it will now appear in the Podcasts section with the series thumbnail. (#153)

1.13.3

"Force get_iplayer to download HLS" is now "Force get_iplayer to ignore DASH". This means HLS or HVF streams can be fetched. (#163, #165) Let youtube-dl determine the extension of the download. If it is FLV, use ffmpeg to copy into an MP4 instead of letting youtube-dl re-encode the video. (#161, #164) Updated PyCrypto to hopefully avoid crashes (#162) Updated youtube-dl (4/8/18 release) Verbose mode now dumps everything from youtube-dl.

1.13.2

ITV downloads now try for the best MP4 available, and if that fails, they fall back to the best available, which is FLV. The resulting download is converted to MP4 if needed. The upshot of this is that Lethal Weapon and other shows should now download even if the web page for the show on ITV Hub says 'not available on your platform.'

1.13.1

Fixed startup of youtube-dl so it can find PyCrypto, and added important file identifying the package. (#151) Fixed handling of ttml files when used as the subtitle format on ITV shows. Call ttml2srt when that happens. (#155)

1.13

Better handling of ITV shows that don't use a 3-part program ID (#150) Added PyCrypto so youtube-dl can do its own MP4 downloads. As a bonus, youtube-dl can now resume cancelled or interrupted ITV downloads! (#148)

1.12.2

ITV downloads now always use XBMC naming to avoid conflicts for downloaded shows. (#143) Better parsing of show metadata for season, episode, and episode title

1.12.1

Fixed #142: Requesting subtitles for ITV shows that don't have them stalled the download queue. Fixed #145: Fixed parsing of youtube-dl output so the duration is now available. Also added amount downloaded/duration to progress. Fixed #144(?): Added necessary perl libraries for SSL connections when caching BBC shows.

1.12.0

youtube-dl is now the engine for getting ITV shows, subtitles and thumbnails. (#132, #136) Upgraded to get_iplayer 3.13 to address BBC TV and radio cache issues (#139) Fixed NSAlerts trying to present on a non-main thread (#131) Back to "ITV Player", though at some point it needs to be named just ITV. (#135)

1.11.3

Fixed #138: ITV Cache was being corrupted due to bad inherited code. Fixed #139: Cache searching works again for BBC and ITV. NOTE: BBC Radio programs cannot be cached right now due to a change on BBC's part. This will require a change to get_iplayer.

1.11.2
  • Included an official 3.4.2 build of ffmpeg that works on OS X 10.9 and later (#133)
  • Fixed up the proxy settings for ITV and metadata downloads when using GiA’s proxy setting (#134)
  • Minor tweaks to ffmpeg arguments for compatibility with other tools.
1.11.1
  • WebVTT subtitles are now converted to SubRip via ffmpeg. (#130)
  • Used a better combination of arguments for downloading ITV streams. (#129)
1.11.0
  • Caching of ITV listings now works again. You can also select programs from a search and add them to the queue. (#121, #122, #126)
  • ITV downloads are now implemented by fetching the m3u8 playlist and handing it off to ffmpeg to stream and save the file. No more "Show not available" for ITV programs! (#95)
  • ITV subtitle files are now in WebVTT format. They are just downloaded and left alone next to the video file.
1.10.2
  • Fixed #121 - ITV shows can now be downloaded if you select Get Current Webpage with an ITV Hub show's episode page frontmost in your browser.
1.10.1
  • Fix for #118. I'm not entirely sure what has changed on ITV's end, but I can at least guard against it.
1.10.0
  • Fix for #104: restoring the queue was failing and deleting the file
  • Implemented #90: Put the last broadcast date in the search results and queue.
1.9.15
  • Fixed #110: "Use Current Webpage" should now work again for https-prefixed URLs
1.9.14
  • Updated get_iplayer to 3.12
  • Added option to force HLS format downloads for BBC. This is off by default, but if you aren't happy with the speed of DASH download and conversion, give it a try.
  • WARNING: This will likely be the last version of Get iPlayer Automator that supports macOS 10.7 or 10.8. I want to start moving parts of the application to Swift, and that requires macOS 10.9.
1.9.13
  • Fixed #88, #85: No need for a --version tag if not explicitly requested
  • Fixed #84: Restored use of tvbest, tvbetter, etc.
  • Note that if get_iplayer picks a DASH format stream (dvfhd, dvfvhigh, etc.) we have to convert it with ffmpeg's libx264 to produce a video that is playable in iTunes/Quicktime Player. Even though it uses the ultrafast preset, it will take some time, especially at HD resolution. Suggestions for speeding this up are welcome.
  • Rewrote the log window code to use a monospace font and not re-scroll the window to the bottom when trying to read messages earlier in the log.
1.9.12
  • v1.9.11 was never released.
  • #81, #80: Reverted ffmpeg to previous version (sorry about that!!). I will look into a better source for getting newer versions of ffmpeg.
1.9.10
  • Fixed #79 -- force all BBC downloads to use HLS mode.
  • Fixed #74 -- not all ITV episodes have a transmission time.
1.9.9
  • Integrated the rest of get_iplayer 3.06. In non-verbose mode, get_iplayer now generates less information about a download in progress, but Get iPlayer Automator will present what it can from the progress string. Verbose mode will report the amount of data retrieved as it did before. GiP 3.06 introduces the ability to get higher-quality (320k) audio for BBC shows. This is on by default, but can be disabled via a checkbox in the BBC section of the 'Download Formats' preferences.
  • Fixed a long-standing issue where ITV shows didn't have a release date when added to iTunes.
  • Removed the now-invalid message about attempting to open iTunes in 32-bit mode. You can get a message telling you that the show wasn't added, but usually this is because iTunes is doing something else when the download finishes, and can't respond to the AppleEvent. Workaround is to drag the file from the Finder to the iTunes library window.
1.9.8
  • Fix for BBC program caching from get_iplayer 3.06 (#70)
  • Fix for bug in earlier version where proxy host information was being set up incorrectly. (#68)
1.9.7
  • Fixed bug in synchronization of multiple ITV downloads with subtitles.
1.9.6
  • Updated the about box to point to this web site for more information.
1.9.5
  • More ITV download fixes
  • Undid the XBMC naming change
  • Self-updating is back! From this version on, you will automatically be notified of updates when they are available.
1.9.4
  • More bug fixes
1.9.3
  • Addressed some issues related to the change in ITV downloads.
1.9.2
  • Incorporated get_iplayer 3.02 -- This means the option for using the show thumbnail instead of the series thumbnail can be removed, as this is now the default behavior.
  • Fixed slow caching by including needed Perl libraries
  • Rewrote downloading of ITV program metadata to use built-in macOS networking code
  • Removed the 'provided' proxy option, as the tom-tech.com backend that it relied upon no longer exists.
1.9b6:
  • Turned on update checking. This is almost ready to go.
  • Fixed a few more places where it didn't detect the end of the download.
1.9b5:
  • Fixed lowest quality recording names.
  • Added option to retrieve 50 FPS shows, if available.
  • Fixed detecting completed download when no tagging has happened.
1.9b4:
  • Changed some framework loading options for compatibility with Gatekeeper on 10.9.
1.9b3:
  • Changed UI and options to use "Best", "Better", "Very Good", and so on for BBC TV and radio downloads. These map to the corresponding options in get_iplayer, and allow get_iplayer to pick the best available show formats.
  • The formerly alternative 'ITV quick caching' is now the default method for getting ITV listings.
  • Recordings are now saved without underscores in the names. App now uses the --whitespace option from get_iplayer.
  • Deployment target/minimum version restored to 10.7.
1.9b2:
  • Restored searching of ITV archives
  • Fixed bug with generation of Application Support folder.
1.9b1:
  • Integrated get_iplayer 3.01
You can’t perform that action at this time.