.TH GET_IPLAYER "1" "January 2024" "Phil Lewis" "get_iplayer Manual" .SH NAME get_iplayer \- Stream Recording tool and PVR for BBC iPlayer and BBC Sounds .SH SYNOPSIS \fBget_iplayer\fR [] [ ...] .PP \fBget_iplayer\fR \fB\-\-get\fR [] ... .PP \fBget_iplayer\fR [\fB\-\-type\fR= ] .PP \fBget_iplayer\fR [\fB\-\-type\fR= ] .PP \fBget_iplayer\fR \fB\-\-refresh\fR [\fB\-\-type\fR= ] .SH DESCRIPTION \fBget_iplayer\fR lists, searches and records BBC iPlayer TV and BBC Sounds radio programmes. .PP \fBget_iplayer\fR has two modes: recording a complete programme for later playback, and as a Personal Video Recorder (PVR), subscribing to search terms and recording programmes automatically. .PP If given the regex ".*" (incl. quotes), \fBget_iplayer\fR updates and displays the list of currently available TV programmes. Use \-\-type=radio for radio programmes. Each available programme has an alphanumeric identifier (\fBPID\fR). .PP In PVR mode, \fBget_iplayer\fR can be called from cron to record programmes on a schedule. .SH "OPTIONS" .PP Boolean options can be negated by adding a "no\-" prefix, e.g., \-\-no\-subtitles or \-\-no\-whitespace. This applies even if the base option name already begins with "no\-", e.g., \-\-no\-no\-tag or \-\-no\-no\-artwork .SS "Search Options:" .TP \fB\-\-available\-before Limit search to programmes that became available before hours ago .TP \fB\-\-available\-since Limit search to programmes that have become available in the last hours .TP \fB\-\-before Limit search to programmes added to the cache before hours ago .TP \fB\-\-category Narrow search to matched categories (comma\-separated regex list). Defaults to substring match. Only works with \-\-history. .TP \fB\-\-channel Narrow search to matched channel(s) (comma\-separated regex list). Defaults to substring match. .TP \fB\-\-exclude Narrow search to exclude matched programme names (comma\-separated regex list). Defaults to substring match. .TP \fB\-\-exclude\-category Narrow search to exclude matched categories (comma\-separated regex list). Defaults to substring match. Only works with \-\-history. .TP \fB\-\-exclude\-channel Narrow search to exclude matched channel(s) (comma\-separated regex list). Defaults to substring match. .TP \fB\-\-expires\-after Limit search to programmes that will expire after hours from now .TP \fB\-\-expires\-before Limit search to programmes that will expire before hours from now .TP \fB\-\-fields ,,... Searches only in the specified fields. The fields are concatenated with spaces in the order specified and the search term is applied to the resulting string. .TP \fB\-\-future Additionally search future programme schedule if it has been indexed (refresh cache with: \-\-refresh \-\-refresh\-future). .TP \fB\-\-history Search recordings history (requires search term) .TP \fB\-\-long, \-l Additionally search in programme descriptions and episode names (same as \-\-fields=name,episode,desc ) .TP \fB\-\-search GetOpt compliant way of specifying search args .TP \fB\-\-since Limit search to programmes added to the cache in the last hours .TP \fB\-\-type ,,... Only search in these types of programmes: tv,radio,all (tv is default) .SS "Display Options:" .TP \fB\-\-conditions Shows GPLv3 conditions .TP \fB\-\-debug Debug output (very verbose and rarely useful) .TP \fB\-\-dump\-options Dumps all options with their internal option key names .TP \fB\-\-help, \-h Intermediate help text .TP \fB\-\-helpbasic, \-\-usage Basic help text .TP \fB\-\-helplong Advanced help text .TP \fB\-\-hide Hide previously recorded programmes .TP \fB\-\-info, \-i Show full programme metadata and availability of streams and subtitles (max 40 matches) .TP \fB\-\-list Show a list of distinct element values (with counts) for the selected programme type(s) and exit. Valid elements are: 'channel' .TP \fB\-\-listformat Display search results with a custom format. Use substitution parameters in format string (see docs for list). .TP \fB\-\-long, \-l Show extended programme info .TP \fB\-\-manpage Create man page based on current help text .TP \fB\-\-nocopyright Don't display copyright header .TP \fB\-\-page Page number to display for multipage output .TP \fB\-\-pagesize Number of matches displayed on a page for multipage output .TP \fB\-\-quiet, \-q Reduce logging output .TP \fB\-\-series Display programme series names only with number of episodes .TP \fB\-\-show\-cache\-age Display the age of the selected programme caches then exit .TP \fB\-\-show\-options Show options which are set and where they are defined .TP \fB\-\-silent No logging output except PVR download report. Cannot be saved in preferences or PVR searches. .TP \fB\-\-sort Field to use to sort displayed matches .TP \fB\-\-sortreverse Reverse order of sorted matches .TP \fB\-\-streaminfo Returns all of the media stream URLs of the programme(s) .TP \fB\-\-terse Only show terse programme info (does not affect searching) .TP \fB\-\-tree Display programme listings in a tree view .TP \fB\-\-verbose, \-v Show additional output (useful for diagnosing problems) .TP \fB\-\-warranty Displays warranty section of GPLv3 .TP \fB\-V Show get_iplayer version and exit. .SS "Recording Options:" .TP \fB\-\-attempts Number of attempts to make or resume a failed connection. \-\-attempts is applied per\-stream. Programmes have multiple streams available for each recording quality. .TP \fB\-\-audio\-only Only download audio stream for TV programme. Produces .m4a file. Implies \-\-force. .TP \fB\-\-download\-abort\-onfail Exit immediately if any stream fails to download. Use to avoid repeated failed download attempts if connection is dropped or access is blocked. .TP \fB\-\-exclude\-format ,,... Comma\-separated list of media stream formats to ignore when recording. Valid values: hls,dash. .TP \fB\-\-exclude\-supplier ,,... Comma\-separated list of media stream suppliers (CDNs) to skip. Possible values: akamai,limelight,bidi,cloudfront. Synonym: \-\-exclude\-cdn. .TP \fB\-\-force Ignore programme history (unsets \-\-hide option also). .TP \fB\-\-get, \-g Start recording matching programmes. Search terms required. .TP \fB\-\-hash Show recording progress as hashes .TP \fB\-\-include\-format ,,... Comma\-separated list of media stream to use when recording. Overrides \-\-exclude\-format. Valid values: hls,dash .TP \fB\-\-include\-supplier ,,... Comma\-separated list of media stream suppliers (CDNs) to use if not included by default or if previously excluded by \-\-exclude\-supplier. Possible values: akamai,limelight,bidi,cloudfront. Synonym: \-\-include\-cdn. .TP \fB\-\-log\-progress Force HLS/DASH download progress display to be captured when screen output is redirected to file. Progress display is normally omitted unless writing to terminal. .TP \fB\-\-mark\-downloaded Mark programmes in search results or specified with \-\-pid/\-\-url as downloaded by inserting records in download history. .TP \fB\-\-no\-merge\-versions Do not merge programme versions with same name and duration. .TP \fB\-\-no\-proxy Ignore \-\-proxy setting in preferences and/or http_proxy environment variable. .TP \fB\-\-no\-resume Do not resume partial HLS/DASH downloads. .TP \fB\-\-no\-verify Do not verify size of downloaded HLS/DASH file segments or file resize upon resume. .TP \fB\-\-overwrite Overwrite recordings if they already exist .TP \fB\-\-partial\-proxy Only uses web proxy where absolutely required (try this extra option if your proxy fails). .TP \fB\-\-pid ,,... Record arbitrary PIDs that do not necessarily appear in the index. .TP \fB\-\-pid\-index Update (if necessary) and use programme index cache with \-\-pid. Cache is not searched for programme by default with \-\-pid. Synonym: \-\-pid\-refresh. .TP \fB\-\-pid\-recursive Record all related episodes if value of \-\-pid is a series or brand PID. Requires \-\-pid. .TP \fB\-\-pid\-recursive\-list If value of \-\-pid is a series or brand PID, list available episodes but do not download. Implies \-\-pid\-recursive. Requires \-\-pid. .TP \fB\-\-pid\-recursive\-type Download only programmes of (radio or tv) with \-\-pid\-recursive. Requires \-\-pid\-recursive. .TP \fB\-\-proxy, \-p Web proxy URL, e.g., http://username:password@server:port or http://server:port. Value of http_proxy environment variable (if present) will be used unless \-\-proxy is specified. Used for both HTTP and HTTPS. Overridden by \-\-no\-proxy. .TP \fB\-\-quality ,,... TV and radio recording quality preference. See \-\-tv\-quality and \-\-radio\-quality for available values and defaults. Default: default for programme type. .TP \fB\-\-radio\-quality ,,... Radio recording quality preference (overrides \-\-quality): high,std,med,low,default (Aliases: 320k,128k,96k,48k). Comma\-delimited list in descending order of preference. Default: high,std,med,low. .TP \fB\-\-start Recording/streaming start offset (actual start may be several seconds earlier for HLS and DASH streams) .TP \fB\-\-stop Recording/streaming stop offset (actual stop may be several seconds later for HLS and DASH streams) .TP \fB\-\-subtitles\-required Do not download TV programme if subtitles are not available. .TP \fB\-\-test, \-t Test only \- no recording (only shows search results with \-\-pvr and \-\-pid\-recursive) .TP \fB\-\-tv\-lower\-bitrate, \-\-tvlbr Prefer 25fps (or lower\-bitrate 50fps) streams for TV programmes if available. .TP \fB\-\-tv\-quality ,,... TV recording quality preference (overrides \-\-quality): fhd,hd,sd,web,mobile,default (Aliases: 1080p,720p,540p,396p,288p). Comma\-delimited list in descending order of preference. Default: hd,sd,web,mobile .TP \fB\-\-url ,,... Record the PIDs contained in the specified iPlayer episode URLs. Alias for \-\-pid. .TP \fB\-\-versions Version of programme to record. List is processed from left to right and first version found is downloaded. Example: '\-\-versions=audiodescribed,default' will prefer audiodescribed programmes if available. Versions: 'default,audiodescribed,signed,combined'. Default: 'default'. .SS "Output Options:" .TP \fB\-\-command, \-c User command to run after successful recording of programme. Use substitution parameters in command string (see docs for list). .TP \fB\-\-command\-radio User command to run after successful recording of radio programme. Use substitution parameters in command string (see docs for list). Overrides \-\-command. .TP \fB\-\-command\-tv User command to run after successful recording of TV programme. Use substitution parameters in command string (see docs for list). Overrides \-\-command. .TP \fB\-\-credits Download programme credits, if available. .TP \fB\-\-credits\-only Only download programme credits, if available. .TP \fB\-\-cuesheet Create cue sheet (.cue file) for programme, if data available. Radio programmes only. Cue sheet will be very inaccurate and will required further editing. Cue sheet may require addition of UTF\-8 BOM (byte\-order mark) for some applications to identify encoding. .TP \fB\-\-cuesheet\-offset [\-] Offset track times in cue sheet and track list by the specified number of seconds. Synonym: \-\-tracklist\-offset .TP \fB\-\-cuesheet\-only Only create cue sheet (.cue file) for programme, if data available. Radio programmes only. .TP \fB\-\-file\-prefix The filename prefix template (excluding dir and extension). Use substitution parameters in template (see docs for list). Default: \- .TP \fB\-\-limitprefixlength The maximum length for a file prefix. Defaults to 240 to allow space within standard 256 limit. .TP \fB\-\-metadata Create metadata info file after recording. Valid values: generic,json. XML generated for 'generic', JSON for 'json'. If no value specified, 'generic' is used. .TP \fB\-\-metadata\-only Create specified metadata info file without any recording or streaming. .TP \fB\-\-mpeg\-ts Ensure raw audio and video files are re\-muxed into MPEG\-TS file regardless of stream format. Overrides \-\-raw. .TP \fB\-\-no\-metadata Do not create metadata info file after recording (overrides \-\-metadata). .TP \fB\-\-no\-sanitise Do not sanitise output file and directory names. Implies \-\-whitespace. Invalid characters for Windows ("*:<>?|) and macOS (:) will be removed. .TP \fB\-\-output, \-o Recording output directory .TP \fB\-\-output\-radio Output directory for radio recordings (overrides \-\-output) .TP \fB\-\-output\-tv Output directory for tv recordings (overrides \-\-output) .TP \fB\-\-raw Don't remux or change the recording in any way. Saves output file in native container format (HLS\->MPEG\-TS, DASH\->MP4) .TP \fB\-\-subdir, \-s Save recorded files into subdirectory of output directory. Default: same name as programme (see \-\-subdir\-format). .TP \fB\-\-subdir\-format The format to be used for subdirectory naming. Use substitution parameters in format string (see docs for list). .TP \fB\-\-suboffset Offset the subtitle timestamps by the specified number of milliseconds. Requires \-\-subtitles. .TP \fB\-\-subs\-embed Embed soft subtitles in MP4 output file. Ignored with \-\-audio\-only and \-\-ffmpeg\-obsolete. Requires \-\-subtitles. Implies \-\-subs\-mono. .TP \fB\-\-subs\-mono Create monochrome titles, with leading hyphen used to denote change of speaker. Requires \-\-subtitles. Not required with \-\-subs\-embed. .TP \fB\-\-subs\-raw Additionally save the raw subtitles file. Requires \-\-subtitles. .TP \fB\-\-subtitles Download subtitles into srt/SubRip format if available and supported .TP \fB\-\-subtitles\-only Only download the subtitles, not the programme .TP \fB\-\-tag\-only Only update the programme metadata tag and not download the programme. Use with \-\-history or \-\-tag\-only\-filename. .TP \fB\-\-tag\-only\-filename Add metadata tags to specified file (ignored unless used with \-\-tag\-only) .TP \fB\-\-thumb Download thumbnail image if available .TP \fB\-\-thumb\-ext Thumbnail filename extension to use .TP \fB\-\-thumbnail\-only Only download thumbnail image if available, not the programme .TP \fB\-\-thumbnail\-series Force use of series/brand thumbnail (series preferred) instead of episode thumbnail .TP \fB\-\-thumbnail\-size Thumbnail size to use for the current recording and metadata. Specify width: 192,256,384,448,512,640,704,832,960,1280,1920. Invalid values will be mapped to nearest available. Default: 1920 (1280 with \-\-thumbnail\-square) .TP \fB\-\-thumbnail\-square Download square version of thumbnail image. Limits \-\-thumbnail\-size to 1280. .TP \fB\-\-tracklist Create track list of music played in programme, if data available. Track times and durations may be missing or incorrect. .TP \fB\-\-tracklist\-only Only create track list of music played in programme, if data available. .TP \fB\-\-whitespace, \-w Keep whitespace in file and directory names. Default behaviour is to replace whitespace with underscores. .SS "PVR Options:" .TP \fB\-\-comment Adds a comment to a PVR search .TP \fB\-\-pvr Runs the PVR using all saved PVR searches (intended to be run periodically, e.g., from cron or Task Manager). The list can be limited by adding a regex to the command. Synonyms: \-\-pvrrun, \-\-pvr\-run .TP \fB\-\-pvr\-add Save the named PVR search with the specified search terms. Search terms required unless \-\-pid specified. Synonyms: \-\-pvradd .TP \fB\-\-pvr\-del Remove the named search from the PVR searches. Synonyms: \-\-pvrdel .TP \fB\-\-pvr\-disable Disable (not delete) a named PVR search. Synonyms: \-\-pvrdisable .TP \fB\-\-pvr\-enable Enable a previously disabled named PVR search. Synonyms: \-\-pvrenable .TP \fB\-\-pvr\-exclude Exclude the PVR searches to run by search name (comma\-separated regex list). Defaults to substring match. Synonyms: \-\-pvrexclude .TP \fB\-\-pvr\-list Show the PVR search list. Synonyms: \-\-pvrlist .TP \fB\-\-pvr\-queue Add currently matched programmes to queue for later one\-off recording using the \-\-pvr option. Search terms required unless \-\-pid specified. Synonyms: \-\-pvrqueue .TP \fB\-\-pvr\-scheduler Runs the PVR using all saved PVR searches every . Synonyms: \-\-pvrscheduler .TP \fB\-\-pvr\-series Create PVR search for each unique series name in search results. Search terms required. Synonyms: \-\-pvrseries .TP \fB\-\-pvr\-single Runs a named PVR search. Synonyms: \-\-pvrsingle .SS "Config Options:" .TP \fB\-\-cache\-rebuild Rebuild cache with full 30\-day programme index. Use \-\-refresh\-limit to restrict cache window. .TP \fB\-\-expiry, \-e Cache expiry in seconds (default 4hrs) .TP \fB\-\-limit\-matches Limits the number of matching results for any search (and for every PVR search) .TP \fB\-\-prefs\-add Add/Change specified saved user or preset options .TP \fB\-\-prefs\-clear Remove *ALL* saved user or preset options .TP \fB\-\-prefs\-del Remove specified saved user or preset options .TP \fB\-\-prefs\-show Show saved user or preset options .TP \fB\-\-preset, \-z Use specified user options preset .TP \fB\-\-preset\-list Show all valid presets .TP \fB\-\-profile\-dir Override the user profile directory .TP \fB\-\-refresh Refresh cache .TP \fB\-\-refresh\-abort\-onerror Abort cache refresh for programme type if data for any channel fails to download. Use \-\-refresh\-exclude to temporarily skip failing channels. .TP \fB\-\-refresh\-exclude ,,... Exclude matched channel(s) when refreshing cache (comma\-separated regex list). Defaults to substring match. Overrides \-\-refresh\-include\-groups[\-{tv,radio}] status for specified channel(s) .TP \fB\-\-refresh\-exclude\-groups ,,... Exclude channel groups when refreshing radio or TV cache (comma\-separated values). Valid values: 'national', 'regional', 'local' .TP \fB\-\-refresh\-exclude\-groups\-radio ,,... Exclude channel groups when refreshing radio cache (comma\-separated values). Valid values: 'national', 'regional', 'local' .TP \fB\-\-refresh\-exclude\-groups\-tv ,,... Exclude channel groups when refreshing TV cache (comma\-separated values). Valid values: 'national', 'regional', 'local' .TP \fB\-\-refresh\-future Obtain future programme schedule when refreshing cache .TP \fB\-\-refresh\-include ,,... Include matched channel(s) when refreshing cache (comma\-separated regex list). Defaults to substring match. Overrides \-\-refresh\-exclude\-groups[\-{tv,radio}] status for specified channel(s) .TP \fB\-\-refresh\-include\-groups ,,... Include channel groups when refreshing radio or TV cache (comma\-separated values). Valid values: 'national', 'regional', 'local' .TP \fB\-\-refresh\-include\-groups\-radio ,,... Include channel groups when refreshing radio cache (comma\-separated values). Valid values: 'national', 'regional', 'local' .TP \fB\-\-refresh\-include\-groups\-tv ,,... Include channel groups when refreshing TV cache (comma\-separated values). Valid values: 'national', 'regional', 'local' .TP \fB\-\-refresh\-limit Minimum number of days of programmes to cache. Default: 7 Min: 1 Max: 30 .TP \fB\-\-refresh\-limit\-radio Number of days of radio programmes to cache. Default: 7 Min: 1 Max: 30 .TP \fB\-\-refresh\-limit\-tv Number of days of TV programmes to cache. Default: 7 Min: 1 Max: 30 .TP \fB\-\-skipdeleted Skip the download of metadata/thumbs/subs if the media file no longer exists. Use with \-\-history & \-\-metadataonly/subsonly/thumbonly. .TP \fB\-\-webrequest Specify all options as a urlencoded string of "name=val&name=val&..." .SS "External Program Options:" .TP \fB\-\-atomicparsley Location of AtomicParsley binary .TP \fB\-\-ffmpeg Location of ffmpeg binary. Assumed to be ffmpeg 3.0 or higher unless \-\-ffmpeg\-obsolete is specified. .TP \fB\-\-ffmpeg\-force Bypass version checks and assume ffmpeg is version 3.0 or higher .TP \fB\-\-ffmpeg\-loglevel Set logging level for ffmpeg. Overridden by \-\-quiet and \-\-silent. Default: 'fatal' .TP \fB\-\-ffmpeg\-obsolete Indicates you are using an obsolete version of ffmpeg (<1.0) that may not support certain options. Without this option, MP4 conversion may fail with obsolete versions of ffmpeg. .SS "Tagging Options:" .TP \fB\-\-no\-artwork Do not embed thumbnail image in output file. Also removes existing artwork. All other metadata values will be written. .TP \fB\-\-no\-tag Do not tag downloaded programmes. .TP \fB\-\-tag\-credits Add programme credits (if available) to long description field. .TP \fB\-\-tag\-encoding (Windows only) Single\-byte character encoding for non\-ASCII characters in metadata tags. Encoding name must be known to Perl Encode module. Unicode (UTF* or UCS*) character encodings are not supported. Default: active code page or cp1252 (Windows code page 1252) .TP \fB\-\-tag\-format\-show Format template for programme name in tag metadata. Use substitution parameters in template (see docs for list). Default: .TP \fB\-\-tag\-format\-title Format template for episode title in tag metadata. Use substitution parameters in template (see docs for list). Default: .TP \fB\-\-tag\-isodate Use ISO8601 dates (YYYY\-MM\-DD) in album/show names and track titles .TP \fB\-\-tag\-no\-unicode (Windows only) Do not attempt to perform Unicode tagging and use single\-byte character encoding instead (see \-\-tag\-encoding) .TP \fB\-\-tag\-podcast Tag downloaded radio and tv programmes as iTunes podcasts (incompatible with Music/Podcasts/TV apps on macOS 10.15 and higher) .TP \fB\-\-tag\-podcast\-radio Tag only downloaded radio programmes as iTunes podcasts (incompatible with Music/Podcasts/TV apps on macOS 10.15 and higher) .TP \fB\-\-tag\-podcast\-tv Tag only downloaded tv programmes as iTunes podcasts (incompatible with Music/Podcasts/TV apps on macOS 10.15 and higher) .TP \fB\-\-tag\-tracklist Add track list of music played in programme (if available) to lyrics field. .SS "Misc Options:" .TP \fB\-\-encoding\-console\-in Character encoding for standard input (currently unused). Encoding name must be known to Perl Encode module. Default (only if auto\-detect fails): Linux/Unix/macOS = UTF\-8, Windows = cp850 .TP \fB\-\-encoding\-console\-out Character encoding used to encode search results and other output. Encoding name must be known to Perl Encode module. Default (only if auto\-detect fails): Linux/Unix/macOS = UTF\-8, Windows = cp850 .TP \fB\-\-encoding\-locale Character encoding used to decode command\-line arguments. Encoding name must be known to Perl Encode module. Default (only if auto\-detect fails): Linux/Unix/OSX = UTF\-8, Windows = cp1252 .TP \fB\-\-encoding\-locale\-fs Character encoding used to encode file and directory names. Encoding name must be known to Perl Encode module. Default (only if auto\-detect fails): Linux/Unix/macOS = UTF\-8, Windows = cp1252 .TP \fB\-\-encoding\-webrequest Character encoding used to encode commands sent from Web PVR. Encoding name must be known to Perl Encode module. Default = UTF\-8 .TP \fB\-\-index\-maxconn Maximum number of connections to use for concurrent programme indexing. Default: 5 Min: 1 Max: 10 .TP \fB\-\-release\-check Forces check for new release if used on command line. Checks for new release weekly if saved in preferences. .TP \fB\-\-throttle Bandwidth limit (in Mb/s) for media file download. Default: unlimited. Synonym: \-\-bw .SS "Deprecated Options:" .TP \fB\-\-no\-index\-concurrent Do not use concurrent indexing to update programme cache. Cache updates will be very slow. .SH AUTHOR get_iplayer was written by Phil Lewis and is now maintained by the contributors at https://github.com/get\-iplayer/get_iplayer .PP This manual page was originally written by Jonathan Wiltshire for the Debian project (but may be used by others). .SH COPYRIGHT NOTICE get_iplayer v3.35 Copyright (C) 2008\-2010 Phil Lewis, 2010\- get_iplayer contributors This program comes with ABSOLUTELY NO WARRANTY; for details use \-\-warranty. This is free software, and you are welcome to redistribute it under certain conditions; use \-\-conditions for details.