./net/get_iplayer, Search, index, record or stream BBC iPlayer broadcasts

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 3.26, Package name: get_iplayer-3.26, Maintainer: pkgsrc-users

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

Required to run:
[textproc/p5-XML-LibXML] [www/p5-libwww] [www/p5-Mojolicious]

Required to build:

Master sites:

SHA1: c31ab48f1e6d5c792c94175abb3dfb639869f72e
RMD160: 313a06b2550ea7b438d96b0f352b0e7548affc12
Filesize: 144.937 KB

Version history: (Expand)

CVS history: (Expand)

   2020-06-29 17:06:38 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
get_iplayer: Update to 3.26

                         get_iplayer 3.26 Release Notes

Changes in 3.26

     * Restored download of programme credits - broken by BBC changes.

     * Restored channel names to --pid-recursive-list output - broken by BBC

     * Restored subtitle colours - broken by BBC changes.

     * Media streams mislabelled as belonging to the defunct BBC Store are no
       longer ignored - a few may contain valid content.

     * Fixed hash initialisation in Pvr class (@praxilian)

     * Added new --cuesheet-offset option (synonym: --tracklist-offset) that
       can be used to apply a positive or negative offset to track times in
       cue sheet or track list. If you find track times off by a consistent
       amount after download, use --cuesheet-only with --cuesheet-offset=<n>
       or --tracklist-only with --tracklist-offset=<n> (where n = offset in
       seconds) to generate a new cue sheet or track list with adjusted track

     * The default value of the --thumbnail-size option is now 1920, which
       downloads a 1920x1080 image. The previous default was 192, which
       downloaded a 192x108 image. This larger default size should work
       better on TVs and larger devices, but it will still scale down for
       smaller devices and media manager software.

          * If you have added --thumbnail-size to your preferences, it will
            continue to be used.

          * This change will add ~200KB to the size of tagged output files,
            compared to the previous default.

          * If you wish to restore the previous default thumbnail size:

   get_iplayer --prefs-add --thumbnail-size=192

     * Thumbnail size is now automatically limited to 1280 when
       --thumbnail-square is used, in order to avoid distorted images.

     * The @wrt atom in metadata tags (iTunes: Composer field) is now set to
       "BBC Sounds" for radio programmes. The value is still set to \ 
       iPlayer" for TV programmes.

     * The --tag-utf8 option is now ignored and will be removed in the next
       release. It hasn't served any useful purpose for some time. To remove
       it from your preferences if necessary:

   get_iplayer --prefs-del --tag-utf8

     * The minimum version of Perl nominally required for get_iplayer is now
       5.16, in line with recent changes in requirements for the Mojolicious
       module. This requirement is not yet enforced in get_iplayer code since
       some combinations of older Perl and Mojolicious versions will still
       work. This only concerns Linux users doing manual installations, and
       who for some reason attempt to install new versions of Mojolicious
       with obsolete versions of Perl, so it is unlikely to apply to you.

     * get_iplayer previously allowed a PVR run to continue even if the
       previous run might still be active, as long as 12 hours had elapsed
       since the previous run was launched, on the presumption that after 12
       hours the previous run must be hung. That is no longer the case.

          * If an invalid (e.g., due to disk write error) PVR lockfile is
            found, get_iplayer deletes the lockfile and exits with an error
            and an instruction for you to check if get_iplayer PVR is already
            running before restarting.
          * If a valid PVR lockfile is found and the previous run is still
            active, get_iplayer will now always exit with an error regardless
            of whether or not 12 hours has elapsed. It now prints the process
            ID associated with the running PVR so that you can check the
            process status if necessary.
          * get_iplayer is not prone to hanging as it sometimes was when it
            relied on rtmpdump and ffmpeg for downloading, so this change
            should have little effect on you. One possible exception is if
            you try to use get_iplayer in Windows Subsystem for Linux v1 (WSL
            1), where AtomicParsley always hangs and thus hangs every PVR
            run. Don't use get_iplayer on WSL 1. AtomicParsley does work with
            WSL 2.
   2020-04-13 01:59:43 by Joerg Sonnenberger | Files touched by this commit (10)
Log message:
Reset maintainer as requested.
   2020-02-02 21:03:04 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
get_iplayer: Update to 3.25

Changes in 3.25:

Restored track list and cue sheet generation broken by BBC changes.
   2020-01-04 12:57:19 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
get_iplayer: Update to 3.24

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 \ 
   2019-11-30 14:43:03 by Nia Alarie | Files touched by this commit (3) | Package updated
Log message:
get_iplayer: Update to 3.23

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.
   2019-09-04 18:39:13 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
get_iplayer: Update to 3.22


- 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 \ 
   2019-07-19 10:32:42 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
get_iplayer: Update to 3.21

- 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 \ 
-   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 \ 
- 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 \ 
- 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 = \ 
   2019-07-06 21:57:52 by Nia Alarie | Files touched by this commit (2) | Package updated
Log message:
get_iplayer: Update to 3.20

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" \ 

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" \ 

    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 \ 

    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 \ 

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 \ 

    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 \ 

    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 \ 

        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 \ 
        --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.