Subject: CVS commit: pkgsrc/net/get_iplayer
From: Nia Alarie
Date: 2019-07-06 21:57:52
Message id:

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.