2024-01-02 Have been using 'get_iplayer' script for convenience for a few years, relying on shell history for the incantations that have served me well. Here they are in case the history runs out some day. -------------------------------------------------------------------- Just trying a search will also cause a cache update if the cache is older than its set age. $ get_iplayer Malory Matches: 789: Malory Towers: Extras - Series 5 Preview, CBBC, m001zxqc 790: Malory Towers: Series 5 - The New Matron, CBBC, m0024rlq 791: Malory Towers: Series 5 - The Maypole, CBBC, m0024rm4 792: Malory Towers: Series 5 - The Penalty, CBBC, m0024zx2 793: Malory Towers: Series 5 - The Investigation, CBBC, m0024zxz 794: Malory Towers: Series 5 - The Dream, CBBC, m002579s 795: Malory Towers: Series 5 - The Birthday Surprise, CBBC, m00257t2 796: Malory Towers: Series 5 - The Challenge, CBBC, m0025gb7 797: Malory Towers: Series 5 - The Poison Pen, CBBC, m0025gg7 798: Malory Towers: Series 5 - The Chamber, CBBC, m0025psw 799: Malory Towers: Series 5 - The Last Letter, CBBC, m0025qj9 The result, as above, starts with numbers that are the program IDs for requesting a download. The final codes, e.g. m001zxqc, are used in the BBC-iplayer website url for the video but don't by themselves work as the ID argument for get_iplayer. They work if included within the full url, e.g. https://www.bbc.co.uk/iplayer/episode/m001zxqc So: if wanting a program that's not shown in the get_iplayer cached list, try finding it on the iplayer website then directly using that url to tell get_iplayer to download it. -------------------------------------------------------------------- With earlier versions (~2021?), we just did this to get a single ".ts" output at 1280x720-pixel H264+AAC $ get_iplayer --get --log-progress --mode tvbest --raw --output . $ID Now (2024) the 'mode' is replaced by 'quality' with more specific values, e.g. fhd|1080p, hd|720p etc, $ get_iplayer --get --log-progress --quality 720p --raw --output . $ID We also notice subtitle and thumbnail options, and that the 720p isn't the best the have, $ get_iplayer --get --log-progress --quality 1080p --raw --subtitles --subs-raw --thumb --output . $ID Getting multiple ones, by the URL ID that doesn't require indexing: $ for id in m0024rlq m0024rm4 m0024zx2 m0024zxz m002579s m00257t2 m0025gb7 m0025gg7 m0025psw m0025qj9 ; do get_iplayer --get --log-progress --quality hd,sd --raw --subtitles --subs-raw --thumb --output . --force 'https://www.bbc.co.uk/iplayer/episode/'$id ; sleep 180 ; done -------------------------------------------------------------------- note! the cache by default is the past 30 days of all tv channels we need to specify to get radio instead/also: --refresh-include-groups=radio,tv cannot get more than 30 days without modifying the script (see below) so: might get a gap in the cached episode-list if having not refreshed for a couple of months the shown available episodes after a refresh are *not* the complete set available from iplayer can set it to specify just one or a comma-separated list of channels to index the 'cache-rebuild' could be useful if there's a corruption or one doesn't want earlier-stored items $ get_iplayer --cache-rebuild --refresh-include="CBBC" --refresh builtin max of 30 days can be changed by editing get_iplayer line 7058 "my $limit_min = $now - ( 30 * 86400 );" from 30* to e.g. 60* $ get_iplayer --refresh-limit=60 --refresh $ get_iplayer --refresh-include="CBBC" --refresh-limit=60 --refresh --------------------------------------------------------------------