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 are passing.

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

This package was approved as a trusted package on 2/4/2019.

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 from previous 30 days (not BBC Three, Red Button or iPlayer Exclusive)
  • Caching of programme 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::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 scheduled for broadcast on BBC linear services within the previous 30 days, even if some are available for more than 30 days on the iPlayer site. It may be possible to download other content directly via PID or URL, but such use is not supported.
  • 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.18

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

C:\> choco upgrade getiplayer --version 3.18


  • 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      = '1d4066adbbfd483394a11674f1ba0c871b9e1cbe'
      checksumType  = 'sha1'
      checksum64    = ''
      checksumType64= 'sha256'
    Install-ChocolateyPackage @packageArgs
  • tools\chocolateyuninstall.ps1 Show
    $ErrorActionPreference = 'Stop';
    $packageName = 'getiplayer'
    $softwareName = 'get_iplayer*'
    $installerType = 'EXE' 
    $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
  • Edward Betts
  • 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
  • Peter Oliver
  • Phil Cole
  • Ralf Baechle
  • Sharon Kimble
  • Shevek
  • Steven Luo
  • Stuart Henderson
  • Vangelis forthnet
  • Vangelis66
  • Will Elwood
  • dinkypumpkin
  • fs ck
  • fsck
  • linuxcentrenet
  • notnac
  • willemw12


2008-2010 Phil Lewis


Release Notes

get_iplayer 3.18 Release Notes

Changes in 3.18

  • Fixed a bug that caused unnecessary cache updates when --refresh-future was used.
  • Fixed a bug that prevented a stale cache from being updated with --pvr when first PVR search was PID-based. EDIT: This change will refresh both TV and radio programme index caches when PID-based PVR searches are used, even if --type=radio is not defined in preferences or the PVR searches. This is to ensure availability of at least minimal metadata for indexed programmes found with PID-based PVR searches. If you want to avoid ever indexing any radio programmes, delete the radio.cache file in your profile directory and use --refresh-exclude-groups-radio=local,regional,national to exclude all radio stations from indexing. You will have a radio.cache file, but it will contain no entries.
  • Added --hls-lq-audio option to download lower-quality audio with HLS video streams. Use this if 320k audio is too rich for your diet. You will get the same audio as DASH streams (128k or 96k, depending on the stream).
  • Added --available-before option for use with --available-since to bracket searches based on programme availability date.
  • The --no-subtitles option on the command line will now override all --subs-{embed,mono,raw,required} options saved in preferences. Those options no longer imply --subtitles, which is now required with any of them.
  • get_iplayer no longer looks for a local options file under the current working directory (in ./.get_iplayer/options). That could cause problems when using --profile-dir while working in user's home directory if a default profile directory had been created. Use a preset instead. EDIT: This functionality was never documented and thus you are extremely unlikely to be affected by its removal.
  • The --test option will only show lists of matching episodes with PVR searches and --pid-recursive. Download and parsing of media stream data will only occur with --test if --get or standalone --pid is specified.
  • Changes to substitution parameters:

    • Added <sebcast>, <sebcastdate>, <sebcasttime>, <sesort>. See definitions in Substitution Parameters. These parameters provide additional options for constructing sortable file names with --file-prefix.
    • A value for <episodenum> must now be found in programme metadata in order for <senum> to be populated. A value of "1" is no longer synthesised for some TV programmes. A value of "1" is still synthesised for <seriesnum> if <episodenum> is populated and no series number is found in programme metadata.
    • The episode number prepended to <episode> is now zero-padded to 2 digits. This is reflected in the default output file prefix. EDIT: If you use the default file prefix and you mistakenly use --force for a programme you do not wish to re-download, or you mistakenly attempt to re-download a programme you already have that has been removed from your download history, it is likely that you will end up with a duplicate because the zero-padding generates a different file name (assuming an episode number is present). To revert to the previous default file prefix without zero-padding, use:

      get_iplayer --prefs-add --file-prefix="<name> - <episodenum. ><episodeshort> <pid> <version>"

      If you use a custom file prefix that contains <episode>, replace it with <episodenum. ><episodeshort> to achieve the same effect.

    • Conditional separators can now be used as suffixes. See example in Filenames and Directories.
  • The functionality of the options below has been removed. The options are now ignored and will be completely removed in the next release. A warning message will be printed if any of these options is found in your preferences.

    • --hls-hq-audio: Now essentially useless and could lead to audio sync problems.
    • --no-dash-remux: If you prefer DASH media streams for some reason you can no longer produce potentially unusable output files, at the cost of some extra time in post-processing downloads.
    • --stream-http: get_iplayer will now automatically look for HTTP media playlist URLs if no HTTPS URLs are found.

    You can remove these obsolete options from your preferences (whether or not they are actually defined) with:

    get_iplayer --prefs-del --hls-hq-audio --no-dash-remux --stream-http

  • A getiplayer profile directory (containing programme index caches, pvr searches, preset definitions, download history) can now be shared between Windows and Linux/BSD/macOS. getiplayer on all platforms now processes any CRLF line endings (default for text files on Windows) when reading files from the profile directory. Files will still be written with native line endings (CRLF on Windows, LF on other platforms), so different files may have different line endings if you share them between platforms. This also means that the "downloadhistory" file will have *mixed* line endings if written on different platforms. The different line endings shouldn't affect getiplayer, but be aware of them if editing those files directly.

    • If you only use getiplayer on Windows, or only on Linux/BSD/macOS, you should notice no difference.

    • Warning for Linux/BSD/macOS users: This only works with getiplayer 3.18 or higher. Once you have CRLF line endings in your files, you cannot use get_iplayer versions before 3.18 unless you first change all line endings in all files to LF and then never again write to those files in Windows.


See: get_iplayer wiki

More Information

See: get_iplayer wiki

Version History

Version Downloads Last updated Status
getiplayer (Install) 3.21 133 Monday, July 15, 2019 approved
getiplayer (Install) 3.20 197 Tuesday, February 26, 2019 approved
getiplayer (Install) 3.18 147 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.