Skip to content
notnac edited this page Feb 8, 2022 · 7 revisions

get_iplayer 2.83 - 2.99 Release Notes

get_iplayer 2.99 - 2017-02-11

get_iplayer 2.98 - 2017-02-03

get_iplayer 2.97 - 2016-09-25

get_iplayer 2.96 - 2016-08-19

get_iplayer 2.95 - 2016-07-03

get_iplayer 2.93-2.94 - 2015-06-03

get_iplayer 2.92 - 2015-03-13

get_iplayer 2.91 - 2014-12-21

get_iplayer 2.89-2.90 - 2014-11-02

get_iplayer 2.88 - withdrawn - 2014-11-02

get_iplayer 2.87 - 2014-10-19

get_iplayer 2.86 - 2014-04-06

get_iplayer 2.85 - 2013-11-06

get_iplayer 2.84 - 2013-09-30

get_iplayer 2.83 - 2013-06-22

get_iplayer 2.99 Release Notes

Read First

  • get_iplayer 2.99 is a bug fix release. No deprecated features have been removed. The primary purpose of this release is to restore downloading of DASH media streams that was broken by BBC changes.

Fixed

  • Implemented a fix for a BBC change in DASH stream manifests. That change broke downloading of all DASH streams (dvf and daf recording modes) for programmes broadcast on or after 8 Feb. The problem manifested as an initial warning:

      WARNING: Failed to download segment [0]) 
    

    followed by a different warning on subsequent retries similar to:

      WARNING: Invalid resume data: -1,637,0,637,0,1486640737
    
  • Fixed a problem that sometimes prevented subtitles from being downloaded when using --pid combined with --type=tv,radio.

  • Fixed erroneous remapping of old hvfvhigh recording mode to hvfhigh. It is now remapped to hvfxsd.

Install/Upgrade

Installation information can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

More Information

See: get_iplayer wiki

get_iplayer 2.98 Release Notes

Read First

  • Deprecated features have been removed in this release. Read the "Removed" section below before upgrading in case you wish to stay with get_iplayer 2.97 in order to retain access to removed features. However, get_iplayer 2.97 is no longer supported.

  • Packagers - get_iplayer no longer uses the following:

    • External programs:
      • id3v2
    • Perl modules:
      • Authen::SASL
      • MP3::Info
      • MP3::Tag
      • Net::SMTP::SSL
      • Net::SMTP::TLS
      • Net::SMTP::TLS::ButMaintained

    If your package includes any of these as dependencies, you can remove them.

    Remaining dependencies are:

    • External programs:
      • atomicparsley
      • ffmpeg
      • rtmpdump
    • Perl modules:
      • LWP (incl. LWP::Protocol::https)
      • XML::LibXML
      • XML::Simple

New/Changed

1. Restored 25fps as default for TV programmes

There haven't been any more reports of the corrupted hls streams that were causing problems in July-August, so get_iplayer has reverted to using 25fps TV streams by default. This is the equivalent of the the --tvmode=tv25fps shortcut introduced with get_iplayer 2.96. You can still use that shortcut, but it is now redundant since it is the default setting. Be aware that some corrupted hls streams from July-August (and perhaps earlier) may still exist on the iPlayer service.

2. Use new --fps50 option to access 50fps streams

Access to 50fps TV streams is now configured with a new --fps50 option. If you use that option, 50fps streams will be used in preference to 25fps streams where both are available for a given video size. Without the --fps50 option, 50fps streams will never be used unless you specify the associated recording modes specifically.

  • With --tvmode=hvf or --tvmode=dvf, no HD streams will be available without --fps50 since there are no HD 25fps streams for those formats.
  • Some programmes that are not available in HD may have a 704x396@50fps stream. But, since it will typically not have the best video size available - and thus won't be used by defauilt - you will need to target that 50fps stream explicitly by using --tvmode=good --fps50.

3. TV recording modes reorganised (a bit)

get_iplayer now uses a stream hierarchy organised by video size rather than bit rate. See Recording Quality. Some recording modes have been renamed to accomodate the new hierarchy. If you are using individual modes (not recommended), you can still use the old names, but they will automatically be remapped to the new values and a warning will be printed.

TV modes remapped:

	hlshigh   -> hlsstd
	hlslow    -> hlsxstd
	hvfvhigh  -> hvfhigh (NOTE: This is a bug. hvfvhigh should be remapped to hvfxsd. Fixed in 2.99.)
	hvfstd    -> hvflow
	flashhigh -> flashstd
	flashlow  -> flashxstd

The smallest video size now available is 512x288.

4. DASH TV support

get_iplayer now supports downloading DASH streams for on-demand TV programmes, to go with existing DASH support for radio. These streams are available using the dvf mode prefix (think DASH Video Factory). The stream characteristics are the same as hvf streams. For each video size, hvf streams are used in preference to dvf streams for the present, but dvf will likely become the preferred format in a future release, so it is in your interest to test it (use --tvmode=dvf). There are a couple of things to keep in mind:

  • ffmpeg 3.0 or higher is required to remux dvf downloads to MP4. avconv will not work, nor will earlier releases of ffmpeg.
  • The audio and video for dvf streams must be downloaded separately (files have .raw.m4a and .raw.m4v extensions). That means if you use --raw with --command for dvf streams (not recommended), you will need to account for having two files to process. These are referenced with the new <rawaudio> and <rawvideo> substitution parameters, which only work with dvf downloads. You should use --tvmode=dvf to explicitly screen out hvf and hls streams, which will not work with <rawaudio> and <rawvideo>.

5. DASH radio modes renamed

With the addition of DASH TV support, DASH radio streams are now designated with the daf mode prefix (think DASH Audio Factory). If you use the old dash prefix, it will automatically be remapped to the new value and a warning will be printed.

6. HLS/DASH downloads resumable across sessions

The HLS/DASH downloader can now resume downloads interrupted by dropped connections or other problems. You only need to re-run the exact same get_iplayer command and it will attempt to pick up where the previous download left off. This is accomplished through the use of a temporary file that stores download parameters and a log of already-downloaded segments.

  • The temporary file is created in the programme's output directory and has the same file prefix with a .txt extension.
  • The temporary .txt file is retained in the event of a complete download failure, but it can safely be deleted. The download will restart from the beginning in that case.
  • The requested PID, version, mode and start/stop times must be the same for a partial download to be resumed
  • If any problems are encountered in attempting to resume a download, get_iplayer will automatically restart the download from the beginning.
  • The resume functionality can be suppressed with the --no-resume option.

7. Other changes

  • get_iplayer now verifies that the size of each downloaded HLS/DASH stream segment matches the size reported by the CDN web server. If they don't match, an "Unexpected size for segment" message is displayed and the download is retried. This verification can be suppressed with the --no-verify option, but you may find the resulting file has gaps or corrupted segments.
  • You can now configure separate user commands for post-processing TV and radio programmes. Use the new --command-tv and --command-radio options. They will override --command if specified.
  • get_iplayer now attempts to check your ffmpeg version and enables the --raw option if it is not suitable for converting the downloaded file to MP4.
    • If the version cannot be determined (e.g., from a snapshot build), a warning is issued but MP4 conversion is still attempted.
    • You can override the ffmpeg checks with the --ffmpeg-force option, which forces get_iplayer to attempt MP4 conversion for any downloaded file with whatever version of ffmpeg you are using.
    • This will only be a potential issue for users of some older Linux distros, who will be required to install a third-party build of ffmpeg. Windows and macOS users are already supplied with ffmpeg 3.0, and most recent Linux and BSD releases also provide ffmpeg 3.0 or higher.
  • The various download progress displays are now suppressed in the Web PVR Manager and when capturing get_iplayer output to a file. The progress displays can be forced into a file with the new --log-progress option.
  • HLS/DASH download progress values are now expressed in binary units to conform with the underlying arithmetic.
  • If you use --raw with radio programmes, the output files from the default daf streams are now saved with a .raw.m4a extension rather than just .m4a. This distinguishes them from the normal remuxed and tagged output files.
  • You can now use --pid <series-pid> --pid-recursive with --pvr-add. This has one very limited purpose: using the pvr functionality to download timed-release BBC Three series. Don't use it for any other programmes.
  • Temporary files used to store downloaded media streams are retained if remuxing fails (e.g., if you have an obsolete version of ffmpeg) and checked on subsequent attempts. You can re-run the exact same get_iplayer command with --force added to attempt the remuxing again without re-downloading the media streams. The --overwrite option would also be required if the previous remux failed part-way through.

Removed

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

  • Any remaining support for 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 (though BBC Three programmes are not searchable).
    • Some excluded content will still be downloadable via PID or URL, but such use is no longer supported. If downloading those items via PID or URL should stop working in the future, get_iplayer will not be modified to restore access.
    • Recursive downloading is still supported, but if for some reason any episodes older than 30 days can no longer be downloaded, get_iplayer will not be modified to restore access.
    • Programme clips are no longer included in recursive downloading. Although many will still be downloadable via PID or URL, such use is no longer supported. If downloading clips via PID or URL should stop working in the future, get_iplayer will not be modified to restore access.
    • For content not supported by get_iplayer try youtube-dl.
  • The podcast programme type
  • The localfiles programme type
  • Streaming and recording of live programmes
    • If you don't like the BBC/Radioplayer streaming service, live radio stream links can be found at: http://www.radiofeeds.co.uk/query.asp?feedme=BBC
    • If you know of a similar resource for live TV stream links (FilmOn doesn't count), post it in the support forums.
    • If you have a DIY bent and you speak Perl, the test harness for HLS streams in this gist will show you how to retrieve and/or construct live stream links.
  • Streaming of on-demand programmes
    • Includes removal of "Play" links in Web PVR search results
    • Web PVR can still stream downloaded programmes
  • ID3 metadata tagging (for MP3 files)
  • Built-in support for alternative media output formats or containers (MP3/AVI/MKV)
    • See user command examples in documentation for some alternatives
    • There are many applications available that can convert get_iplayer output files to MP3/AVI/MKV
    • CLI converters can be used with --command
  • Built-in support for alternative metadata formats (Kodi/Freevo/MythTV)
    • --metadata=generic is the only metadata option now available
    • See user command examples in documentation for alternative method to create Kodi .nfo files
  • Built-in support for alternative search results formats (HTML/Freevo/MythTV)
  • Multimode recording
  • Symbolic linking of output files
  • Option to use ffmpeg for downloads
  • Customisation of ffmpeg options for remux
    • You can still do custom remuxing with --command
  • Email functions
  • Some obsolete tagging options (replaced by auto-configuration) - see --tag-* options in list below
    • Use the --tag-format-show and --tag-format-title options to customise programme/episode names in tags.
    • Replace --tag-fulltitle with --tag-format-title="<title>" or --tag-format-title="<name>: <episodeshort>". Use --tag-format-title="<name>: <episode>" if you wish to include episode numbers.
  • File name sanitisation options (replaced by uniform naming scheme)
    • All file names are now always ASCII-only, with most punctuation removed.
    • All dates in episode titles are now always converted to YYYY-MM-DD format for use in file names

Options removed

With the removal of deprecated features, the following options have been removed. An error will be generated if you attempt to use these on the command line. A warning will be printed if any of these are found in saved preferences.

--aactomp3
--avi
--email
--email-password
--email-port
--email-security
--email-sender
--email-smtp
--email-user
--fatfilename
--ffmpeg-liveradio-opts
--ffmpeg-livetv-opts
--ffmpeg-radio-opts
--ffmpeg-tv-opts
--fxd
--hfsfilename
--hls-ffmpeg
--hls-ffmpeg-encode
--hls-liveradio-opts
--hls-livetv-opts
--hls-radio-opts
--hls-tv-opts
--html
--id3v2
--isodate
--keep-all
--listplugins
--liveradio-intl
--liveradio-uk
--liveradiomode
--livetvmode
--localfilesdirs
--mediaselector
--mkv
--mp3vbr
--multimode
--mythtv
--non-ascii
--nowrite
--outputliveradio
--outputlivetv
--outputlocalfiles
--outputpodcast
--pid-recursive-noclips
--player
--punctuation
--shoutcast-liveradio-opts
--stdout
--stream
--symlink
--tag-cnid
--tag-fulltitle
--tag-hdvideo
--tag-id3sync
--tag-longdesc
--tag-longdescription
--tag-longepisode
--tag-longtitle
--tag-shortname
--xml-alpha
--xml-channels

Fixed

  • Fixed a bug that caused some video clips to be incorrectly marked as geoblocked
  • Fixed a bug that caused spurious warning messages during recursive downloads (thanks Will Elwood)
  • Fixed a bug that broke use of --refresh-limit on certain days of the last week in a calendar year (thanks Will Elwood)

Support Notes

HTTPS URLs

The BBC is on a drive to use HTTPS for all services. Programme data now includes HTTPS URLs for subtitles and DASH media sources. That means you will see twice the number of available streams for those resources in programme information listings, though the HTTPS URLs refer to duplicates of the HTTP streams.

  • The HTTPS URLs have a higher priority in metadata than HTTP URLs, so they will be tried first for each recording mode.
  • Typically, only the HTTPS subtitles URL for a programme will be used.
  • macOS and Windows users will have HTTPS support already installed.
  • Linux/BSD users and those with a DIY Perl installation (e.g. Perlbrew) should ensure that the LWP::Protocol::https Perl module (or equivalent software package) is installed.

Rescinded deprecations

  • Remove support for searching by category: Rescinded since category search still works with download history, and users should now be accustomed to it not working with programme index.
  • Remove some obsolete indexing options: Rescinded since the associated options were not worth the trouble to remove. Both --refresh-abortonerror and --refresh-limit will likely be kept as long as schedule data is used for the programme index cache.

Current deprecations

  • Remove RTMP (Flash) format media streams. RTMP support will be removed in the next general release even if it is still offered by the BBC.

Install/Upgrade

Installation information can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

More Information

See: get_iplayer wiki

get_iplayer 2.97 Release Notes

Read First

  • get_iplayer 2.97 is a bug fix release. No deprecated features have been removed. The purpose of this release is to restore functionality in the Web PVR Manager that was broken by recent browser upgrades and Windows updates.

Fixed

  • Google Chrome 53, Opera 40 and Firefox 49 implemented a change in the WHATWG HTML specification for the <label> element that broke most links in the Web PVR Mananger, rendering it useless. The WPM has been amended to work around this problem. The new code should still work in older versions of those browsers.
  • Windows update KB3185319 (Cumulative Security Update for IE 11) implemented changes in the handling of internet shortcut (.url) files that caused an "Unknown File Type" warning dialog to appear when launching the Web PVR Manager in all browsers on Windows. The WPM is safe to launch, but a workaround has been implemented to prevent the warning dialog from appearing.
  • Fixed a typo that prevented the hlsvhigh recording mode from being included in default value of tvmode option.

Details

Issues closed in get_iplayer 2.97

Commit log for get_iplayer 2.97

Install/Upgrade

Installation information can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

More Information

See: get_iplayer wiki

get_iplayer 2.96 Release Notes

Read First

  • get_iplayer 2.96 is a bug fix release. No deprecated features have been removed.

New/Changed

1. "Segment not found" -> "Segment not available from server" -> now an error

In recent weeks many media streams corresponding to hls modes for on-demand TV programmes have become corrupted, with many of them missing multiple segments. This was an extremely rare occurrence when 2.95 was released. While some programmes have been repaired, many have not. It would seem the production pipeline for those streams has been neglected and left to rot. If it happened once it can happen again, so at the very least those streams can no longer be relied upon by get_iplayer even if they are restored to health. Consequently, get_iplayer must be stricter when stream segments are found to be missing.

From 2.96, if a DASH or HLS stream segment is reported as "not found" by a media server, an error is generated by get_iplayer instead of a warning, and get_iplayer will immediately abort the download and move on to the next recording mode in the list. There is one exception: If only the last segment of a radio programme is not available, a warning will be printed, but the download will be considered successful. There have been cases of DASH stream manifests containing a single non-existent segment at the end.

The related error message has been changed from "Segment not found" to "Segment not available from server" in order to make clear that the segment is not available for retrieval from the server, as opposed to being not found because of some fault with get_iplayer. Some users reporting problems with HLS streams failed to distinguish between "Segment not found" errors (problems with the BBC or its CDNs) and unrelated "Failed to download segment" errors (problems with the BBC or its CDNs, upstream connectivity, your machine or all three). The change in wording is a likely futile attempt to avoid that mistake in the future.

2. Combined hvf and hls modes now default for TV programmes (hvf preferred)

get_iplayer now uses a combination of hvf and hls modes by default for TV programmes. At each quality level, the corresponding hvf modes are tried first, with fallback to hls modes if necessary. With default settings in force, this means that the vast majority of normal TV downloads will use hvf modes. If get_iplayer is forced to fall back to hls modes, the video resolution and bit rate of output files will be slightly different from their hvf counterparts. Roll with it.

The hls modes, although currently broken for many TV programmes, have been retained in the default mode settings because they are required for video clips from BBC programmes, which often are not available with hvf modes. It is less of a potential support headache to maintain some means for users to access video clips with default settings.

When downloading normal TV programmes, get_iplayer will rarely hit the hls modes. If it does, any problems with missing segments will be subject to the change in error handling described above, so you should no longer be at risk of downloading files that have been corrupted at source. And who knows - the hls mode streams may be fixed one day. If that happens, you can use --tvmode=hls and pretend it was all just a bad dream.

3. Combined dash, haf and hlsaac modes now default for radio programmes (dash preferred)

The mode values for HLS radio streams now use the haf prefix (think HLS Audio Factory). At each quality level, the corresponding dash modes are now tried first, with fallback to haf and hlsaac modes if necessary. This is the reverse of 2.95 behaviour. Corruption has recently appeared in haf streams for a few programmes, though it does not manifest as missing segments, but rather as skips, loops, etc. Giving preference to dash modes increases the chance of a clean download.

The hlsaac radio modes, based on older HLS streams, have been incorporated in the default mode settings because they are required for audio clips from BBC programmes, which often are not available with dash or haf modes.

4. Flash - saviour of the universe?

By all means continue to use flash modes if you wish, but they are still deprecated and still headed for the scrapheap, and thus are not used by default. For most TV programmes, they are not required to work around the "Segment not found" problems associated with hls modes. You should resort to flash modes only if the hvf and hls modes both fail completely, or if neither is available.

The one lacuna filled by flash modes is that flashhd mode represents the only alternative to a broken hlshd mode for 1280x720 25fps HD TV recordings. If the hls modes are not repaired, and the hvfhd (1280x720 50fps) streams are not viable for you, now is the time for you to start looking at the hvfsd (960x540 50fps) streams as a replacement. This is what the BBC gives you when you click "Watch in HD" on the iPlayer site. Who are we to argue?

5. Configuring maximum recording quality with the new default modes

You don't need to give much thought to the changes to default recording modes described above. They boil down to this: get_iplayer will by default try all non-flash modes in decreasing order of quality in pursuit of a successful download. Yes, there is a small chance that some of those streams may be missing segments, but get_iplayer will now abort those downloads ASAP and move on to find a working stream. The only decision you typically need to make is whether or not to configure your maximum recording quality.

From 2.95, get_iplayer downloads the best available quality by default. With the addition of hvf modes and other changes to default recording modes in 2.95 and 2.96, you may find that you no longer want the best quality by default. For example:

  • With the new default hvf modes, HD TV will require 2GB+ storage per hour of video, double the requirement for the previous default hls modes, due to the doubled frame rate of 50fps. If that is too rich for your bandwidth or storage diet, you can configure get_iplayer to limit downloads to lower-quality streams.
  • You may only record speech radio programmes and don't want the extra bandwidth and storage requirements of 320kpbs audio. In that case, you can configure get_iplayer to limit downloads to 128kbps or lower.

See Configuring maximum recording quality in Recording Modes for more information.

Scream if you want to go slower: Note the addition of the tv25fps mode for TV programmes. This is a shorthand for "hlshd,tvvgood" that enables you to limit recording to only streams with a frame rate of 25fps and avoid the higher-bitrate 50fps streams. Because hlshd is at the head of that modes list, there is a greater chance that the initial download attempt will hit a stream with segments missing, but get_iplayer will now abort those downloads and move on to lower-quality streams.

6. avconv and ffmpeg <2.5 not compatible with hvf modes

Downloads from hvf modes cannot reliably be converted to MP4 by avconv or ffmpeg <2.5. Remuxing errors, unplayable video, and missing audio are some of the symptoms. Only ffmpeg 2.5+ appears to work consistently, with 3.0+ recommended. Before 2.96, get_iplayer would prefer avconv if it was detected on a user's system in order to accommodate Linux distros that did not provide ffmpeg. That preference has been removed and get_iplayer 2.96+ will only look for ffmpeg. In addition, avconv is now explicitly blocked from converting MPEG-TS (.ts) files to MP4 for downloads with hvf modes, with a warning emitted.

Users of OS X, Windows, BSD variants, and most Linux distros do not need to be concerned about this since your systems have recent versions of ffmpeg available. This issue is mainly of concern to users of Debian and derivatives such as Ubuntu, who had libav (including avconv) inflicted upon them for a few years. In particular, users of Ubuntu 14.04/12.04 and Mint 17/13 will need to install a suitable version of ffmpeg to create MP4 files for TV programmes. NOTE: This does not apply to Ubuntu 16.04 or Mint 18. Those releases have reverted to using ffmpeg.

Ubuntu 14.04/12.04, Mint 17/13

Users of these releases and their derivatives should be able to install and configure a static build of ffmpeg using the commands below as a guide. Change "amd64" to "i686" for 32-bit systems.

wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xf ffmpeg-release-amd64-static.tar.xz
sudo install -m 755 ffmpeg-*-static/ffmpeg /usr/local/bin
get_iplayer --prefs-add --ffmpeg=/usr/local/bin/ffmpeg

Notes:

  • Ubuntu 12.04 and Mint 13 will soon reach end-of-life, but Ubuntu 14.04 and Mint 17 have some way yet to go. Periodically check the repositories related to those releases for a backport of ffmpeg. It could happen.
  • Ubuntu 12.04 installs an ancient version of ffmpeg along with avconv. It must be superseded by a modern version using the instructions above.

Debian

Debian 8 (jessie) users have the option of installing ffmpeg from the jessie-backports repository. Users of all Debian versions (including jessie) should be able to install and configure a static build of ffmpeg as described above for Ubuntu.

Raspbian

Raspbian Jessie users should read this forum thread for information on how to obtain ffmpeg:

https://squarepenguin.co.uk/forums/thread-964.html

Thanks to forum member "shukerr" for the tip.

Other Linux distros

Old versions of other Linux distros may supply obsolete versions of ffmpeg that will not work with hvf modes. Users on those systems must acquire a recent version (>=2.5) of ffmpeg in order to create MP4 files for TV programmes. If the package repositories for your Linux distro do not offer a suitable version of ffmpeg, try the instructions above for installing a static build.

For those who hate change

If you only download radio programmes, you can continue to use avconv. You can also use avconv with the hls TV modes. If you choose that route, configure the necessary get_iplayer preferences. For Debian/Ubuntu/Mint:

# adjust path to avconv as necessary
get_iplayer --prefs-add --ffmpeg=/usr/bin/avconv --tvmode=hls

If you can't figure out how to update your system with a suitable version of ffmpeg, or don't wish to do so, remember that you can download using --raw to produce MPEG-TS (.ts) files and avoid MP4 conversion altogether. MPEG-TS files should be compatible with a number of media players. You can also convert MPEG-TS files to MP4 with the MP4Box utility from the GPAC suite.

Fixed

  • Fixed "Cannot fork" error encountered when running Web PVR Manager on Windows for an extended period
  • Fixed problem in Web PVR Manager that delayed display of download progress until each programme was downloaded in full
  • Fixed future schedule parsing to account for format changes that prevented numerous future listings from being indexed
  • Fixed a CSS problem that prevented history entries in Web PVR Manager from being dimmed when their associated files were deleted or moved.
  • Restored hlsaac and flashaac modes for radio programmes and audio clips to avoid potential ambiguities in setting recording modes for the Web PVR Manager.

Details

Issues closed in get_iplayer 2.96

Commit log for get_iplayer 2.96

Install/Upgrade

Installation information can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

More Information

See: get_iplayer wiki

get_iplayer 2.95 Release Notes

Read First

Unix packagers

  • If you don't already do so, use the get_iplayer source tarball from the GitHub repo. See https://github.com/get-iplayer/get_iplayer/releases/latest for the link. If you pull from Git, use the GitHub repo master branch. The infradead.org locations are no longer being used.
  • get_iplayer no longer references LAME, MPlayer and VLC. You may remove those applications from your package dependencies, if applicable.
  • The packagemanager option is no longer used and a warning is issued if it is found in options files. You should remove it from the system options file you install with your package. You can omit the system options file altogether if it only contains the packagemanager option.
  • Several tagging-related options may vary between distros due to different versions of AtomicParsley available. Those are now automatically determined at runtime and have been deprecated, and thus no tagging options should be included in a system options file.
  • See the options documentation for the list of deprecated options. Remove any deprecated options from your system options file to avoid warnings being presented to users.
  • In general, you should no longer need to deploy a system options file unless you wish to configure AtomicParsley/ffmpeg/rtmpdump binaries that are not installed in $PATH.
  • get_iplayer no longer uses any plugin files. You should not install a system plugins directory or the podcast and localfiles plugin files (both now removed from source). You may remove those files from existing installations if you wish, though it is harmless to leave them in place.
  • Some obsolete documents have been removed from the get_iplayer source distribution. Please check your package specs and remove any files that are no longer distributed with get_iplayer.
  • get_iplayer 2.95 introduces a soft dependency on the XML::LibXML Perl module (for HTML parsing in the event the BBC remove the current XML data sources). Use of XML::LibXML will likely expand in future releases, so please add it to your package dependencies if it is not already pulled in with other Perl XML modules.

Self-updaters

  • The --update option is no longer supported and has been removed from get_iplayer. You will need to download and install get_iplayer 2.95+ manually.

New/Changed

1. 30-day cache

get_iplayer now retains programme data in its index cache for up to 30 days.

  • get_iplayer does NOT index 30 days of programme listings every time the cache is updated - it indexes no further back than the beginning of the previous calendar week. This means that you must update your cache each calendar week for a month after installation in order to build up a full 30 days of programme data. From then on, the 30-day buffer should be maintained as long as you update the cache at least once per calendar week.
  • No programme is retained in the cache for longer than 30 days, regardless of how long it is available from the iPlayer site.
  • Some programmes will expire from the cache in less than 30 days. For example, TV news bulletins generally expire after 1 day and week-ahead weather forecasts expire after 7 days. Films also generally expire in less than 30 days.
  • Whenever a cache file is updated, the previous version is now saved in your profile directory with .old appended to the file name. If you encounter any problems, you can restore the previous cache file by copying the .old backup over the current version.
  • Local BBC One variants are once again indexed by default. If you wish to reduce indexing time, you can exclude them with --refresh-exclude-groups-tv=local
  • BBC schedule data is now also used for indexing radio programmes, which means that updating the radio cache will be noticeably slower. If you wish to reduce indexing time and you don't require local radio programmes, you can exclude them with --refresh-exclude-groups-radio=local
  • Search results with --long show relative expiry date
  • Added --available-since=N and --expires-before=N (where N is in hours) to search for recently available or soon-to-expire programmes.
  • The get_iplayer cache now contains an additional expires field containing the programme expiration time in epoch format.
  • BBC schedule data is still used for indexing TV programmes, which means:
    • You still cannot search for programmes by category
    • You still cannot search for audio described or signed programmes
    • You still cannot search for web-only or red button programmes
    • Indexing still only covers programmes scheduled for broadcast on BBC linear services. BBC Three, iPlayer exclusives and red button programmes are not indexed.

One caveat: For some reason, the necessary schedule data for BBC Radio Solent is not available. This means that only the previous 7 days of Radio Solent programmes will be indexed, and all of those programmes will be assumed to expire in 30 days. If the schedule data for any other radio stations should disappear, get_iplayer will fall back to the same mechanism for indexing.

2. New default streaming formats

TV

  • HLS (HTTP Live Streaming) is now the default format for on-demand TV
  • HLS downloads are MPEG-TS (transport stream) files, which can be played by most media players. The files are re-muxed to MP4 by default to make them palatable to AtomicParsley for metadata tagging. Downloading with --raw will produce MPEG-TS files.
  • RTMP (Flash) format is temporarily still available with --tvmode=flash. The previous default setting is available with --tvmode=flashbetter.

Radio

  • A combination of HLS and MPEG-DASH (Dynamic Adaptive Streaming over HTTP) is now the default for on-demand radio. HLS is preferred, but the higher-quality streams for both UK and international users are currently only available in DASH format, so the DASH streams will generally be used.
  • 320kbps and 96kbps DASH versions of on-demand radio programmes are now available, in addition to the 128kbps and 48kbps DASH and HLS versions. Non-UK users only have access to 96kbps and 48kbps.
  • Some programmes created before the advent of DASH streaming will only be available in HLS format, but this should be transparent to users.
  • DASH radio downloads are M4A files, but they are still re-muxed with ffmpeg by default in order to make the files palatable to AtomicParsley for metadata tagging. Downloading with --raw will produce M4A files, though of a type that may be incompatible with some media players.
  • HLS radio downloads are MPEG-TS (transport stream) files, which are by default re-muxed to M4A for tagging. Downloading with --raw will produce MPEG-TS files.
  • On-demand radio programmes in DASH format are not streamable (--stream or --stdout options) via ffmpeg. If either of those options is used, get_iplayer will fall back to HLS format. That means that only 128kbps (UK only) and 48kbps versions will be streamed.
  • RTMP (Flash) format is temporarily still available with --radiomode=flash.

Notes:

  • The --start and --stop options will be less accurate with HLS and DASH streams since programmes can only be trimmed at HLS/DASH chunk boundaries during download. Cuts may be off by several seconds from the positions you specify. If you need greater precision, use --command to trim output files with ffmpeg after download, or post-process files with a proper audio/video editor.
  • Resuming downloads across separate runs of get_iplayer is not supported with HLS and DASH. Partial downloads will be overwritten. There is some support for resuming HLS and DASH downloads during a single get_iplayer run (e.g., if your connection times out), but it is simplistic and does not always work reliably.

3. HD now default for TV programmes

You no longer need to use --tvmode=best or --modes=best to get HD video for TV programmes - it is now the default. If you normally use default options, this means that your TV downloads will roughly double in size, with approximately 1GB required for each hour of HD video. If you wish to return to the previous behaviour and download lower-quality video by default, use --tvmode=better.

4. 320kbps now default for radio programmes

As before, the best available audio is used for radio programmes. However, that is now 320kbps for most programmes (except World Service). If you only listen to speech programmes and wish to revert to the former upper limit of 128kbps, use --radiomode=better.

5. Video Factory streams

Since the release of get_iplayer 2.94, the BBC has completed the rollout of its Video Factory streams for on-demand TV programmes. These are HLS streams with slightly different bitrates and video resolutions from the default HLS streams (see recording modes documentation for details). They are the same as the streams available for live TV. The Video Factory streams are available with the hvf prefix (e.g., --tvmode=hvf) - think "HLS Video Factory".

There are three significant differences to be aware of:

  • The Video Factory HD streams are 5Mbps 1280x720 50fps (frames per second), which means downloads are roughly double the size (2 GB per hour of video) of the default 2.5Mbps 1280x720 25fps HD streams. The 50fps streams appear to be frame-doubled deinterlaced 25fps, so you will have to judge for yourself if hvf HD streams are worth the doubled download size and bandwidth usage.
  • There is an additional 3Mbps 960x540 50fps stream available, designated as hvfsd.
  • The 50fps streams have 128kbps AAC audio, compared to 96kbps AAC audio in the default HD streams.

There is one very important limitation: Downloads from Video Factory streams cannot be re-muxed to MP4 by avconv or ffmpeg <2.5. Only ffmpeg 2.5+ appears to work. This is of particular note to users still on old LTS versions of Ubuntu (12.04, 14.04) and Mint (13, 17), and Mageia 5. If you are unable or unwilling to upgrade your system, you will need to acquire a modern version of ffmpeg if you wish create MP4 files from Video Factory streams (you can still download with --raw). There may be several alternatives available, but one possible solution is to use a static build of ffmpeg from:

https://johnvansickle.com/ffmpeg/

6. New Windows installer

The get_iplayer Windows installer has been rewritten and simplified:

  • The installer is now self-contained. It does not download additional components, nor does it access the network while running. This should hopefully avoid some problems with anti-virus and anti-spyware packages.

  • Some anti-virus software may still flag the installer itself, the generated uninstaller (uninstall.exe) or other components as infected, and thus may quarantine or auto-delete those files. Historically, these have always been false positives, but you must check with your anti-virus vendor to be certain. Do not install get_iplayer if you are at all unsure about the contents of its Windows installer.

  • Checksums are now provided along with the installer so that you can verify the download.

  • There are no user-selectable options for installation. The installer performs an "All Users" installation to C:\Program Files\get_iplayer [32-bit systems] or C:\Program Files\get_iplayer (x86) [64-bit systems]. This should hopefully help to avoid users creating permissions problems when installing under a different user account.

  • The installer will append the get_iplayer installation directory to the value of the system PATH environment variable (%PATH%). This will allow you to run get_iplayer from any location in a normal command prompt window.

  • The path for the embedded Perl distribution (perl subdirectory) and the path to the included atomicparsley, ffmpeg and rtmpdump utilities (utils subdirectory) are not permanently added to %PATH%. They are temporarily prepended to %PATH% only when get_iplayer batch scripts are running. If %PATH% is already quite large (>=2048 chars), e.g. because of other software packages that did not properly update %PATH% on install or uninstall, you may experience problems launching get_iplayer, perl or external programs. First, try rebooting your machine. If that does not help, you will need to clean obsolete and duplicated entries from your PATH environment variable settings (both system and user). Run echo %PATH% from a command prompt to check the value. This should affect few users.

  • The get_iplayer menu shortcut now opens a console window in your home directory (%HOMEDRIVE%%HOMEPATH%) rather than in the installation directory.

  • The major and minor version of the Windows installer (as shown in control panel) will now track the version of the embedded get_iplayer script. For example, the Windows installer may be released over time in several versions: 2.95.0, 2.95.1, 2.95.2. All those releases would include the same get_iplayer 2.95 Perl scripts, as denoted by the major and minor version ("2.95").

  • The new installer attempts to clean up after flaws in the original installer that could lead to broken installations on multi-user systems, among other things. The cleanup process is described here:

    https://github.com/get-iplayer/get_iplayer_win32/wiki/cleanup

  • The installer will attempt to preserve any custom output directory configured by a previous installer, but this may not always be possible. Be sure to check any custom output directory after installation with get_iplayer --show-options and re-configure if necessary.

The Windows installer provides the only supported configuration of get_iplayer for Windows. If you don't use the installer, or you don't use the scripts provided to launch get_iplayer and the Web PVR Manager, or you don't use the helper utilities provided, or you use your own Perl installation, then you are on your own.

7. Fallback indexing: For when the BBC plays with matches

Several times in 2016, the BBC has removed the data sources used by get_iplayer. It must be assumed that those outages presage the eventual permanent removal of those data sources, as the BBC have been promising for some time. If/when the data sources disappear again:

  • Wait several days before using get_iplayer. Seriously - just wait. Earlier outages have lasted less than 3 days, so save yourself some trouble and wait to see if the outage is permanent. Monitor the support forums for information.

  • Once you are certain the outage is permanent, add the --ybbcy option to your preferences at the command line (you cannot do this in the Web PVR Manager):

      get_iplayer --prefs-add --ybbcy
    

    This is a stopgap measure until a new release of get_iplayer becomes available. If the data resources return, remove the --ybbcy option from your preferences:

      get_iplayer --prefs-del --ybbcy
    

The --ybbcy option triggers a fallback mode for indexing programme data and populating the get_iplayer cache. This fallback indexing is intended to keep get_iplayer limping along until a more permanent solution can be found, so it has significant limitations:

  • TV indexing will be very, very, very slow (ca. 10 mins or more) because it is based on web scraping of BBC schedule pages. A high-speed connection won't help much because most of the delay lies in page rendering at the BBC end. However, the TV indexing will only run once per calendar week.
  • The fallback TV indexing is more prone to errors due to server rendering failures, so you should expect that there may be some gaps in the programme data in your cache.
  • Radio indexing will be relatively quick since it reverts to the method used in get_iplayer 2.94. However, that means that radio indexing must be run at least once every 7 days to avoid gaps in the cache.
  • If you are indexing both radio and TV, you need to update your cache at least once every seven days. The TV indexing will still only run once per calendar week.
  • Local BBC One variants are excluded from TV indexing (as in get_iplayer 2.94)
  • The --refresh-future option is ignored, so searching of future schedules will not work.
  • Recursive downloading is not available, so --pid-recursive is effectively ignored. With --ybbcy in force, get_iplayer will expect the value for --pid to be an episode PID.
  • All programmes will be retained in the cache for 30 days even if they should expire sooner (availability information is not available via web scraping of schedule pages). This means that false positives will appear in search results. Many of these are ephemeral programmes such as newscasts and weather forecasts, but some unavailable entertainment programmes and films will also be returned in search results.

NOTE: Fallback indexing is NOT SUPPORTED unless and until the BBC permanently removes the data sources used by get_iplayer, and there is no guarantee it will still work when the time comes.

Experimental: If you use Unix/OS X, you can speed up the fallback TV indexing a bit by installing the Parallel::ForkManager Perl module and using the --index-concurrent option in conjunction with --ybbcy. This implements a crude fork()-based method of indexing multiple channels at one time. Since the necessary Perl module is unlikely to be packaged for your system, concurrent indexing is only suitable for users who manage their own Perl installation and libraries. Even for those users, it is of dubious worth since it will only save you a few minutes once a week. This feature was implemented purely as an experiment and will be removed in a future release. To reiterate: this is not supported on Windows.

8. Other changes

  • HLS and DASH on-demand programmes are now recorded with a built-in downloader rather than ffmpeg. If you encounter a problem with the built-in downloader with HLS streams, you can temporarily revert to using ffmpeg by employing the --hls-ffmpeg option (does not apply to DASH).

  • BBC Three programmes are now online-only and thus are not indexed by get_iplayer. You can still download BBC Three programmes with --pid or Quick URL in the web pvr manager.

  • The web pvr manager has had a minor visual makeover (thanks to James Ross for CSS improvements)

  • In most cases, it is no longer necessary to use --type=radio when downloading on-demand radio programmes with --pid. However, an unnecessary search of the TV cache is still performed. If you have any problems, revert to using --type=radio.

  • Metadata tags are no longer added to podcasts. The BBC already tags them.

  • Where available, brand images (series images as fallback) are used for thumbnails rather than the frame grabs or other images previously used.

  • The <version> substitution parameter (used in default file prefix) now always includes the actual programme version downloaded, rather than sometimes using "default" as a catch-all value. This will make it easier to determine if you have downloaded an edited version of a programme.

  • No more plugins will be distributed with get_iplayer. The podcast and localfiles plugins have been incorporated into the main get_iplayer script.

  • The --iso-date option is now set by default. If you wish to revert to the previous behaviour, use --no-iso-date.

  • Empty <category> and <version> fields have been removed from default search results. The <pid> field is displayed instead.

  • BBC One and BBC Two variants are combined under main channel name in cache

  • Broadcast versions of radio programmes now selected in preference to podcast versions when default settings are in force

  • Added --tag-only-filename option to designate target file for --tag-only. In general, the simplest way to re-tag a file is:

      get_iplayer --pid=<pid> --tag-only --tag-only-filename="<filename>"
    
  • Added --pid-recursive-noclips option to skip programme clips when downloading with --pid-recursive.

  • Added --tag-format-show and --tag-format-title options to enable custom formats (using substitution parameters) for programme name and episode title, respectively, in tag metadata.

  • Quality levels ("worst", "worse", "good", "better", "best") are now utilised in recording mode shortcuts for radio programmes as well as TV programmes. Previously, the highest-quality radio stream was downloaded regardless of level specified. This means you should specify --tvmode and --radiomode separately if you wish to use different quality levels.

  • The --update option has been removed. Self-update is no longer supported.

  • Removed deprecated --playlist-metadata option

  • The now-unused options below have been removed. The presence of any of these options in options files will trigger a warning.

      bandwidth
      ddlradioopts
      lame
      livetvuk
      mmsnothread
      mplayer
      packagemanager
      refreshfeeds
      refreshfeedsradio
      refreshfeedstv
      rtmpliveradioopts
      rtmplivetvopts
      vlc
      wav
    

Fixed

  • Restored support for news and sport sites video clips
  • Restored HD live TV streams
  • Restored support for live TV URLs
  • Fixed problem that caused incorrect subtitles to be downloaded when more than one version was available
  • Fixed error caused by multiple series in RDF file (thanks to Alexey Tourbin)
  • Fixed problems with encoded entities and relative URLs in HLS playlists
  • Fixed podcast feed parsing broken by multi-paragraph item descriptions
  • Fixed web pvr manager "Add Search to PVR" failure when search string contained apostrophe

Details

Issues closed in get_iplayer 2.95

Commit log for get_iplayer 2.95

Install/Upgrade

Installation information can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

The Windows installer is now available from:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The previous infradead.org location is no longer used.

Support Notes

Windows XP/Vista no longer supported

As far as is known, get_iplayer, its dependencies and the Windows installer still work on XP and Vista. However, if any of those components stop working on XP or Vista, no effort will be made to fix them. Those platforms can no longer be supported by the maintainer.

Installation documentation reduced

The wiki pages describing package installation for Unix distros have been removed. That documentation can no longer be supported by the maintainer. Similar pages for MacPorts and Cygwin have also been removed. get_iplayer was never packaged for those platforms.

There is now a summary page listing the available Unix packages, with links to package and repo sites. If you wish to maintain installation documentation on your own site for a Unix distro feel free to insert a link to it at an appropriate place in:

https://github.com/get-iplayer/get_iplayer/wiki/unixpkg

SquarePenguin has kindly resurrected the Unix distro pages removed from the GitHub wiki at:

https://squarepenguin.co.uk/downloads/

Deprecations

The features below have been deprecated by the maintainer because they are obsolete, unreliable, impede future development or can no longer be supported. They will be removed in a future release of get_iplayer.

  • Any remaining support for news and sport site video clips, archived sites, special collections and any other content that is outside the iPlayer catch-up service for programmes broadcast on BBC linear services. In general, you should still be able to access programmes for which you have a PID.
  • RTMP (Flash) format media streams. RTMP support will be removed even if it is still offered by the BBC.
  • Searching by category and/or version (has been unavailable for a while - this just makes deprecation and removal official)
  • The podcast programme type
  • The localfiles programme type
  • Streaming and recording of live programmes
  • Streaming of on-demand programmes
  • ID3 metadata tagging
  • Built-in support for alternative media output formats or containers (MP3/AVI/MKV)
  • Built-in support for alternative metadata formats (Kodi/Freevo/MythTV)
  • Built-in support for alternative search results formats (HTML/Freevo/MythTV/series/terse/tree)
  • Multimode recording
  • Symbolic linking of output files
  • Option to use ffmpeg for on-demand downloads
  • Customisation of ffmpeg options for download or remux
  • Email functions
  • Some obsolete indexing options
  • Some obsolete tagging options (replaced by auto-configuration)
  • Some file name sanitisation options (replaced by uniform naming scheme)

See the options documentation for a list of deprecated options. The presence of any deprecated options in saved preferences will trigger a warning when get_iplayer starts. The warnings can safely be ignored - they are simply reminders.

More Information

See: get_iplayer wiki

get_iplayer 2.93-2.94 Release Notes

Read this first

get_iplayer 2.94 was released shortly after 2.93 to fix a bug that broke live streaming for BBC News, BBC 6 Music and BBC 1Xtra. There were no other changes in 2.94. If you already installed 2.93 and do not require live streaming for the above stations, updating to 2.94 is not necessarily required. However, all users are strongly advised to do so.

New/Changed

1. TV listing feeds

On 02/06/2015 the BBC removed the listing feeds used by get_iplayer to populate the TV programme data cache used to support searching. get_iplayer has now switched to using BBC schedule data instead. This is what you need to know:

  • If you added --refresh-feeds-tv=schedule to your preferences as a temporary measure to support the web pvr, remove it now from the command line with:

      get_iplayer --prefs-del --refresh-feeds-tv=schedule
    
  • Refreshing your TV data cache will be MUCH slower than before. Remember this especially if you use --refresh-future, which doubles the indexing time. The schedule parsing is based on old code inherited from the original version of get_iplayer, but hopefully it should improve a bit in future releases.

  • Programmes unique to local BBC One variants are not indexed by default. This reduces the indexing time by about half at the expense of a handful of programmes, many of which are local news cut-outs. If you wish to index the BBC One local variants, use --refresh-exclude-groups-tv=none.

  • You may find some TV programmes in search results that are older than 7 days. This is because the schedule data used for indexing goes back to the beginning of the previous calendar week.

  • You may find some TV programmes in search results that are older than 7 days and no longer available (e.g., films). You may also find some future programmes that are not yet available. This hopefully should be improved in a future release.

  • Fewer TV programmes will be indexed. The TV schedule data does not contain old archive programmes lurking in the iPlayer site. It also does not contain programmes broadcast exclusively on red button streams, some of which formerly may have been available. It also does not include web-only programmes ("BBC iPlayer Exclusives"). Only programmes in the broadcast channel schedule listings will be indexed.

  • You can no longer search TV programmes for signed or audio described versions. Those flags are are not included in the schedule data. That facility is unlikely ever to return. However, you should still be able to download those versions where available.

  • You can no longer search TV programmes by category. Category information is not included in the schedule data. That facility is unlikely ever to return. Category information will not appear in search results (for the present a blank space will be displayed).

  • Programmes broadcast exclusively on red button streams that were formerly available to get_iplayer will no longer be available.

REMEMBER: Any programme not in your data caches (and thus not found in your search results) should still be available with --pid <PID> or --url <URL>.

2. Live TV and radio streaming

On 02/06/2015 the BBC removed some metadata resources used by get_iplayer to locate live streams. get_iplayer has been repaired to work around this problem. Live streaming should work as before, though not all streams have been tested.

3. XML::Simple Perl module now required

On 02/06/2015 the BBC removed some metadata resources (XML playlists) formerly used by get_iplayer to extract media stream identifiers for on-demand programmes. From 2.91, those resources were only used as a backup in the event that you did not have the XML::Simple Perl module installed. That backup mechanism no longer works, so now you must have the XML::Simple module installed. Without the module you will see this error:

WARNING: Please download and run latest installer or install the XML::Simple Perl module for more accurate programme metadata.
ERROR: Failed to get version pid metadata from iplayer site

The XML::Simple module is provided by the Windows installer and is part of the system Perl in OS X. Linux/Unix users should consult the installation instructions (see below).

4. Other changes

  • Added support for BBC One/Two Northern Ireland/Scotland/Wales live streams. HD streams are available for BBC One variants, but BBC Two variants are SD only. To access those streams with a search string, you must full spell out which region you want, e.g., get_iplayer --get --type=livetv "BBC One Scotland".
  • Added support for HD TV programmes available via HLS (--mode=hlshd).
  • The --playlist-metadata option is now ignored and will be removed in the next release.

Fixed

  • Fixed "Not a SCALAR reference at get_iplayer.pl line 7099" errors. There should no longer be any need to use --exclude-supplier=akamai or --exclude-supplier=limelight to work around those errors.
  • Fixed problem with future repeat overwriting previous broadcast of same programme in cache data.
  • Fixed problem with downloading "open subtitles" programme versions with embedded subtitles (e.g., opera broadcasts).

Details

Issues closed in get_iplayer 2.93

Commit log for get_iplayer 2.93

Issues closed in get_iplayer 2.94

Commit log for get_iplayer 2.94

Notes

What about radio?

For the moment, radio listing feeds are unaffected. Your radio programme data cache should be populated the same as before, with the previous 7 days of programmes only. But also as before, you still cannot search radio programmes by category. That facility is unlikely ever to return.

So what next?

The next release of get_iplayer will switch to using BBC schedule feeds for both TV and radio programme data. This will be used to provide full 30-day programme data caches. To compensate for the slower indexing time, you will have some additional flexibility in specifying which channels to index.

Given the potential size of 30-day caches, both the CLI and web PVR will, if possible, be changed to only display search results if an explicit search string is entered, i.e., no more display of the entire TV data cache by default.

Hopefully, BBC schedule data will remain available for the foreseeable future. But given the BBC's propensity for information arson, that can't be taken for granted. Moreover, the BBC will be making further changes to iPlayer this year, so at least some parts of get_iplayer could be rendered inoperable at any time.

Nitro: If you build it but then bar the door, will they still come?

You may have read about Nitro, the BBC's newish all-singing, all-dancing programme metadata API. The latest Nitro announcement, which also announced the imminent death of the TV listing feeds (Dynamite):

https://www.bbc.co.uk/blogs/internet/entries/bc82562e-ea9d-4655-982d-e6219b2c877b

After nearly two years, Nitro has still not been opened to outside developers, though it may be opened up later this year. Even so, Nitro is not an option for get_iplayer, at least not directly. The terms and conditions (and the BBC) prevent direct access to Nitro services by get_iplayer.

In its present form, get_iplayer must rely on the BBC schedule data or, if it should come to the worst, rely on scraping the iPlayer site. Scraping is one possible way to return category information and signed/audiodescribed flags to the programme data caches, but there are no plans to implement it.

Install/Upgrade

Installation information for all platforms can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Linux/Unix

Linux/Unix packages are maintained by volunteers and may not be updated for a short time after a new release of get_iplayer. Until then, use the manual installation instructions at the link above.

Windows

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will update the following components to the indicated versions:

Component Version Notes
get_iplayer main scripts 2.94 includes both CLI and Web PVR Manager

After installing, you must immediately refresh all your cache data:

get_iplayer --refresh --type=tv,radio,livetv,liveradio

For the Web PVR, select the equivalent "Programme type" options and click "Refresh Cache". After the refresh, de-select the options you don't want to use for searching.

More Information

See get_iplayer wiki

get_iplayer 2.92 Release Notes

New/Changed

1. Live Radio

The BBC has dropped WMA (Windows Media) and Shoutcast AAC live radio streams and replaced them with HLS (HTTP Live Streaming) AAC and Shoutcast MP3 streams. get_iplayer has been updated to use the new streams.

a. HLS

All national, regional and local stations (except World Service) have 4 UK HLS streams: 320k, 128k, 96k, 48k. These correspond to the --liveradiomode values hlsaachigh, hlsaacstd, hlsaacmed, hlsaaclow. All stations (except World Service) have 2 international HLS streams: 96k and 48k, corresponding to the --liveradiomode values hlsaacmed and hlsaaclow. The streams for all stations escept World Service are available from 2 CDNs. The World Service has 1 64k stream for UK and international, corresponding to the --liveradiomode value hlsaaclow. With no mode setting, get_iplayer will use the best quality available.

The BBC will not publish the HLS stream locations, so get_iplayer must generate at least some of them. In essence, those streams are hard-coded within get_iplayer, so the BBC could change and break them at any time. get_iplayer normally relies on BBC services to determine your geographic location and provide the appropriate streams. However, this process becomes more indirect when generating the HLS stream locations. If you are in the UK and get_iplayer doesn't provide the UK streams, use --liveradio-uk to force them to be generated. This option will not defeat the geo-blocking used with the HLS radio streams. Conversely, if you are not in the UK and get_iplayer doesn't provide the international streams, use --liveradio-intl to force them to be generated.

b. Shoutcast

All national, regional and local stations have 1 international Shoutcast stream: 128k, corresponding to the --liveradiomode value shoutcastmp3std. The streams are available from 2 CDNs. Note that these are international streams, so some programmes, e.g., sporting events on 5 Live Sports Extra, are not available. The BBC have claimed that they will provide a complete set of UK Shoutcast streams, but they have not provided any further information on when or how those streams will be implemented.

The BBC has also temporarily restored the 320k Shoutcast AAC stream for Radio 3. They claim it will remain in operation at least through the 2015 Proms. This stream corresponds to the --liveradiomode value shoutcastaachigh. The stream is available from 2 CDNs.

Shoutcast streams are not used by default. If you wish to use Shoutcast streams in preference to the HLS streams, use --liveradiomode=shoutcast. The Radio 3 AAC stream will be used in preference to the MP3 stream. If you wish to use only MP3 streams, use --liveradiomode=shoutcastmp3.

2. Live TV

All live TV streams, including HD/SD, are now generated automatically. As a result, the --hds-livetv option is ignored and related code was removed in get_iplayer 2.92. The option will be removed in 2.93.

At least some live TV streams must be generated internally by get_iplayer, so as with the live radio streams there is a small chance that you may not be presented with the available streams even though you are in the UK. If that occurs, use --livetv-uk to force them to be generated. This option will not defeat the geo-blocking used with the HLS TV streams.

3. On-demand Radio

The BBC has removed WMA streams for on-demand radio programmes. That should affect few, if any, users. The BBC also has announced that RTMP streams for on-demand radio programmes will disappear in the future, though no timetable has been given. For the present, RTMP (i.e., flashaac recording modes) is the default format used by get_iplayer, though the default format will switch to HLS in a future version.

get_iplayer now supports the direct download AAC files that are available for a subset of on-demand radio programmes. They are .m4a files, but you can use --aactomp3 to convert them if desired. Where these files are available, they can be downloaded using --radiomode=ddlaac. These files are not available for many programmes, and may be disappearing, so are not included in the default modes for radio.

The BBC has removed (or hidden) the 320k HLS AAC streams for Radio 3 on-demand programmes. 320k RTMP (Flash AAC) streams are still available.

The flashaudio mode (Flash MP3) has been removed. The BBC no longer uses it for regional and local radio.

4. On-demand TV

The BBC is operating a new(ish) CDN for HLS on-demand TV streams. This CDN is not yet supported by get_iplayer. As a result, if you are using HLS recording modes for TV programmes, you may find that only one stream is available for each mode rather than the usual two.

5. Other

  • Restored ability to search for audio described programmes using --versionlist=audiodescribed (with default ION data feeds).
  • Implemented numbering scheme for programmes with episodes split over multiple broadcasts. A letter is appended to the episode number in <senum> (e.g., s18e05a), and the letter is available in <episodepart> substitution parameter. You will probably never encounter this unless you download Silent Witness.
  • Added --exclude-supplier option. This has only one potential use: When the Level3 CDN (used only for HD TV streams) is causing problems by dropping connections or truncating downloads (as was the case for most of February), use --exclude-supplier=level3 to bypass it and use the alternate CDN.
  • The rtsp recording modes have been removed. The streams are no longer available.
  • Programme clips now have full metadata applied.
  • Did some minor cleanup of Kodi .nfo metadata output. See issue #139 for details.

Fixed

  • Fixed a problem which caused "No programme versions found" error even though default versions were available.
  • Fixed a problem which caused audiodescribed or signed versions of some programmes to be downloaded even though default versions were available.
  • Fixed programme runtime value in Kodi/Freevo XML metadata files (now in minutes rather than seconds). Added <runtime> substitution parameter for new value.
  • Fixed a Web PVR problem where some Unicode punctation characters caused recording and PVR queuing to fail.
  • Fixed a problem that prevented downloading of BBC archive programmes. Archive programmes require the old mediaselector/4 API to locate media streams. get_iplayer now attempts to do this automatically, but if any archive downloads fail, try again with get_iplayer --url=<archive page> --mediaselector=4.
  • Fixed a problem where self-update would needlessly fail when get_iplayer script was read-only.
  • Fixed missing episode titles for some programmes with --playlist-metadata.

Details

Issues closed in get_iplayer 2.92

Commit log for get_iplayer 2.92

Notes

On --playlist-metadata

The --playlist-metadata option was implemented as a fallback mechanism to locate stream information and programme metadata in case the new method implemented in 2.91 had any problems. For a handful of programmes, a bug in 2.91 prevented the stream information from being located ("No programme versions found" error), so --playlist-metadata was required to download those programmes. That problem should be fixed now. If you use --playlist-metadata for every download, don't. If you have --playlist-metadata saved in your preferences, remove it. If no further related bugs are reported, the --playlist-metadata option will be removed in the next release.

On "default" programme versions

In the BBC metadata, programme versions may have numerous labels: "technical", "original", "shortened", "editorial", etc. get_iplayer attempts to find the longest one and use it as the "default" version, i.e., the non-signed, non-audiodescribed version of a programme downloaded by default. The BBC metadata doesn't always support finding the longest version, in which case the first non-signed, non-audiodescribed version found is used as default. If there is no default version, the signed or audiodescribed version will be downloaded, if present. Use --versionlist=default to prevent a signed or audiodescribed version from being downloaded. If for some reason a non-signed, non-audiodescribed version exists, but a default version is not detected, you can download a specific version with, e.g., --versionlist=original. Use --info to see the versions available.

Install/Upgrade

Installation information for all platforms can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Linux/Unix

Linux/Unix packages are maintained by volunteers and may not be updated for a short time after a new release of get_iplayer. Until then, use the manual installation instructions at the link above.

Windows

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will update the following components to the indicated versions:

Component Version Notes
get_iplayer main scripts 2.92 includes both CLI and Web PVR Manager

After installing, immediately refresh all your tv/radio cache data:

get_iplayer --refresh --type=tv,radio,livetv,liveradio

For the Web PVR, select the equivalent "Programme type" options and click "Refresh Cache". After the refresh, de-select the options you don't want to use for searching.

More Information

See get_iplayer wiki

get_iplayer 2.91 Release Notes

Read This First

Some changes in 2.91 make use of the XML::Simple Perl module, used for parsing XML data from the BBC. The module is not yet a hard requirement, so if it is not installed, get_iplayer will print a warning and skip the related sections of code. To reiterate: the XML::Simple module is NOT required for get_iplayer to function, though it may be required in a future release.

The XML::Simple module is installed by the Windows installer. If you have followed the Linux/Unix/OSX installation instructions in the GitHub wiki, you will have installed the module. To check if you have the module installed, run the following at a command prompt:

perl -MXML::Simple -e 1

If the command returns without printing an error message, you have the module installed. If not, use the link below to navigate to the installation instructions for your system.

Installation/Upgrade

Installation information for all platforms can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Linux/Unix

It may take some time for get_iplayer 2.91 to be packaged for your system. Until then, use the manual installation instructions at the link above.

Windows

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

From get_iplayer 2.90, the installer will update the following components to the indicated versions:

Component Version
get_iplayer main script 2.91

Changes in get_iplayer 2.91

1. Metadata changes

The extraction of programme metadata for tagging has been re-implemented to replace the loss of BBC data feeds. The new implementation relies on the XML::Simple Perl module (see above). If the module is not installed, get_iplayer will fall back to the stopgap metadata implementation introduced in 2.89. If you wish to revert to the 2.89 metadata implementation explicitly, use --playlist-metadata.

NOTE: The 2.89 metadata implementation is likely to be removed in a future release. At that time, XML::Simple and JSON modules will become a hard requirement for get_iplayer. Any such future changes will be announced in advance.

NOTE: You cannot set --playlist-metadata in the Web PVR.

Brand and series parsing

iPlayer programmes have an associated brand name - a top-level name - and an optional series title that varies from series to series, along with an episode title. get_iplayer now parses the brand and series titles separately, and there are now <brand> and <series> substitution parameters for use with --fileprefix and --subdir-format. The <brand> and <series> parameters are concatenated as the <name> parameter. Note that <series> is not always available. A few examples are shown below:

brand series name nameshort episode episodeshort
15 Minute Drama Carol 15 Minute Drama: Carol 15 Minute Drama 1. Episode 1 Episode 1
The Archers The Archers The Archers 17524. 30/11/2014 30/11/2014
Doctor Who Series 8 Doctor Who: Series 8 Doctor Who 12. Death in Heaven Death in Heaven
Horizon 2000-2001 Horizon: 2000-2001 Horizon Vanished: The Plane That Disappeared Vanished: The Plane That Disappeared

Subdirectory naming

If you use --subdir, you may find that the subdirectory names in your output directory for anthology series like "15 Minute Drama" become noticeably longer with the brand/series parsing described above, e.g. 15_Minute_Drama_Heinrich_Boll_-_The_Lost_Honour_of_Katharina_Blum. If you don't like that, use --subdir-format="<nameshort>" or --subdir-format="<brand>" for shorter subdirectory names.

NOTE: You cannot set --subdir-format in the Web PVR Manager.

Short episode title used for tagging

get_iplayer is now better able to determine episode numbers for programmes. This means that episode number prefixes are much more likely to appear in the episode field. As a result, get_iplayer now uses the episodeshort field by default for track titles. Since the episode numbers will be saved in a separate tag, the assumption is that you do not require the episode number in track titles. To change that behaviour, see the new tagging options below.

2. New tagging options

Several new tagging options have been introduced to allow more flexibility in populating album/show titles and track titles. Examples of the new options are shown below using this metadata:

brand series name nameshort episode episodeshort
15 Minute Drama Carol 15 Minute Drama: Carol 15 Minute Drama 1. Episode 1 Episode 1

Default:

album/show title track title
15 Minute Drama: Carol Episode 1

With --tag-longepisode: Use episode instead of episodeshort for track title

album/show title track title
15 Minute Drama: Carol 1. Episode 1

With --tag-longtitle: Prepend series (if available) to track title

album/show title track title
15 Minute Drama: Carol Carol: Episode 1

Combine --tag-longtitle with --tag-shortname: Use nameshort instead of name for album/show title

album/show title track title
15 Minute Drama Carol: Episode 1

Another new option has been introduced to allow reformatting dates in track titles. An example is shown below using this metadata:

brand series name nameshort episode episodeshort
The Archers The Archers The Archers 17524. 30/11/2014 30/11/2014

Default:

album/show title track title
The Archers 30/11/2014

With --tag-isodate: Use ISO8601 dates (YYYY-MM-DD) in album/show names and track titles

album/show title track title
The Archers 2014-11-30

NOTE: You cannot set any tagging options in the Web PVR Manager.

3. Cache changes

Prevent cache file writes if errors encountered in data download

If the new --refresh-abortonerror option is set, no changes will be made to a cache file if any of the associated feeds fail to download. Each feed gets 3 download attempts, and the full URL of the feed is printed on failure. You can use --refresh-exclude to temporarily exclude problem feeds, though no programmes for the associated channel will be saved in the cache.

NOTE: You cannot set --refresh-abortonerror in the Web PVR Manager.

Brand and series parsing

get_iplayer now parses the brand and series titles separately for a programme when populating its cache, similar to the scheme described above for programme metadata. The brand and series (if present) titles are concatenated to populate the name field in the cache. It should now be easier to search for programmes with different brand and series titles without using --fields=name,episode or --long. An example:

name episode
pre-2.91 15 Minute Drama Carol: Episode 1
2.91+ 15 Minute Drama: Carol 1. Episode 1

Category information for radio programmes

You can now use --refresh-feeds-radio=ion to populate the cache with category information for radio programmes, thus allowing search by category. However, this comes at a price: The ION feeds are MUCH slower that the default radio feeds, many repeats will be missing for Radio 3, Radio 4 and World Service, and virtually all recent programmes from Radio Nan Gaidheal/Cymru/Wales/Foyle/Ulster/2/6Music (and possible others) will be missing. There may be other yet-to-be-discovered lacunae in the cache data. These alternate feeds were implemented for testing purposes, but use them if you want to do category searches and can live with the limitations. Also keep in mind that the BBC are likely to kill the ION feeds at any time without warning.

You can use --refresh-feeds-tv=ion, but it is completely redundant: the ION feeds are already the default for TV.

NOTE: You cannot set --refresh-feeds{-radio,-tv} in the Web PVR Manager.

Exclude channel groups from cache

As mentioned above, the ION feeds for radio are slow. If you find them to be particularly slow on your system, you may be able to speed up cache refreshes a bit by excluding groups of channels using the new --refresh-exclude-groups-radio option. The option accepts a comma-delimited list that may contain any of three values: national, regional, local. The groups are defined as:

Radio groups

national: Radio 1-5, World Service, digital-only stations
regional: Radio Wales/Cymru/Ulster/Foyle/Scotland/Nan Gaidheal
local   : All other radio

TV groups

national: BBC One/Two/Three/Four/CBBC/CBeebies/News/Parliament
regional: BBC Alba, S4C
local   : All other TV (none at present)

Although you can use --refresh-exclude-groups-tv, it will have little effect given the above groupings (unless you actually want to exclude the national channels).

Example: If you were only interested in programmes on national radio stations, you might use:

--refresh-exclude-groups-radio="regional,local"

You can also use --refresh-exclude to further winnow your cache data selection. For example, if you were only interested in programmes on national radio stations, but not programmes on the World Service, you could use:

--refresh-exclude-groups-radio="regional,local" --refresh-exclude="World Service"

Note that --refresh-exclude-groups{-radio,-tv} are applied before --refresh-include and --refresh-exclude.

NOTE: You cannot set --refresh-exclude-groups{-radio,-tv} in the Web PVR Manager.

4. HLS recording modes

The BBC have announced that they will be removing WMA and RTMP streams for live and on-demand audio in favour of Apple HLS (HTTP Live Streaming). They are already using HLS for live/on-demand radio and on-demand TV, and Adobe HDS (HTTP Dynamic Streaming) for live TV, so it's not inconceivable that all RMTP streams may disappear in the near future. HLS streaming is not yet the default for get_iplayer, except for live TV (see below), but it will be the default - for radio at least - in the near future, so please give it a try so that any problems can be identified. HLS streaming requires ffmpeg or avconv.

HLS recording modes analogous to the existing Flash modes have been implemented:

tv     : hlshd hlsvhigh hlshigh hlsstd hlslow
radio  : hlsaachigh hlsaacstd hlsaaclow
aliases: hls hlsdefault hlsbest hlsvbetter hlsbetter hlsgood

The output file formats are the same as for the Flash streams: TV is MP4 with H264 video/AAC audio, radio is M4A with AAC audio. If you use --raw or stop recording manually, you will be left with a .ts (MPEG Transport Stream) file in your output directory, not a .flv file as with the flash modes.

You can use --aactomp3 with HLS streams.

Caveats

The hls modes use the streams employed for mobile devices, so no on-demand HD TV streams are known to be available. The 320k Radio 3 live stream also is not available. You will need to use the existing flash modes to access those streams.

5. Live TV

Live TV streaming has been restored. Before using it, you must refresh your livetv cache:

get_iplayer --refresh --type=livetv

In the Web PVR Manager, select "Live BBC TV" in "Programme types" and click "Refresh Cache". When the refresh is complete, deselect "Live BBC TV" in "Programme types".

Live TV with HLS streams

get_iplayer now uses the live TV HLS streams employed for mobile devices. The same --modes aliases (best, default, better, good) can still be used, but there are no longer any flash modes for live TV. Instead, there are equivalent hls modes: hlsvhigh, hlshigh, hlsstd, hlslow. Live TV recording produces a .ts (MPEG Transport Stream) file in your output directory, not a .flv file as with the flash modes in earlier releases. The stream formats are still the same: H264 video/AAC audio,

Live TV HD streams via HDS workaround

There are no HD or SD streams available for live TV using the mobile HLS streams described above. However, it is currently possible to get HD/SD streams for 3 channels (BBC One/Two/Three) by using the --hds-livetv option. Other HD/SD streams may be available in future releases. The --hds-livetv option instructs get_iplayer to use a different data source (HDS manifests - files with stream information) to find the HD/SD streams, which are downloaded via HLS. get_iplayer does not support HDS itself - it merely uses HDS data to find the streams. With --hds-livetv, you can use the hlshd mode for a HD 1280x720 3500kbps HD stream, and the hlssd mode for a 1024x576 2000kbps SD stream. Or simply use the best alias. The --hds-livetv option requires the XML::Simple Perl module described above.

NOTE: Consider the --hds-livetv feature as experimental and subject to removal in a future release.

NOTE: You cannot set --hds-livetv in the Web PVR Manager.

Caveats

The live TV streams are re-encoded during download due to problems with timestamp discontinuities in the video stream. This requires more system resources than merely copying streams over the network. Although it is now possible to record and stream live TV simultaneously, be aware that you will be encoding 2 streams (1 to disk, 1 to player), which will require yet more system resources. If your system lacks the necessary horsepower, you may find glitches or gaps in your recording.

If you use avconv instead of ffmpeg, e.g., on Debian/Ubuntu/Mint, there will be no download progress display during recording of live TV streams by default. get_iplayer suppresses ffmpeg/avconv warning messages related to the above-mentioned timestamp issues. Unlike ffmpeg, avconv cannot display download progress with those messages suppressed. You can use --hls-livetv-opts="-loglevel info" to see avconv progress output, but that will only reveal a continuous stream of warning messages that will swamp the progress display.

As in earlier versions of get_iplayer, recording live TV on Windows is not recommended because the recording won't stop when you close the browser window (Web PVR Manager) or press Ctrl-C (get_iplayer console window). If you know how to use Task Manager to kill processes, and you know which processes to kill, then you can stop recording that way. This caveat also applies to recording live TV in the Web PVR Manager with avconv on other platforms. You will need to kill the relevant processes from a command prompt. You will also notice that the Web PVR Manager recording window will fill up with progress messages from ffmpeg instead of the more compact display of hash symbols formerly generated by rtmpdump.

6. Treatment of apostrophes and quotes in --fileprefix and --subdir-format in options file

Earlier versions of get_iplayer erroneously stripped apostrophes and quotes from --file-prefix and --subdir-format settings stored in the user options file. This has been changed in 2.91. The difference is shown below for this example setting with apostrophes:

fileprefix '<nameshort> <episodeshort> <pid>'
version filename
pre-2.91 /tmp/BBC_Radio_1s_Essential_Mix_Warp_25_b04t92qd.EXT
2.91+ /tmp/'BBC_Radio_1s_Essential_Mix_Warp_25_b04t92qd'.EXT

The same applies for quotes:

fileprefix "<nameshort> <episodeshort> <pid>"
version filename
pre-2.91 /tmp/BBC_Radio_1s_Essential_Mix_Warp_25_b04t92qd.EXT
2.91+ /tmp/"BBC_Radio_1s_Essential_Mix_Warp_25_b04t92qd".EXT

Do not use apostrophes or quotes in your options file as shown above. They are unnecessary, and you almost certainly don't want them in your file or directory names. Quotes are also illegal in Windows file names and from 2.91 will break get_iplayer downloads if stored in the user options file. Unfortunately, get_iplayer doesn't prevent you from saving apostrophes or quotes in your options file if you are determined to do so.

7. Other changes in get_iplayer 2.91

  • Added BBC Sports and S4C programmes to cache data, S4C to live TV
  • Added accessibility improvements for Web PVR Manager that make it easier to use with screen readers. The changes are described here and here. Thanks to J Teh.
  • The <desc> substitution parameter now contains the brief programme description from the cache. A new <desclong> parameter has been added for the full programme description. Any white space and line breaks are stripped from <desclong> in --info output, but are retained in the various XML metadata files.
  • Added additional thumbnail sizes. --thumbsize can now be in range 1-11 or one of width values in: 86,150,178,512,528,640,832,1024,1280,1600,1920.
  • Switched to mediaselector/5 API as default for retrieving stream data. In the unlikely event you wish to revert to mediaselector/4 API, use --mediaselector=4
  • get_iplayer now works in Cygwin

Fixes in get_iplayer 2.91

  • Fixed download failures for Strictly Come Dancing and other programmes where main audio/video is preceded by a "competition closed" warning.
  • Fixed download failure for Radio 2, 6 Music and regional radio programmes that were removed from the mediaselector/4 API by the BBC.
  • Fixed failure to find default version for some archive programmes
  • Fixed problem with --whitespace being applied to filenames when not configured.
  • Fixed incorrect handling of ampersands and semi-colons in Web PVR Manager

Changelog

The full log of changes since v2.90 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.90...v2.91

get_iplayer 2.89-2.90 Release Notes

NOTE: get_iplayer v2.88 was withdrawn before general release. get_iplayer v2.90 was a quick repair to 2.89. v2.90 is the successor to v2.87.

Read This First

There were major changes in the recent 2.87 release. If you didn't update to 2.87, read the release notes now. Then read this. And again for good measure.

Downloading via PID

There have been major changes in 2.89 (see below). From now on, you are more likely to be required to use programme identifiers (PIDs) to download programmes than in the past. Now is the time to acquaint yourself with this mode of operation by reading this and this (external link). Then try it yourself before asking for help. It's documented and involves only a few extra keystrokes, so it should not present an obstacle to you. The other thing you must remember about downloading via PID is that you must include --type=radio in your command when downloading radio programmes with --pid.

And no, this doesn't work for the Web PVR Manager. If you don't want to learn how to use your command prompt, you can use the Quick URL box. Paste in the programme's episode page URL from the iPlayer site and click Record. If you are downloading a radio programme, you must check the "BBC Radio" box for Programme type.

See information below about downloading multiple PIDs.

Installation/Upgrade

Installation information for all platforms can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

After installing, immediately refresh your TV and radio cache information:

get_iplayer --refresh --type=tv,radio

Linux/Unix

Note that it may take a long time for get_iplayer 2.89 to be packaged for your system. Until then, use the manual installation instructions at the link above.

Windows

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The embedded version of Perl was updated for get_iplayer 2.87, so previous installers will not work.

The installer will update the following components to the indicated versions:

Component Version
get_iplayer main script 2.89

Partial restoration of search functions broken by removal of BBC data feeds in late Oct 2014

As you're probably aware, the BBC killed the data feeds get_iplayer used to populate its programme data cache. The cache is what supports searching in get_iplayer, and thus also supports the PVR functionality. Those functions have been partially restored, but you consider those repairs as only a stopgap solution until the BBC blow up get_iplayer again.

You should now once again be able to search for TV and radio programmes from the the past 7 days. However, there are serious limitations you should be aware of:

  • Most programmes should be available, but some will almost certainly be missing. The data sources now in use cannot be considered to be as reliable as the previous data feeds.
  • Cache refreshes are noticeably slower than with the previous data feeds. You may wish to acquaint yourself with the --refresh-include and --refresh-exclude options if you need to winnow your programme data cache.
  • Some cache information may be missing or incorrect. Further changes to get_iplayer may be necessary, but it is not possible to guarantee that the new data sources will contain the same information as the previous data feeds.
  • Metadata fields such as episode and series numbers may be missing. In the absence of the previous data feeds, this information may no longer be available. Use caution if customising --fileprefix for your output files. In particular, make sure that unexpected values of <senum> don't cause problems. The default value of --fileprefix contains <pid> in avoid to avoid collisions.
  • No episode thumbnails are cached for radio programmes - they are no longer available. Station logos are used as a substitute. However, the episode thumbnail should be applied when a radio programme is downloaded. You will only notice this if you use the Web PVR Manager. Some old episode thumbnails my remain in your cache for a few days until those entries expire.
  • It is not possible to search for audiodescribed versions of TV programmes. You can still download audiodescribed versions, but you'll have to search for them on the iPlayer site to find the PIDs. Signed versions of TV programmes should still be searchable, but check the iPlayer site if in doubt.
  • It is not possible to search radio programmes by category (--category option). TV programmes still have category information, though it may be less complete than before. If you have PVR searches that rely on category information, check them ASAP and adjust as necessary. In general, it would be wise for you to stop using category information in searches.
  • Radio programmes are tagged with only a top level category (e.g., Comedy or Drama). Subcategories may return in the next release.

Programmes can be downloaded via PID if they are not available in your search results.

What happens when the BBC blows up get_iplayer again?

You should expect this to happen, and sooner rather than later. If the new programme data sources are removed, do this:

get_iplayer --prefs-add --refresh-feeds=schedule
get_iplayer --refresh --type=tv,radio

and (hopefully) continue as normal. This will switch get_iplayer to use different sources for programme data. After the switch, searching will be even more limited:

  • Some programmes from the past 7 days will almost certainly be missing. This alternate data source should be reliable, but is limited compared the previous data feeds.
  • Cache refreshes will be a LOT slower. You will want to acquaint yourself with the --refresh-include and --refresh-exclude options if you need to winnow your programme data cache.
  • Some cache information may be missing or incorrect. Further changes to get_iplayer may be necessary, but it is not possible to guarantee that these alternate data sources will contain the same information as the previous data feeds.
  • Metadata fields such as episode and series numbers may be missing. In the absence of the previous data feeds, this information may no longer be available. Use caution if customising --fileprefix for your output files. In particular, make sure that unexpected values of <senum> don't cause problems. The default value of --fileprefix contains <pid> in avoid to avoid collisions.
  • It will not be possible to search for audiodescribed OR signed versions of TV programmes. You will still be able to download audiodescribed and signed versions, but you'll have to search for them on the iPlayer site to find the PIDs.
  • It will not be possible to search radio OR TV programmes by category. If you have PVR searches that rely on category information, you will need to check them ASAP and adjust as necessary.

NOTE: This fallback mechanism may be killed by the BBC before it can be used by get_iplayer, so there is no guarantee it will work when the time comes.

Programmes can be downloaded via PID if they are not available in your search results.

What happens when the BBC blows up get_iplayer yet again?

No idea. All the data sources now employed by get_iplayer to support programme searches are very likely to disappear in the near future. A number of different solutions have been proposed, but much work needs to be done. It is likely that get_iplayer's search capabilities will be greatly reduced, or perhaps removed altogether in favour of a separate application. There are further changes in store at the BBC which may kill get_iplayer completely, so only time will tell.

If you have some contribution to make towards future solutions, subscribe to the get_iplayer mailing list and have your say:

https://lists.infradead.org/mailman/listinfo/get_iplayer

What about BBC podcasts?

get_iplayer's podcast indexing and search functions were never affected. They work just as they always have.

Other changes in get_iplayer 2.89

Support for entering multiple PIDs for downloading with --pid

You can now enter multiple PIDs in two ways:

Comma-separated list

get_iplayer --pid PID1,PID2,PID3

Multiple --pid options

get_iplayer --pid PID1 --pid PID2 --pid PID3

Remember to include --type=radio with --pid when downloading radio programmes.

You can also do the same thing with episode page URLs:

get_iplayer --url URL1,URL2,URL3
get_iplayer --url URL1 --url URL2 --url URL3

Remember to include --type=radio with --url when downloading radio programmes.

Prefer --pid to --url where possible - it is slightly quicker and more reliable. And no, you can't download multiple PIDs or multiple URLs with the Web PVR Manager.

Other fixes in get_iplayer 2.89

  • Fixed "default" is not defined in %Encode::EXPORT_TAGS error for Perl 5.10.0 and below
  • Fixed Malformed UTF-8 character error generated after upgrading via self-update facility (get_iplayer -u)
  • Fixed bad metadata tags created due to disappearance of data feeds. However, some metadata fields may still be missing for some programmes.
  • Fixed missing thumbnails for programmes < 7 days old downloaded via PID. However, some thumbnails may still be missing for some programmes.
  • Fixed live TV streaming broken by BBC removal of TV simulcast pages. However, live streaming is unreliable at best, so it still may not work for you.

Changelog

The full log of changes since v2.87 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.87...v2.90

get_iplayer 2.87 Release Notes

Read This First

The BBC recently made some changes to the iPlayer service and web site that affected get_iplayer. This is what you need to know after upgrading to get_iplayer 2.87:

  • Programmes more than 7 days old are NOT available for caching by get_iplayer and therefore will NOT appear in search results.

  • It DOES NOT MATTER that a programme is still available on the iPlayer site up to its 30-day expiry. Once 7 days pass from its last broadcast, it is no longer available for caching by get_iplayer.

  • You MUST download programmes more than 7 days old directly via PID or URL. If you don't know what that means, it's time to refresh yourself here.

  • get_iplayer 2.87 or higher is REQUIRED to download programmes more than 7 days old via PID or URL. If you're using your own hacked version of get_iplayer, you'll need to do some more hacking.

  • There are a few exceptions to the 7-day rule, such as series like Doctor Who that have a full series catch-up policy. The episodes of those series remain available until the final episode reaches its expiry date. But again, once 7 days pass from the broadcast of the final episode you should expect those episodes to disappear from the get_iplayer cache.

  • If a programme you're looking for does not appear in get_iplayer search results, check it on the iPlayer site BEFORE reporting it as an error. If the programme is more than 7 days old (or its availability is shown as less than 23 days), you must download it directly via PID or URL.

  • When in doubt, use the programme PID. All available programmes can be downloaded via PID regardless of whether or not they are in the get_iplayer cache.

      TV: get_iplayer --pid=<PID> ...
      Radio: get_iplayer --pid=<PID> --type=radio ...
    

Installation/Upgrade

Installation information for all platforms can be found here:

Installation guides

WARNING: Do not use the self update facility (get_iplayer -u). It will result in a script that cannot be executed. Follow the manual installation instructions at the link above.

WARNING: get_iplayer 2.87 is broken with Perl v5.10.0 and below. Until the next release, see this post for a description of the problem and a solution:

https://www.mail-archive.com/[email protected]/msg06034.html

Linux/Unix

Note that it may take some time for get_iplayer 2.87 to be packaged for your system. Until then, use the manual installation instructions at the link above.

Windows

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The embedded version of Perl has been updated for get_iplayer 2.87, so previous installers will not work.

The installer will update the following components to the indicated versions:

Component Version
get_iplayer script 2.87
Perl support 4.9 [Perl 5.18]
MPlayer svn-r32050 [required downgrade]
FFmpeg 2.2.3
VLC 2.1.5
RTMPDump 2.4-20140302-git-79459a2
AtomicParsley 0.9.6-hg109.9183fff907bf

Note the required downgrade of MPlayer.

Changes in get_iplayer 2.87

Adaptations for BBC changes in early Oct 2014

  • Implemented downloading for programmes > 7 days old
  • Implemented metadata capture for programmes > 7 days old
  • Restored downloading with iPlayer Radio URLs

As noted above, programmes more than 7 days old must be downloaded via PID or URL.

--whitespace now only controls white space, and other file naming changes

In previous versions of get_iplayer the --whitespace option not only preserved white space in file names, but also retained non-ASCII characters and some punctuation. This was more by accident than design, but has now been tightened up. --whitespace now only controls whether or not white space is retained in file names (off by default).

New options have been introduced to enable the former behaviour of --whitespace and retain non-ASCII characters and punctuation in file names. They are not described here because their use is strongly - nay, super extra extremely strongly - discouraged. You will find them listed in the Output section of the options list here.

Just say no to non-ASCII characters in file names.

You are strongly recommended to stick to the default file name formulation, with or without white space. By default, get_iplayer generates pure-ASCII file names without white space or punctuation, which is the safest and most portable option. get_iplayer 2.87+ does a slightly better job of converting file names to ASCII by stripping any diacritical marks and preserving the base characters.

Just say no to non-ASCII characters in file names

If you use a system locale outside Western/Central Europe or the Americas with non-UTF8 encoding, you will likely encounter problems if you attempt to retain non-ASCII characters in file names because those characters won't won't map to your locale's encoding.

Just say no to non-ASCII characters in file names

--fatfilename is now always applied on Windows and --hfsfilename is always applied on OSX. Both options may be used on Linux/Unix if desired.

--info now short-circuits --pid

The --pid option previously invoked an immediate download even if --info was specified. Now --info will short-circuit that behaviour and only display metadata. If --pid is used without --info, it will revert to previous behaviour and start an immediate download. This change was made so that you view the metadata for programmes older than 7 days without triggering a download, as you can for programmes in the cache.

--{metadata,subtitles,thumbnail}-only now work with --pid for programmes not in cache

When --metadata-only, --subtitles-only or --thumbnail-only was used with --pid, get_iplayer would stop if the indicated PID was not found in its cache. Now those options will perform their usual functions with --pid for programmes not in the cache. This can be used for all programmes, including those more than 7 days old.

--swfurl option

Using --swfurl="<URL>" provides a means to quickly update to a new Flash player URL for rtmpdump if the value embedded in get_iplayer should become obsolete before a new release. --swfurl=<URL> is a shortcut for --rtmp-tv-opts="--swfVfy=<URL>" --rtmp-radio-opts="--swfVfy=<URL>".

Return non-zero exit code if downloads fail

get_iplayer now returns a non-zero exit code when one or more downloads fail. This is for use when scripting get_iplayer externally, e.g., from shell script or batch file. Do not depend on the actual value of the exit code, only that it is non-zero. It will usually be the number of failed downloads, but not always.

--check-durationoption

The --check-duration option can help if you have problems with rtmpdump or mplayer truncating your recordings without signalling an error to get_iplayer. With this option enabled, get_iplayer will print a message similar to the following for each output file:

INFO: Duration check: recorded: 00:01:58 expected: 00:02:00 difference: -00:00:02 file: /Users/nobody/get_iplayer/Bells_on_Sunday/Bells_on_Sunday_-_Ripon_Cathedral_b04f8k3x_default.m4a

You can inspect the difference between the recorded duration and the expected duration to gauge whether of not it looks like a truncated recording. The recorded duration will almost always differ from the expected duration by a small amount, so human judgement is required to evaluate any difference.

--quiet is quieter and --silent is silent (almost)

The --quiet and --silent options were previously synonyms, but are now separate options. With --quiet specified, get_iplayer now will only print messages it generates (usually prefixed with INFO:, WARNING: or ERROR:). The output from all the helper applications (rtmpdump, ffmpeg, etc.) is suppressed, which was not the case in earlier versions of get_iplayer. With --silent specified, get_iplayer suppresses all output except for the PVR report messages, which look like:

New tv programme: 'Dipdap - 5. Letter', 'Series in which a drawn line creates endless challenges and surprises for the unsuspecting little character, Dipdap.   The Line draws Dipdap a letter. He goes to post it but strong winds get in the way.'

The PVR report messages are displayed for the benefit of users running get_iplayer via cron in order to have a visible report of activity in a PVR run.

Use of --quiet and --silent is strongly discouraged. The most likely causes of download problems relate to rtmpdump, so it could be counterproductive to suppress its output. The --silent option cannot be saved in preferences or presets.

NOTE: In order to suppress the default search results generated by get_iplayer --refresh use --silent. This is a change from 2.86. Do not use --silent when using --refresh in conjunction with --get or when performing a search along with a cache refresh.

--verbose and --debug now applied to ffmpeg/avconv

A small amount of additional output from ffmpeg/avconv will now be displayed when --verbose or --debug is specified.

>>Important note re: obsolete FFmpeg versions<<

In order to apply --quiet, --silent, --verbose or --debug to ffmpeg/avconv, get_iplayer employs its -loglevel parameter. This parameter is not available or does not function properly in ancient versions (< 0.7) of ffmpeg/avconv. If you cannot use a modern version of ffmpeg/avconv for some reason, you must specify --ffmpeg-obsolete if you also specify --quiet, --silent, --verbose or --debug. This will prevent those options from being applied to ffmpeg/avconv.

Support for non-ASCII characters in search arguments and results

get_iplayer can now correctly process non-ASCII characters in search arguments and display them in results. However, there is VERY little use for non-ASCII characters in search arguments. Only a tiny fraction of BBC programmes have non-ASCII characters anywhere in their searchable metadata, and you can almost always formulate successful searches without them. This feature was implemented primarily to fix bugs in the Web PVR Manager, where the user isn't always able to control the search arguments used.

In order to support non-ASCII characters, get_iplayer is now character encoding-aware, meaning that it depends on knowing the encoding used for your search arguments and how your console expects output to be encoded. These encodings are almost always different between Windows and Linux systems, even for similar location and language. In virtually every case, get_iplayer should be able to automatically detect the necessary encodings at run time. In the unlikely event you ever need to adjust the encodings detected by get_iplayer, more information can be found here.

There are many possible permutations of locale/language/encoding. get_iplayer is developed to work with iPlayer, which is a UK-based service that uses the English language. Inasmuch as get_iplayer has any sort of support policy, there is no promise to support Windows system locales other than UK English (with default code page settings) or Linux/Unix/OSX locales other en_GB.UTF-8.

Web PVR Manager now speaks UTF-8

As part of implementing support for non-ASCII characters, communication between the Web PVR Manager and get_iplayer and communication between the Web PVR Manager and the user's browser now uses UTF-8 encoding exclusively, on all platforms.

This should be transparent to users, though there are some edge cases to be aware of. For example, if you use Linux with a single-byte encoding in your system locale (e.g., ISO-8859-1), and you create files with non-ASCII characters in their names with the get_iplayer CLI, you won't be able to play those files using the PlayFile link in the Web PVR Manager because the file name will be encoded as UTF-8, which won't match the encoding used in the file name on disk. The Web PVR Manager itself only produces pure-ASCII file names, so do likewise with the CLI if you want to share files between them.

Just say no to non-ASCII characters in file names

Fixes in get_iplayer 2.87

  • Channel names and schedule URLs updated to match iPlayer site (thanks Jon Davies)
  • Fixed bug in generation of Freevo/MythTV XML metadata files (thanks Matthew Boyle)
  • Fixed bug that resulted in unplayable podcasts on Windows
  • Fixed "Wide character in print" warnings generated by typographer's quotes in search results
  • Fixed improper decoding of output path on Windows system options file when path contained non-ASCII characters
  • Allow overriding rtmpdump --timeout option via --rtmp-{tv,radio}-opts
  • Values for --versions are now case-sensitive (must be lower-case)
  • Fixed creating/editing PVR jobs with non-ASCII characters in programme names

Changelog

The full log of changes since v2.86 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.86...v2.87

get_iplayer 2.86 Release Notes

Installation/Upgrade

Installation information for all platforms can be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Please note that it may take some time for get_iplayer 2.86 to be packaged for your particular system.

Windows

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will update the following components to the indicated versions:

  • get_iplayer main script: 2.86
  • ffmpeg: 2.1.4

Changes in get_iplayer 2.86

Fix for missing thumbnails

The BBC recently changed the way that programme thumbnail images are generated. For some programmes, this change meant that get_iplayer produced a thumbnail that was a grey rectangle rather than the appropriate image. get_iplayer has been patched to work around this problem. NOTE: Thumbnails may still appear as grey rectangles in the Web PVR Manager search results until the old thumbnail URLs are flushed out of your caches over time. However, the downloaded files should have the correct thumbnail embedded.

Support for iPlayer Radio Site URLs

You can now use URLs in the form https://www.bbc.co.uk/programmes/b007k447 on the get_iplayer command line to download radio programmes. These URLs may also be used in the "Quick URL" field of the Web PVR Manager. The URLs should correspond to episode player pages in the iPlayer Radio site (https://www.bbc.co.uk/radio/). Note that there are other types of pages in the site that have the same URL form. This feature relies on HTML scraping and should therefore be regarded as fragile. If it fails, you should take the PID from the end of the URL and use it with --pid, e.g., get_iplayer --type=radio --pid=b007k447.

Zero-padding in <episodenum> and <seriesnum>

In --fileprefix or --subdir-format, you can now use parameters in the form <00episodenum> or <00seriesnum> to produce values padded with zeroes. Padded string width is determined by number of zeroes, so the above would pad "5" to "05". If you are also using an optional prefix character, it must come before the padding indicator, e.g., <.00episodenum>.

AVI container option for DivX files

You may use --avi to transcode downloaded video files into a AVI container (.avi file). The purpose of this new option is enable production of DivX files for older hardware media players that cannot handle MP4 containers. --avi does not automatically produce a DivX output file. It must be used in conjunction with --ffmpeg-tv-opts. For example, converting a flashvhigh download while retaining the approximate input bit rates might look like:

get_iplayer --get 65 --mode=flashvhigh --ffmpeg-tv-opts="-c:a libmp3lame -c:v mpeg4 -b:a 96k -b:v 1404k" --avi

The above is just a rough example - you will need to work out the correct parameters for your own needs. See also:

https://trac.ffmpeg.org/wiki/Encode/MPEG-4

Do not use --avi to simply re-mux the normal H.264/AAC video/audio content. If your media player cannot handle MP4 files, it is highly likely it cannot handle those stream formats.

Trim download history

If you have accumulated a very large download history file, you may want to truncate it while retaining enough history data to avoid repeat downloads of recent programmes. You can now use the --trim-history option:

get_iplayer --trim-history=N

N is an integer value >= 1 that represents the number of days to retain in your download history. All download history entries older than the --trim-history value will be deleted. You cannot use 0 to delete all download history - use all instead. Every time you run --trim-history, the previous download_history file is backed up in your profile directory ($HOME/.get_iplayer, %USERPROFILE%\.get_iplayer on Windows) as download_history.old. Only one backup version is retained.

--trim-history is a standalone option that preempts any other get_iplayer options in the command line. DO NOT add it to your preferences. --trim-history works only from the command line. It is not implemented for the Web PVR Manager.

Other Changes

  • --isodate is now applied to the value of --subdir, if present.
  • --mp3 may now be used as an alias for --aactomp3.
  • New --hfsfilename option to remove colons in output file names when --whitespace is also in use. This is a minor convenience for OSX users who don't like the fact that Finder displays colons as forward slashes.
  • New --tag-id3sync option to save ID3 tags for MP3 files in synchronised form. This provides a workaround for a Windows bug that corrupts the display of MP3 thumbnail images in Windows Explorer and Windows Media Player. This option only applies to MP3 files (local/regional radio programmes or national radio programmes converted with --aactomp3. It has no effect unless you are using the MP3::Tag Perl module (supplied by Windows installer).

Changelog

The full log of changes since v2.85 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.85...v2.86

get_iplayer 2.85 Release Notes

Installation

Installation information for all platforms may be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Please note that it may take some time for get_iplayer 2.85 to be packaged for your particular system.

Windows Installer

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will update the following components to the indicated versions:

  • get_iplayer main script: 2.85

Changes in get_iplayer 2.85

Internet Explorer 11 Compatibility

The primary purpose of this release is to propagate a change in the Windows installation that is required to make the Web PVR Manager compatible with Internet Explorer 11. The change is explained in this page.

Other Changes

  • Added support for additional subtitle format
  • Fixed CR-LF handling for programme descriptions
  • Patched to work with Perl on Synology NAS

Changelog

The full log of changes since v2.84 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.84...v2.85

get_iplayer 2.84 Release Notes

Installation

Installation information for all platforms may be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Please note that it may take some time for get_iplayer 2.84 to be packaged for your particular system.

Windows Installer

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will update the following components to the indicated versions:

  • get_iplayer main script: 2.84
  • get_iplayer Perl support: 4.7 (with Strawberry Perl 5.16.3)

You may also be prompted to update rtmpdump if your previous installation was performed within a few days after 2.83 was released. The update fixes a packaging issue. There is no functional change in rtmpdump, but accept the upgrade anyway.

Changes in get_iplayer 2.84

Subtitle Fixes and New Formats

Around mid-September 2013, the BBC began producing subtitles with a new file structure that broke get_iplayer's conversion of raw subtitles from TTML format to SRT format used by many media players. get_iplayer has been updated to accommodate the new file structure. However, with this new file structure, get_iplayer cannot ascertain changes in speaker.

A new --subsfmt option has been added to offer alternative formats for subtitles. This option accepts the following value:

compact: Leading hyphen (without line break) demarcates change in speaker. All line breaks retained. Text rendered in default subtitle colour for media player. This format typically has shorter lines of text than the default format.

The default format used if --subsfmt is omitted or has any value other than compact: Line break followed by leading hyphen demarcates change in speaker. All other line breaks removed, so lines must be wrapped by media player. Text rendered in default subtitle colour for media player. If your media player cannot wrap text, use compact format.

If you wish to switch to the compact format subtitles for a particular programme, you can re-download only the subtitles with:

get_iplayer --subtitles-only --overwrite --subsfmt=compact --get <index>

OR

get_iplayer --subtitles-only --overwrite --subsfmt=compact --pid <pid>

NOTE: This will overwrite the previous subtitles (.srt) file.

Also added --subsrequired option to prevent programme download if subtitles are unavailable or empty.

Restored Embedded Video Download

Due to changes on the BBC News site, recent embedded videos became unavailable because get_iplayer's HTML scraping did not recognise new page structures. The problem was more acute on Windows where an unrelated bug in a supporting Perl module prevented more embedded videos from downloading. Because the packaged version of Strawberry Perl required an update, a new installer was required to propagate the fixes to Windows users.

WMA Removed from Recording Mode Shortcuts

The wma recording mode has been removed from the recording mode shortcuts (good, better, best, default). On Windows, WMA recording is a less than reliable fallback when rtmpdump fails to download Flash format catch-up programmes. It can also prove confusing to users since Windows MPlayer may stop downloading a WMA stream without reporting an error.

The wma mode is still supported, but it must now be explicitly specified via --modes=wma, --radiomode=wma or --liveradiomode=wma. The previous default behaviour may be restored with --modes=default,wma. If your preferences or PVR jobs are set to use wma, they will still work as before.

New Metadata Fields

Several new metadata fields have been added:

  • category: the primary programme category (first item in categories list)
  • firstbcastdate: date portion of firstbcast
  • lastbcastdate: date portion of lastbcast

The new metadata fields may be used as substitution parameters for --file-prefix and --subdir-format.

Other Changes

  • Fixed bugs in populating firstbcast and lastbcast metadata fields
  • --fatfilename is set automatically if --whitespace is specified (Windows only)
  • 256-char output path limit now enforced for Windows only
  • Search string generated with "Add Series" in Web PVR Manager is now properly escaped

Changelog

The full log of changes since v2.83 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.83...v2.84

get_iplayer 2.83 Release Notes

Installation

Installation information for all platforms may be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Please note that it may take some time for get_iplayer 2.83 to be packaged for your particular system.

Windows Installer

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will also upgrade dependencies to the following versions:

  • Strawberry Perl 5.16.2
  • RTMPDump 2.4-git-20130109
  • FFmpeg 1.2
  • MPlayer svn-36348
  • AtomicParsley 0.9.4-hg103.396d3bd13c73
  • LAME 3.99.5
  • VLC 2.0.6

Changes in get_iplayer 2.83

SWF URL Fixed

get_iplayer 2.83 contains an updated SWF player URL to fix the unpleasantness encountered in early June 2013 when the BBC expired the old SWF player URL and broke all TV downloads.

If you used the workaround described here:

https://github.com/get-iplayer/get_iplayer/wiki/swfurl

you should remove the associated changes to your preferences when you upgrade to 2.83. Revisit that page and read the section on reverting your changes. For experienced users:

get_iplayer --prefs-del --rtmp-tv-opts="X" --rtmp-radio-opts="X"  --rtmp-livetv-opts="X" --rtmp-liveradio-opts="X"

Yes, that is a single "X" for each option. Any non-empty value will suffice when deleting those preferences.

Windows Users: The new installer will attempt to clean up those preference settings. However, you should also run the command above to make sure that your settings have been cleaned.

New Documentation Wiki

All get_iplayer documentation has been moved to the project wiki:

https://github.com/get-iplayer/get_iplayer/wiki

The old linuxcentre.net site has been dead for three years and cannot be updated, so this move is long overdue. The wiki is a work in progress, but it still contains useful information. The wiki may be edited by any registered GitHub user, so please feel free to make additions and corrections.

Recording Mode Changes

Recording modes have changed slightly in 2.83. The built-in mode for TV programmes has changed so that the best SD quality TV will now be downloaded by default. Additional mode shortcuts have also been introduced which should simplify the configuration of recording modes for most users. Read the Shortcuts section in the document below for an explanation of the changes:

https://github.com/get-iplayer/get_iplayer/wiki/modes

One thing to emphasise here in case you decide to ignore the documentation: If you normally run get_iplayer without specifying a recording mode, your TV downloads will be nearly twice as large and may take up to twice as long as with 2.83. Read the modes documentation referenced above for instructions on how to revert to pre-2.83 behaviour.

avconv Used in Preference to ffmpeg Where Available

If get_iplayer detects that avconv is installed, it will use it in preference to ffmpeg by default. No more scary messages about ffmpeg being deprecated. This change will typically only affect Debian-based Linux distributions, where the Libav fork of FFmpeg is installed by default, but will apply to any system with avconv installed. If you wish to switch back to ffmpeg, you can override this default with the ffmpeg option. Also, an avconv option has been added as a synonym for ffmpeg.

XBMC File Naming

The syntax for substitution parameters has been extended slightly. It is now possible to define separators in fileprefix that are omitted when the associated parameter is empty. You should now be able to use a single fileprefix setting that will make XBMC happy (most of the time). Details here:

https://github.com/get-iplayer/get_iplayer/wiki/fileprefix

Support for Secure Email

get_iplayer can send HTML-formatted search results via email. This feature will now work with email providers that require secure connections (TLS or SSL), such as GMail. Additional Perl modules are required to support secure email - see the installation instructions for details. The Windows installer will install the necessary Perl modules.

An example:

get_iplayer "doctor who" [email protected] [email protected] --email-password=secret --email-smtp=smtp.gmail.com --email-security=TLS

Subtitles

  • Subtitles are now saved with UTF-8 encoding. Many media players will auto-detect the encoding for subtitles, but in some circumstances you may need to configure additional options. For example, the command-line version of MPlayer requires the -utf8 command line option.
  • Subtitles may now be downloaded with audiodescribed programmes

Other Changes

  • Live TV functionality restored after being broken by BBC changes
  • Added noartwork option to prevent thumbnail image being written in media file metadata
  • Added rtmpdump option as a synonym for flvstreamer
  • Updated channel schedule URLs (for refreshfuture)
  • get_iplayer is now compatible with Perlbrew

Changelog

The full log of changes since v2.82 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.82...v2.83

get_iplayer 2.83 Release Notes

Installation

Installation information for all platforms may be found here:

https://github.com/get-iplayer/get_iplayer/wiki/installation

Please note that it may take some time for get_iplayer 2.83 to be packaged for your particular system.

Windows Installer

Windows users should use the most recent installer to update:

https://github.com/get-iplayer/get_iplayer_win32/releases/latest

The installer will also upgrade dependencies to the following versions:

  • Strawberry Perl 5.16.2
  • RTMPDump 2.4-git-20130109
  • FFmpeg 1.2
  • MPlayer svn-36348
  • AtomicParsley 0.9.4-hg103.396d3bd13c73
  • LAME 3.99.5
  • VLC 2.0.6

Changes in get_iplayer 2.83

SWF URL Fixed

get_iplayer 2.83 contains an updated SWF player URL to fix the unpleasantness encountered in early June 2013 when the BBC expired the old SWF player URL and broke all TV downloads.

If you used the workaround described here:

https://github.com/get-iplayer/get_iplayer/wiki/swfurl

you should remove the associated changes to your preferences when you upgrade to 2.83. Revisit that page and read the section on reverting your changes. For experienced users:

get_iplayer --prefs-del --rtmp-tv-opts="X" --rtmp-radio-opts="X"  --rtmp-livetv-opts="X" --rtmp-liveradio-opts="X"

Yes, that is a single "X" for each option. Any non-empty value will suffice when deleting those preferences.

Windows Users: The new installer will attempt to clean up those preference settings. However, you should also run the command above to make sure that your settings have been cleaned.

New Documentation Wiki

All get_iplayer documentation has been moved to the project wiki:

https://github.com/get-iplayer/get_iplayer/wiki

The old linuxcentre.net site has been dead for three years and cannot be updated, so this move is long overdue. The wiki is a work in progress, but it still contains useful information. The wiki may be edited by any registered GitHub user, so please feel free to make additions and corrections.

Recording Mode Changes

Recording modes have changed slightly in 2.83. The built-in mode for TV programmes has changed so that the best SD quality TV will now be downloaded by default. Additional mode shortcuts have also been introduced which should simplify the configuration of recording modes for most users. Read the Shortcuts section in the document below for an explanation of the changes:

https://github.com/get-iplayer/get_iplayer/wiki/modes

One thing to emphasise here in case you decide to ignore the documentation: If you normally run get_iplayer without specifying a recording mode, your TV downloads will be nearly twice as large and may take up to twice as long as with 2.83. Read the modes documentation referenced above for instructions on how to revert to pre-2.83 behaviour.

avconv Used in Preference to ffmpeg Where Available

If get_iplayer detects that avconv is installed, it will use it in preference to ffmpeg by default. No more scary messages about ffmpeg being deprecated. This change will typically only affect Debian-based Linux distributions, where the Libav fork of FFmpeg is installed by default, but will apply to any system with avconv installed. If you wish to switch back to ffmpeg, you can override this default with the ffmpeg option. Also, an avconv option has been added as a synonym for ffmpeg.

XBMC File Naming

The syntax for substitution parameters has been extended slightly. It is now possible to define separators in fileprefix that are omitted when the associated parameter is empty. You should now be able to use a single fileprefix setting that will make XBMC happy (most of the time). Details here:

https://github.com/get-iplayer/get_iplayer/wiki/fileprefix

Support for Secure Email

get_iplayer can send HTML-formatted search results via email. This feature will now work with email providers that require secure connections (TLS or SSL), such as GMail. Additional Perl modules are required to support secure email - see the installation instructions for details. The Windows installer will install the necessary Perl modules.

An example:

get_iplayer "doctor who" [email protected] [email protected] --email-password=secret --email-smtp=smtp.gmail.com --email-security=TLS

Subtitles

  • Subtitles are now saved with UTF-8 encoding. Many media players will auto-detect the encoding for subtitles, but in some circumstances you may need to configure additional options. For example, the command-line version of MPlayer requires the -utf8 command line option.
  • Subtitles may now be downloaded with audiodescribed programmes

Other Changes

  • Live TV functionality restored after being broken by BBC changes
  • Added noartwork option to prevent thumbnail image being written in media file metadata
  • Added rtmpdump option as a synonym for flvstreamer
  • Updated channel schedule URLs (for refreshfuture)
  • get_iplayer is now compatible with Perlbrew

Changelog

The full log of changes since v2.82 can be viewed here:

https://github.com/get-iplayer/get_iplayer/compare/v2.82...v2.83

Clone this wiki locally