Skip to main content

Download series or programs from NRK.

Project description

Simple commandline tool to download any/all episodes of a show from nrk/nrk super with python.

Install

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 <https://ffmpeg.org/>`__, e.g. apt-get install ffmpeg (Ubuntu), brew install ffmpeg (macOs)

Usage

$ 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

URL

> 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]

Module

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

Using Docker

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".

Why should you use this library?

  • 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.

Similar tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nrk_api-0.0.3.tar.gz (133.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page