Simple commandline tool to download any/all episodes of a show from nrk/nrk super with python.
The program has a set of dependencies that must be installed before first use:
pip install -r requirements.txt
In addition you will need ffmpeg
, e.g. apt-get install ffmpeg
(Ubuntu), brew install ffmpeg
(macOs)
$ python nrkdl.py -h
usage: nrkdl.py [-h] [-s keyword] [-e ENCODING] [-ex date] [-u URL] [-b]
[-save SAVE_PATH] [-dr] [-v] [-w WORKERS] [-st]
[-if INPUT_FILE] [-c CHUNKS] [-d]
optional arguments:
-h, --help show this help message and exit
-s keyword, --search keyword
Search nrk for a show and download files
-e ENCODING, --encoding ENCODING
Set encoding (default=UTF-8)
-ex date, --expires_at date
Download in all between todays date and 01.01.2020 or
just 01-01-2020
-u URL, --url URL Use NRK URL as sorce. Comma separated e.g. "url1 url2"
-b, --browse Browse
-save SAVE_PATH, --save_path SAVE_PATH
Download to this folder (default=./downloads)
-dr, --dry_run Dry run, dont download anything
-v, --verbose Show ffmpeg output
-w WORKERS, --workers WORKERS
Number of thread pool workers, if your downloading
many items you might have edit the chuck
-st, --subtitle Download subtitle for this media file?
-if INPUT_FILE, --input_file INPUT_FILE
Use local file as source
-c CHUNKS, --chunks CHUNKS
-d, --description Print verbose program description in lists
> python nrkdl.py -s "brannma"
2: Brannmann i seks knop
1: Brannmann
0: Brannmann Sam
Select a number or use slice notation
0
22: Brannmann Sam S03E06
21: Brannmann Sam S03E12
20: Brannmann Sam S03E13
19: Brannmann Sam S03E14
18: Brannmann Sam S03E15
17: Brannmann Sam S03E16
16: Brannmann Sam S03E17
15: Brannmann Sam S03E18
14: Brannmann Sam S03E19
13: Brannmann Sam S03E20
12: Brannmann Sam S03E21
11: Brannmann Sam S03E22
10: Brannmann Sam S03E23
9: Brannmann Sam S03E24
8: Brannmann Sam S03E25
7: Brannmann Sam S03E26
6: Brannmann Sam S03E27
5: Brannmann Sam S03E28
4: Brannmann Sam S03E29
3: Brannmann Sam S03E30
2: Brannmann Sam S03E32
1: Brannmann Sam S03E33
0: Brannmann Sam S05E25
Select a number or use slice notation
::
Downloads starting soon.. 23 downloads to go
100%|############################################################################| 23/23 [03:57<00:00, 79.09s/it]
> python nrkdl.py -u "http://tv.nrksuper.no/serie/bernt-og-erling-paa-nye-eventyr http://tv.nrksuper.no/serie/bertine-paa-besoek"
100%|####################################################################################| 2/2 [00:21<00:00, 13.63s/it]
nrk = NRK()
s = nrk.search("lille jack", strict=True)[0]
for e in s.episodes():
e.download()
all_downloads = nrk.downloads()
# How many files are we gonna download
print(len(nrk.downloads()))
# Start downloading
all_downloads.start()
See example and source file for more examples
To use nrkdl
in a self-contained docker container, the provieded Dockerfile
should get you going for a minimalistic install.
If you want to combine this into a standalone command, something like this will be what you want.
#!/bin/sh
# export DATA="/mnt/multimedia/tmp" # Set if you don't want downloads to go to your ${HOME}/downloads
cd ${HOME}/Projects/programming/nrkdl # Path where we can find a checkout of this repository
docker run -it -v ${DATA:-${HOME}/downloads}:/nrkdl/downloads $(docker build -q .) $*
# Open data-path if we are on osx
# [[ $? == 0 ]] && ( open ${DATA} )
You can now run it using example nrkdl -s "brannma"
.
- Easy to download entire shows
- Browsing features
- Fixes up tvshows fucked up naming so it can be parsed by kodi/plex/emby
- Pretty fast, maxes my 500 mbit connection.
- If you need a gui
- Other cli tool
- nrk written in php
- nrk-tv-downloader written in bash
- Use the search there is loads of nrk options.