Notices: This section not yet converted to new layout. Download stats are rolling back out.

This is not the latest version of getiplayer (Install) available.

getiplayer (Install)


Package test results have failed.

Private CDN cached downloads available for licensed customers. Never experience 404 breakages again! Learn more...

This package was approved as a trusted package on 5/8/2017.

get_iplayer: BBC iPlayer Indexing Tool and PVR


  • Downloads TV and radio programmes from BBC iPlayer
  • Allows multiple programmes to be downloaded using a single command
  • Indexing of most available iPlayer catch-up programmes (not BBC Three, Red Button or iPlayer Exclusive)
  • Caching of index with automatic updating
  • Regex search on programme name
  • Regex search on programme description and episode title
  • Filter search results by channel
  • Direct download via programme ID or URL
  • PVR capability (may be used with cron or Task Scheduler)
  • HTTP proxy support
  • Perl 5.10.1+ required, plus LWP, LWP::Protocol::https, XML::Simple, XML::LibXML and Mojolicious modules
  • Requires ffmpeg for conversion to MP4 and AtomicParsley for metadata tagging
  • Runs on Linux/BSD (Ubuntu, Fedora, OpenBSD and others), macOS (10.10+), Windows (7/8/10 - XP/Vista not supported)


  • get_iplayer can only search for programmes that were broadcast on BBC linear services within the previous 30 days, even if some are available for more than 30 days on the iPlayer site. Any programmes that are still available after 30 days must be located on the iPlayer site and downloaded directly via PID or URL.
  • get_iplayer does not support downloading news/sport videos, other embedded media, archive sites, special collections, educational material, programme clips or any content other than whole episodes of programmes broadcast on BBC linear services within the previous 30 days, plus episodes of BBC Three programmes posted within the same period. It may be possible to download other content directly via PID or URL, but such use is not supported.

To install getiplayer (Install), run the following command from the command line or from PowerShell:

C:\> choco install getiplayer --version 3.01

To upgrade getiplayer (Install), run the following command from the command line or from PowerShell:

C:\> choco upgrade getiplayer --version 3.01


  • tools\chocolateyinstall.ps1 Show
    $ErrorActionPreference = 'Stop';
    $packageName= 'getiplayer'
    $toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
    $url        = ''
    $packageArgs = @{
      packageName   = $packageName
      unzipLocation = $toolsDir
      fileType      = 'exe'
      url           = $url
      url64bit      = $url64
      softwareName  = 'getiplayer*'
      checksum      = 'b4d0252cb8a1127d31848b2d7b23e170af0f9afd'
      checksumType  = 'sha1'
      checksum64    = ''
      checksumType64= 'sha256'
      silentArgs   = '/S'
    Install-ChocolateyPackage @packageArgs
  • tools\chocolateyuninstall.ps1 Show
    $ErrorActionPreference = 'Stop';
    $packageName = 'getiplayer'
    $softwareName = 'get_iplayer*'
    $installerType = 'EXE' 
    $silentArgs = '/S /qn /norestart'
    $validExitCodes = @(0, 3010, 1605, 1614, 1641)
    if ($installerType -ne 'MSI') {
      $silentArgs = '/S'
      $validExitCodes = @(0)
    $uninstalled = $false
    [array]$key = Get-UninstallRegistryKey -SoftwareName $softwareName
    if ($key.Count -eq 1) {
      $key | % { 
        $file = "$($_.UninstallString)"
        if ($installerType -eq 'MSI') {
          $silentArgs = "$($_.PSChildName) $silentArgs"
          $file = ''
        Uninstall-ChocolateyPackage -PackageName $packageName `
                                    -FileType $installerType `
                                    -SilentArgs "$silentArgs" `
                                    -ValidExitCodes $validExitCodes `
                                    -File "$file"
    } elseif ($key.Count -eq 0) {
      Write-Warning "$packageName has already been uninstalled by other means."
    } elseif ($key.Count -gt 1) {
      Write-Warning "$key.Count matches found!"
      Write-Warning "To prevent accidental data loss, no programs will be uninstalled."
      Write-Warning "Please alert package maintainer the following keys were matched:"
      $key | % {Write-Warning "- $_.DisplayName"}

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • A. S. Budden
  • Alexey Tourbin
  • Andrew Elwell
  • Andy Bircumshaw
  • Bill Boughton
  • Caius Durling
  • Chris Reed
  • BBR
  • Crispin Flowerday
  • David Woodhouse
  • HenderHobbit
  • Ian Praxil
  • James
  • James Laver
  • James Ross
  • James Teh
  • John Henderson
  • Jon Davies
  • Jonathan Harris
  • Jonathan Larmour
  • Jonathan Wiltshire
  • Matthew Boyle
  • Mike Crowe
  • Mike Fleetwood
  • Murray
  • Phil Cole
  • Ralf Baechle
  • Sharon Kimble
  • Shevek
  • Steven Luo
  • Stuart Henderson
  • Vangelis forthnet
  • Vangelis66
  • Will Elwood
  • dinkypumpkin
  • fs ck
  • fsck
  • linuxcentrenet
  • willemw12


2008-2010 Phil Lewis


Release Notes

get_iplayer 3.01 Release Notes

Read First

This is primarily a bug-fix release to address problems in get_iplayer 3.00. There are other changes, however - see below.


1. Cache updating restored to pre-3.00 behaviour

  • Just after getiplayer 3.00 was released, the BBC rolled out significant improvements in the performance of their schedule pages, which are used by getiplayer for programme indexing. There is no longer any benefit to rationing get_iplayer to weekly cache updates by default. So, cache updates work like they did before, and are once again completely controlled by --expiry.
  • Cache updates continue to be noticeably slower than in v2.99 or lower, though the speed seems generally acceptable. get_iplayer 3.01 still uses concurrent indexing (based on Mojolicious Perl module) to reduce update time. However, the most effective way to reduce indexing time is to eliminate channels you don't need from your cache updates. See the relevant documentation for examples.
  • The default value for "Auto-Refresh Cache Interval" in the Web PVR Manager has been changed to 4 hours, to match the CLI. You can reset it to the previous default of 1 hour if you wish.

Upgrading from get_iplayer 2.99 or lower

If you are upgrading from v2.99 or lower, there will be holes in your cache, i.e., some programmes will be missing from the period after your last update before the old XML data sources were removed on 2017-04-26. You can rebuild a full new cache with:

get_iplayer --cache-rebuild --type=tv,radio

Omit the --type option for TV programmes only. Note that you cannot rebuild your cache from the Web PVR.

Needless to say, a cache rebuild will take a while, depending on how many channels you index. A full update of all channels could take 15 mins or more. Your mileage may vary.

NOTE: A cache rebuild is not required. If you don't care about missing programmes from 2-4 weeks ago, then just let get_iplayer refresh its cache as normal.

Upgrading from get_iplayer 3.00

There is no requirement to perform a full cache rebuild, but you may do so if you wish. Some (but not necessarily all) cache entries with erroneous availability dates in the future (see "Fixed" below) will be fixed automatically in the normal refresh process with v3.01, and all of them will eventually move into the past and thus appear in search results as they should. However, to avoid doubt do a full cache rebuild.

2. Other changes

  • Added --ffmpeg-verbose option. The existing --verbose option is no longer used to enable verbose logging by ffmpeg. It can produce a huge spew of "Invalid timestamp" messages in get_iplayer output that are not of very much use. If you want the spew, use --ffmpeg-verbose.
  • Added --limitprefixlength option (from @abudden). Use to truncate the file prefix to less than default value of 240. This is for users with output directory on an ecryptfs volume, where file name lengths must be limited to approximately 140 chars.


The features below were deprecated in get_iplayer 3.00 and have now been removed.

  • The --cache-init option. Use --cache-rebuild instead when upgrading, if desired.


  • Fixed a bug that caused XPath errors when generating colour subtitles for some programmes. If you have configured get_iplayer with --subsfmt=default to use its old subtitles code, please remove that setting and give the new colour subtitles another try.
  • Fixed a bug that caused repeat programme availability dates to overwrite those of the corresponding original broadcasts in cache, thus requiring --future to locate some programmes that had actually already been broadcast.
  • Fixed a bug that prevented downloading invidual episodes via --pid when --pid-recursive was configured in preferences.
  • Fixed an incompatibility with very old versions of XML:LibXML that caused strings like "XML::LibXML::Text=SCALAR(0x55de870)" to be written in name/episode fields in cache.
  • Whitespace and typo cleanup (from @praxilian)

Support Notes

"Segment not available from server" errors

In the week following the release of getiplayer 3.00, a number of streams for hls recording modes began to fail with "Segment not available from server" warnings. These streams have been broken by the BBC - there is nothing you or getiplayer can do to restore them. See Known Issues for further information. The default configuration for recording modes remains the same in v3.01, but if this proves to be a long term problem, the hls streams will be removed.


Installation information can be found here.

More Information

See: get_iplayer wiki

Version History

Version Downloads Last updated Status
getiplayer (Install) 3.21 132 Monday, July 15, 2019 approved
getiplayer (Install) 3.20 197 Tuesday, February 26, 2019 approved
getiplayer (Install) 3.18 146 Thursday, January 3, 2019 approved
getiplayer (Install) 3.16 315 Friday, July 6, 2018 approved
getiplayer (Install) 3.15 103 Thursday, July 5, 2018 approved
getiplayer (Install) 3.14 216 Wednesday, May 9, 2018 approved
getiplayer (Install) 3.13 232 Tuesday, March 27, 2018 approved
getiplayer (Install) 3.12 279 Monday, January 15, 2018 approved
getiplayer (Install) 3.10 189 Friday, January 12, 2018 approved
Show More

Discussion for the getiplayer (Install) Package

Ground rules:

  • This discussion is only about getiplayer (Install) and the getiplayer (Install) package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or getiplayer (Install), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.