descriptionWebDL is a set of Python scripts to grab video from online Free To Air Australian channels.
last changeWed, 25 Aug 2021 10:45:56 +0000 (10:45 +0000)


WebDL is a set of Python scripts to grab video from online Free To Air Australian channels.




Updating to the latest version

You must use git to keep up to date. The script is how I do this. If you'd like to manually update just run these commands.

cd webdl
git pull --ff-only

Installation using pip

Install the following packages using your package manager:

Clone the WebDL repository:

git clone
cd webdl

Set up a Python virtualenv and use pip to install the other dependencies:

virtualenv --python python3 .virtualenv
. .virtualenv/bin/activate
pip install -r requirements.txt

Whenever you want to run WebDL you must source the .virtualenv/bin/activate script from your shell.

Installation on Debian/Ubuntu

Clone the WebDL repository:

git clone
cd webdl

Install Python 3 and needed libraries:

apt-get install python3 python3-lxml python3-requests python3-requests-cache

You must also install Streamlink, or if it unavailable, the older Livestreamer. Depending on the age of your distro you'll need either:

Install ffmpeg:

apt-get install ffmpeg

Interactive usage (

You can run WebDL interactively to browse categories and episode lists and download TV episodes.

$ ./
 1) ABC iView
 2) SBS
 0) Back
Choose> 1
 1) ABC 4 Kids
 2) Arts & Culture
 3) Comedy
 4) Documentary
Choose> 4
 1) ABC Open Series 2012
 2) Art Of Germany
 3) Baby Beauty Queens
 4) Catalyst Series 13
Choose> 4
 1) Catalyst Series 13 Episode 15
 2) Catalyst Series 13 Episode 16
 0) Back
Choose> 1
RTMPDump v2.3
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
INFO: Connected...
Starting download at: 0.000 kB

The bolded parts are what you type. Note that you can go back on any screen by typing “0”. At the list of episodes you can download a single episode by typing one number, or multiple episodes by typing several numbers separated by spaces.

Cron scripted usage (

You can schedule a regular download of your favourite shows. This example uses chronic from moreutils.

# m    h  dom mon dow   command
  0    1   *   *   *     timeout 6h chronic $HOME/webdl/ /videos/ABC4Kids /videos/Insight

Each of these directories should contain a .patterns.txt with shell-style globs:

ABC iView/By Channel/ABC4Kids/*/*

You may optionally created a .excludes.txt file with shell-style globs. This is matched against the episode title and can be used to filter out things you don't want. For example:


Whenever an episode is downloaded it is recorded into .downloaded_auto.txt. Even if you move the files somewhere else they will not be redownloaded.

Bug reports

Please raise issues on the Bitbucket project.

2021-08-25 Paul WiseMerged in fix-sbs (pull request #10) master
2021-08-16 Paul WiseDownload SBS player params from the API
2020-11-04 Paul WiseAdd support for ABC iView HLS livestreams
2020-09-20 James BuntonFixed iView downloads
2020-07-24 James BuntonFixed iView to use categories and channels from API
2020-06-29 James BuntonLog to stdout instead of stderr
2020-06-13 James BuntonFixed missing import
2020-06-13 James BuntonFix SBS download
2020-04-13 James BuntonSend user-agent when downloading HLS videos (fixes...
2020-04-13 James BuntonDrop livestreamer support, it probably didn't work...
2020-04-12 James BuntonUse natural_sort
2020-04-12 James BuntonSort nodes so that autograbber fetches them in a more...
2020-04-12 James BuntonFailsafe in case channel 10 returns bad results again
2020-04-12 James Buntonfix #105 - channel 10 pulling in too many episodes
2019-12-20 James BuntonReduce SBS page size (fixes #102)
2019-08-20 James Buntonautograbber: implement .excludes.txt (fixes #75)
8 weeks ago master
4 years ago python2