Changes in 3.24
Restored 25fps HLS streams omitted from v3.23.
Removed --hls-lq-audio option. It will now generate an error if used.
Added --mpeg-ts option. If MPEG-TS is your preferred output format (e.g., for device compatibility), use this option to ensure output files are in proper MPEG-TS format regardless of the stream format (HLS or DASH). This is identical to --raw for HLS streams, but the DASH raw format is different. If you have been using --raw to generate MPEG-TS output, switch to --mpeg-ts (which overrides --raw).
Changes in 3.23
Adapted for BBC changes that caused "403 Forbidden" errors when attempting to download HLS streams (the default).
The --hls-lq-audio option is now ignored and will be removed in the next release. 320k audio for TV programmes is no longer available, so the option has no effect.
320k/96k HLS streams for radio programmes are no longer available, except for 96k HLS streams for some World Service programmes. DASH streams are still available for those bit rates. Some older programmes may still have 320k/96k HLS streams available, but they should eventually disappear.
If you use default settings for download quality (which should be the case for most users), you do not need to change anything. The best quality available will still be downloaded by default.
If you don't use default settings, you may need to adjust your recording modes for radio programmes. The hafhigh and hafmed modes will still be accepted, but they likely will have no effect. Recording modes for TV programmes should not need changes.
Added CBeebies Radio to programme indexing
Radio button labels in Web PVR Manager are now clickable (@hintswen)
Fixed a bug that caused get_iplayer to fail with Perl 5.16 (@llewelld)
Fixed a bug that caused PVR searches for Proms programmes to download both TV and radio episodes even if --type=radio was specified.
Changes:
- Fixed schedule page parsing used for cache updates. This was broken by BBC changes and manifested as a series of “WARNING: Got 0 programmes...” messages during cache updates. Your cache will not update without this fix. If you find that some programmes are still missing from your cache, use `--cache-rebuild` to perform a full rebuild.
- get_iplayer now recognises previously-unknown programme versions (e.g., "legal") when the "default" pseudo-version is specified in the value of the `--versionlist` option.
- The `--pid-recursive-type` option is now applied when only downloading auxiliary resources (e.g., `--subtitles-only`).
- Fixed programme title extraction with `--pid-recursive` to prevent unwanted extra text being appended to title in episode listing (e.g., for Proms programmes).
- Added --release-check option to check for new releases
- If used on the command line (get_iplayer --release-check) an immediate check is made.
- If added to preferences (get_iplayer --prefs-add --release-check) a weekly check is made. The modification time on the "release_check" file in your profile directory is used to determine when a check is due.
- Accesses release feeds from GitHub repositories.
- get_iplayer is NOT automatically updated with --release-check . It only prints a message notifying you that a new release is available.
- Added --cuesheet and --cuesheet-only options to download track information in the form of a cue sheet (.cue file).
- Applies to radio programmes only. Only useful with radio programmes that publish track lists on BBC site.
- You cannot assume cue sheets to be accurate since track data is often wrong. You must correct cue sheets as needed if you use them to play back or edit downloaded programmes.
- get_iplayer makes no attempt to identify air breaks between tracks. You must set track end times manually if you use cue sheets to edit downloaded programmes.
- You will need to add a UTF-8 BOM (byte order mark) to cue sheets so that non-ASCII characters are displayed properly in some applications, e.g., foobar2000. This can be done with any capable text editor, or in the Notepad "Save" dialog with Encoding = "UTF-8 with BOM" (Windows 10) or Encoding = "UTF-8" (Windows 7).
- --subs-embed now implies --subs-mono. If you use --subs-embed, you no longer need to use --subs-mono.
- Embedded subtitles are rendered in a single colour, so this change ensures that embedded subtitles have leading hyphens to denote changes of speaker.
- This change also ensures that the external SRT file is formatted the same as the embedded subtitles. If you wish to create an external SRT file with colour subtitles along with embedded subtitles, use --subtitles-only --no-subs-embed --no-subs-mono --overwrite to re-download colour subtitles and replace the SRT file.
- Added --metadata=json option to create metadata file in JSON format (.json file). Content is the same as default XML-format metadata files (produced by --metadata without format value specified).
- Added --pid-recursive-type option to limit recursive downloads to programmes of specified type (radio or tv) when series includes both radio and TV programmes. Option value is not reflected in listings from --pid-recursive-list, nor is it applied when only downloading auxiliary resources (e.g., --metadata-only). Requires --pid-recursive.
- Added <sesortx> substitution parameter. See definition in Substitution Parameters. This parameter provides an additional option for constructing sortable file names with --file-prefix.
- The --pid option can no longer be saved in the default options file, where it could break subsequent downloads. It can still be saved in presets and used with --pvr-queue.
- The installer-supplied wrapper script that launches a standalone Web PVR Manager server has been renamed from get_iplayer.cgi to get_iplayer_cgi (macOS) and from get_iplayer.cgi.cmd to get_iplayer_cgi.cmd (Windows).
- Implemented a workaround for a deficiency in Windows Perl that caused "Wide character in print" warnings.
- Implemented a workaround to avoid Can't locate object method "subtitles_available" error when using --pid-recursive with --subtitles or --subtitles-only with mixed TV/radio series.
- Fixed a bug that caused the channel name to be tagged as "BBC iPlayer" when downloading individual programmes with --pid.
- Fixed a bug that caused downloads to fail when using default settings if the only available version of a radio programme was "podcastX" (where X = 2,3,...).
Changes in 3.20
Fixed a bug in v3.19 that caused a "Can't use an undefined value as an ARRAY reference" error when using --pid-recursive or --pid-recursive-list with programmes that have no available episodes
Fixed a bug in v3.19 that prevented Windows users from viewing and editing PVR searches in the Web PVR Manager.
EDIT: If you find that BBC Scotland programmes of interest are missing from search results, force all available BBC Scotland programmes to be indexed and cached with (ignore any 404 errors):
get_iplayer --refresh --refresh-include="BBC Scotland" --refresh-limit=30
v3.20 was released soon after v3.19, which was withdrawn. See the get_iplayer 3.19 release notes for other recent changes.
Changes in 3.19
Fixed a bug that caused one-off PVR searches created with --pvr-queue to be deleted when run with --test (thanks @wiehe).
Replaced BBC Two Scotland with BBC Scotland in programme indexing. If a cache update extends back before the week of 2019-02-18, it will produce errors because a BBC Scotland schedule does not exist for earlier dates. The error can be ignored. EDIT: If you find that BBC Scotland programmes of interest are missing from search results, force all available BBC Scotland programmes to be indexed and cached with (ignore any 404 errors):
get_iplayer --refresh --refresh-include="BBC Scotland" --refresh-limit=30
Adapted --pid-recursive and --pid-recursive-list functionality for the change in layout of programme episode lists on the iPlayer site. The switch to series-by-series listings for many programmes meant that get_iplayer would only display episodes from the earliest series listed. This almost exclusively affected CBBC and CBeebies programmes, but could affect any programme.
The episode ordering with --pid-recursive and --pid-recursive-list is now always oldest to newest (as determined by the order of the listings on the iPlayer site). This ensures a consistent order regardless of the source of the episode lists, and it is generally consistent with how search results are ordered by default. Use --sort-reverse to list episodes from newest to oldest.
Added <senumx> substitution parameter to format series and episode numbers as ##x## instead of s##e## as with <senum>. As with <senum>, <senumx> may be absent.
Added --expires-after option for use with --expires-before to bracket searches based on programme expiration date.
Added --pid-index option. The programme index cache is no longer used by default with --pid, whether in a PVR search or from the command line. For an indexed programme, the cache entry provides a backup source of basic metadata, but it is not required. If you notice incomplete metadata or output file names with missing components, use --pid-index to ensure the cache is updated and used with --pid. This would only be of help with indexed programmes from the past 30 days.
Added --no-merge-versions option. get_iplayer now attempts to merge media streams from programme versions with the same name and duration (e.g., editorial and editorial2). There are some extremely rare cases where you may not want to do so because broken streams may be included in the result due to problems with BBC metadata. In that case, use --no-merge-versions to prevent merging and pick out the specific version you want with --versions.
Performed final removal of --hls-hq-audio, --no-dash-remux and --stream-http options
Changes in 3.18
Fixed a bug that caused unnecessary cache updates when --refresh-future was used.
Fixed a bug that prevented a stale cache from being updated with --pvr when first PVR search was PID-based. EDIT: This change will refresh both TV and radio programme index caches when PID-based PVR searches are used, even if --type=radio is not defined in preferences or the PVR searches. This is to ensure availability of at least minimal metadata for indexed programmes found with PID-based PVR searches. If you want to avoid ever indexing any radio programmes, delete the radio.cache file in your profile directory and use --refresh-exclude-groups-radio=local,regional,national to exclude all radio stations from indexing. You will have a radio.cache file, but it will contain no entries.
Added --hls-lq-audio option to download lower-quality audio with HLS video streams. Use this if 320k audio is too rich for your diet. You will get the same audio as DASH streams (128k or 96k, depending on the stream).
Added --available-before option for use with --available-since to bracket searches based on programme availability date.
The --no-subtitles option on the command line will now override all --subs-{embed,mono,raw,required} options saved in preferences. Those options no longer imply --subtitles (Web PVR: "Download subtitles" in "Recording" tab), which is now required with any of them.
get_iplayer no longer looks for a local options file under the current working directory (in ./.get_iplayer/options). That could cause problems when using --profile-dir while working in user's home directory if a default profile directory had been created. Use a preset instead. EDIT: This functionality was never documented and thus you are extremely unlikely to be affected by its removal.
The --test option will only show lists of matching episodes with PVR searches and --pid-recursive. Download and parsing of media stream data will only occur with --test if --get or standalone --pid is specified.
Changes to substitution parameters:
Added <sebcast>, <sebcastdate>, <sebcasttime>, <sesort>. See definitions in Substitution Parameters. These parameters provide additional options for constructing sortable file names with --file-prefix.
A value for <episodenum> must now be found in programme metadata in order for <senum> to be populated. A value of "1" is no longer synthesised for some TV programmes. A value of "1" is still synthesised for <seriesnum> if <episodenum> is populated and no series number is found in programme metadata.
The episode number prepended to <episode> is now zero-padded to 2 digits. This is reflected in the default output file prefix. EDIT: If you use the default file prefix and you mistakenly use --force for a programme you do not wish to re-download, or you mistakenly attempt to re-download a programme you already have that has been removed from your download history, it is likely that you will end up with a duplicate because the zero-padding generates a different file name (assuming an episode number is present). To revert to the previous default file prefix without zero-padding, use:
get_iplayer --prefs-add --file-prefix="<name> - <episodenum. ><episodeshort> <pid> <version>"
If you use a custom file prefix that contains <episode>, replace it with <episodenum. ><episodeshort> to achieve the same effect.
Conditional separators can now be used as suffixes. See example in Filenames and Directories.
The functionality of the options below has been removed. The options are now ignored and will be completely removed in the next release. A warning message will be printed if any of these options is found in your preferences.
--hls-hq-audio: Now essentially useless and could lead to audio sync problems.
--no-dash-remux: If you prefer DASH media streams for some reason you can no longer produce potentially unusable output files, at the cost of some extra time in post-processing downloads.
--stream-http: get_iplayer will now automatically look for HTTP media playlist URLs if no HTTPS URLs are found.
You can remove these obsolete options from your preferences (whether or not they are actually defined) with:
get_iplayer --prefs-del --hls-hq-audio --no-dash-remux --stream-http
A get_iplayer profile directory (containing programme index caches, pvr searches, preset definitions, download history) can now be shared between Windows and Linux/BSD/macOS. get_iplayer on all platforms now processes any CRLF line endings (default for text files on Windows) when reading files from the profile directory. Files will still be written with native line endings (CRLF on Windows, LF on other platforms), so different files may have different line endings if you share them between platforms. This also means that the "download_history" file will have mixed line endings if written on different platforms. The different line endings shouldn't affect get_iplayer, but be aware of them if editing those files directly.
If you only use get_iplayer on Windows, or only on Linux/BSD/macOS, you should notice no difference.
Warning for Linux/BSD/macOS users: This only works with get_iplayer 3.18 or higher. Once you have CRLF line endings in your files, you cannot use get_iplayer versions before 3.18 unless you first change all line endings in all files to LF and then never again write to those files in Windows.
Many fixes including:
* Restored cache updating, which was broken by changes to BBC web
sites. If you find search results missing programmes from the week
of 19 Feb, rebuild your cache with --rebuild-cache to fill any
holes.
* Fixed a bug that generated incorrect schedule URLs (used for cache
refresh) for the first calendar week of 2018 (and some future
years). (@welwood08)
Highlights:
* get_iplayer no longer lists all programmes when invoked without a
search argument. If you wish to list all programmes, you must now
explicitly specify a wildcard search: get_iplayer ".*" - note the
quotes. The Web PVR Manager does that by default. Also remember to
use --refresh for ad hoc cache updates.
* get_iplayer no longer automatically attempts to add higher-quality
audio to "hls" mode downloads (functionality introduced in v3.03).
Some output files were being produced with audio and video out of
sync. get_iplayer should never produce output worse that what is
offered by iPlayer, so that functionality is now optional. Use the
new --hls-hq-audio option to enable it, and heed the warning that
you may need to edit your output files to sync audio and video. The
--no-hq-audio option is now ignored and will be removed in the next
release. If you added it to your preferences, remove it now with
get_iplayer --prefs-del --no-hq-audio. (@notnac)
* Added --audio-only option to download only the audio stream for a
TV programme. It is intended to enable users with visual
impairments to skip downloading the video stream for programmes
with audio description, but it can be used for any programme. It
does not work with "hls" modes, however, so do not try to use it
with --tvmode=hlshd, for example. Use of --audio-only also enables
--force so that you can re-download a different audio track for a
previously-downloaded TV programme. That will also produce an
additional entry in your download history for the audio file.
Audio-only downloads produce .m4a files.
* Web PVR: Updated to support HTTPS URLs for Quick URL recording. The
BBC has begun redirecting iPlayer episode pages to secure
equivalents, and Web PVR limitations have required changing
"https:" to "http:" for pages used in the Quick URL box. This did
not affect the CLI or recording from search results in Web PVR.
* Added support for World Service programme PIDs beginning with "w".
These WS programmes released since 11 Aug could not be downloaded
because their PIDs were not recognised by get_iplayer.
https://github.com/get-iplayer/get_iplayer/wiki/releasenotes
* Fix "Segment not available from server" errors
* The --cache-init option. Use --cache-rebuild instead when upgrading.
* The SRT subtitles produced by get_iplayer now include <font> tags to
preserve the colour information from the TTML originals.
* get_iplayer now supports the BBC "bidi" CDN, so additional streams
are available for TV programmes.
* hvf modes (the default) for TV programmes will now produce files
with 320k audio, if available. 320k audio is not available for hls
or dvf modes.
Full release notes available fromt:
https://github.com/get-iplayer/get_iplayer/wiki/release301
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. Only
programmes in the schedule listings will be indexed.
* You can no longer search TV programmes for signed or audio
described versions. 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. That facility
is unlikely ever to return. Category information will not appear in
search results (for the present a blank space will be displayed).
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. 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).
Full log at https://squarepenguin.co.uk/wiki/releasenotes/release293
Version 2.92 -- Fri, 13 Mar 2015
* Tag version 2.92
* Hold off on Makefile changes
* Makefile changes
* Sort programme types in help text
* Pick up flashlow stream from mobile data
* Clean up Kodi .nfo files
* Updated help text and man page
* No ddlaacmed mode
* Automatically use mediaselector/4 for obvious archive programmes
* Added World Service to generated HLS live radio streams
* Fixed playlist URL parsing in archive pages
* Reinstate --mediaselector option (for archive programmes)
* Update ddlaac modes
* Combine AAC and MP3 in "shoutcast" mode alias for live radio
* Rework live stream location override options
* Rework default programme version determination
* Tweak mode size formatting
* Fixed incorrect processing of --stop and --start in HLS streamer
* Make --check-duration aware of --start and --stop
* Ignore rtmpdump error code = 2 with --stop
* When selecting default, ignore versions with only subtitles stream
* Don't check if main script writable on update unless it will be written
* Update live radio options in man page
* Updated Flash player URL
* Added --liveradio-intl option, removed "nonuk" mode alias
* Remove live radio mode list exception for World Service
* Removed deleted live Flash stream for World Service
* Fixed priority order of HLS live streams
* Added --no-proxy option
* Added DDL opts to manpage
* Cache listing with earliest availability when using schedule feeds
* Cache mis-catalogued news programmes
* Generate all additional live streams with --live{tv,radio}-uk
* Web PVR: Fixed escaping in form param parsing
* Revamped support for direct download AAC files
* Removed unnecessary thumbnail download notice
* Don't attempt to tag file with --raw
* Add full metadata to media clips (changes re-applied)
* Revert clip metadata changes
* Added shoutcast options to man page
* Removed rtsp recording modes
* Ignore --mediaselector option
* Added support for direct download AAC files
* Added support for Shoutcast live radio streams
* Revamped stream data processing
* Don't create series web link if no parent entity
* Handle rare subseries (split episodes)
* Move fallback metadata collection to ensure title is populated first
* Process all programme versions (including duplicates) to find stream info
* Cache audio described programmes from ION feeds
* Added additional HD/SD streams with --hds-livetv
* Fix runtime in Freevo/Kodi metadata
* widen first column in --dump-options output
* Updated SWF player URL
* bump dev version
Version 2.91 -- Sun, 21 Dec 2014
* suppress warnings for > 32-bit dates in obsolete Perl versions
* Fudge a thumbnail for S4C
* Added S4C to live tv, changed HDS manifest URLs
* Enable --aactomp3 with HLS
* Deal with obsolete live tv modes
* Updated thumbnail size help text
* Use correct URI escape method
* HLS tweaks
* Don't rely on order of version types in programme metadata (2nd try)
* Revert "Don't rely on order of version types in programme metadata"
* Don't rely on order of version types in programme metadata
* Web PVR accessibility improvements
* Fixes for 2c381ae9c08a8a55cc84dbb05a86e66548315976
* Web PVR: When the description column for a result is clicked, open the info page in a new tab.
* Add better checks for missing data to brand/series parsing
* Check 3 levels for programme brand
* Use media_file_size attribute if available
* Make clear that {hls,ffmpeg}*opts only apply to re-muxing/encoding of download or output file
* Copy authentication params to derived HLS playlist URLs
* Windows installer 4.10
* Updated GitHub repo location
* Allow 3 category levels
* Always print warning if no programme versions found
* Added S4C to channels
* Revert "Added support for live radio Shoutcast streams"
* Added support for live radio Shoutcast streams
* Added HLS mode warnings about missing ffmpeg
* More improvements to multiple/missing versions
* Improve handling of multiple/missing versions
* Always call get_metadata() in download_retry_loop()
* Fixed skipped call to get_metadata() when AtomicParsley not installed
* Backstop <desc> with <descshort>
* Copy firstbcast/lastbcast when replacing default with iplayer version
* Revamped replacement of missing default version by iplayer version
* Added larger thumbnail sizes
* Always use iplayer version as default if found
* Don't force episode numbers into cache episode field
* Added support for HLS streaming and restored live tv
* Ignore --quiet with --stdout
* Tidy XML::Simple warnings
* Added tagging options for new metadata processing
* Changes to <episode> <nameshort> <desclong>
* Added verbose message to print programme metadata URL
* Revert "Added verbose message to indicate if new metadata code is used"
* Added verbose message to indicate if new metadata code is used
* Change web scraping with now-obsolete metadata extraction code
* Strip line breaks for --info output
* Add long description to Kodi/Freevo metadata
* Fix long description parsing
* Tidy up episode number insertion
* Updated SWF player URL
* tighten PID check in get_metadata
* Fixed versions parsing in JSON playlist
* Fixed versions parsing from programme metadata
* Implemented brand/series parsing for cache
* Added --refresh-abortonerror option
* Implemented ION feeds for tv and radio
* Don't allow --info with --pvr
* Segment channels into groups (national, regional, local)
* Use /programmes data endpoints as primary source for metadata
* Misc metadata cleanup
* Cygwin changes #2
* Suppress "Added:" messages with --quiet
* Web PVR: fixed escaping in form post parsing
* Cygwin changes
* Switch to mediaselector 5 API, added --mediaselector (2nd attempt)
* Revert "Switch to mediaselector 5 API, added --mediaselector"
* Fix application of --whitespace to final file/path
* Switch to mediaselector 5 API, added --mediaselector
* Suppress spurious errors in PVR log.
* Apply JSON parsing fix to radio programmes
* Fixed json playlist parsing to avoid "warning" vpids
* Fixed sanitising --file-prefix and --subdir-format
* Fixes for --pvr-queue with multiple PIDs
* Web PVR: add /usr/local/bin/get_iplayer to search list
* Prevent duplicate default versions if JSON playlist used
* Use brand/series thumbnails in radio cache
* Restore subcategories in metadata
* Revert "add subcategories after the main categories in the 'catergories' property"
* add subcategories after the main categories in the 'catergories' property
* Fix episode number search
* Fixed web pvr imports for ancient versions of URI::Escape
* Add BBC Sport as a masterbrand to fetch
This tool allows you to search, index and record/stream:
* BBC iPlayer TV
* BBC iPlayer TV subtitles
* BBC iPlayer Radio
* BBC Live TV
* BBC Live Radio
* BBC Podcasts