In [4]:
%load_ext autoreload
%autoreload 2


The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

In [5]:
import requests
import nrkdownload.nrkapi
import nrkdownload.parse_nrk_url

import logging
nrkdownload.logging.getLogger().setLevel(logging.INFO)

Series


In [ ]:
series_id = 'skam'
json = nrkdownload.nrkapi.get_series(series_id)
json

In [ ]:
s1 = nrkdownload.tv.series_from_series_id('i-heisen-med')
s2 = nrkdownload.tv.series_from_series_id('skam')
s3 = nrkdownload.tv.series_from_series_id('mammon')
s4 = nrkdownload.tv.series_from_series_id('skam')
s5 = nrkdownload.tv.series_from_series_id('dagsrevyen')

In [ ]:
s = nrkdownload.tv.series_from_series_id('unge-lovende')

In [ ]:
s.seasons[0].episodes[0]

In [ ]:
s2.known_series['i-heisen-med'].seasons[1].episode_ids

In [ ]:
s1.seasons[0].episodes[1].media_urls

In [ ]:
nrkdownload.tv.Series.known_series['skam']

Seasons


In [ ]:
s = nrkdownload.classes.Season('skam', 0, '70522', '1')

In [ ]:
s.episode_ids

Episodes in a season


In [ ]:
series = 'skam'
season = '76968'
r = requests.get('http://psapi3-webapp-prod-we.azurewebsites.net/series/{}/seasons/{}/episodes'.format(series, season))
json = r.json()

In [ ]:
for episode in reversed(json):
    print(episode['seasonNumber'], episode['episodeNumber'], episode['id'])

In [ ]:
nrkdownload.nrkapi.get_episode_ids_of_series_season('skam', '70522')

Mediaelement (Program / Episode)


In [ ]:


In [ ]:
json = nrkdownload.nrkapi.get_mediaelement('MUHR01032518')
json

In [ ]:
p = nrkdownload.tv.new_program_from_mediaelement_id('MUHR01032518')

In [ ]:
print(p)

In [ ]:
p.filename

In [ ]:
p.episode_number

In [ ]:
p.series_id

In [ ]:
s = nrkdownload.classes.series_from_series_id(p.series_id)

In [ ]:
s.dir_name

In [ ]:
s.seasons[0].dir_name

In [ ]:
s.seasons[0].episode_ids.index('MDSP13010314')

In [ ]:
a = []
a.index

In [ ]:
print(s.seasons[0])

In [ ]:
json['image']['imageInfo']['id']

In [ ]:
import nrkdownload.utils

In [ ]:
nrkdownload.utils.create_image_url(json['image']['imageInfo']['id'])

In [ ]:
from nrkdownload.nrktv import Program

In [ ]:
p = Program('title', 'DVFJ67000211', 'description', 'image_url')
p

In [ ]:
p.get_download_details()
p.media_urls

In [ ]:
p.make_filename()
p.filename

In [ ]:
string = "Sankthans-stemning fra Stavern"

r = session.get('http://psapi.nrk.no/search?q=herdlefjorden')

In [ ]:
r.text

In [ ]:
r = session.get('https://tv.nrk.no/sok?q=sjakk')

Podcasts

Series


In [ ]:
%reload_ext autoreload
%autoreload 2

import logging
import nrkdownload.nrkapi

nrkdownload.nrkapi.logging.getLogger().setLevel(logging.DEBUG)
json = nrkdownload.nrkapi.get_podcast_series('nyhetsmorgen')

In [ ]:
podcast = nrkdownload.radio.podcast_from_podcast_id('nyhetsmorgen')
for e in podcast.episodes:
    print(e)

In [ ]:
json['titles']['subtitle']

In [ ]:
len(json['_embedded']['episodes']['items'])

In [ ]:
import urllib
urllib.parse.quote('1990-01-01:00:00')

In [ ]:
json['_embedded']['episodes']['items'][9]['_links']['podcastEpisode']['href'].split('/')[-1]

In [ ]:
nrkdownload.radio.

All episodes


In [ ]:
%reload_ext autoreload
%autoreload 2

import nrkdownload.nrkapi
import nrkdownload.radio

json = nrkdownload.nrkapi.get_podcast_episodes('saann_er_du')
json

In [ ]:
json.keys()

In [ ]:
json['items'][0]

In [ ]:
nrkdownload.radio.podcast_episodes('saann_er_du')

One episode


In [ ]:
%reload_ext autoreload
%autoreload 2

import nrkdownload.nrkapi
import nrkdownload.radio

json = nrkdownload.nrkapi.get_podcast_episode('saann_er_du', 'nrkno-poddkast-25555-142549-28102018100000')
json

In [ ]:
json['_links'].get('self')

In [ ]:
e = nrkdownload.radio.episode_from_episode_id('saann_er_du', 'nrkno-poddkast-25555-142549-28102018100000')
print(e)

In [ ]:
e.filename

URL parsing


In [ ]:
urls = [
    'https://tv.nrk.no/serie/oppfinneren',
    'https://tv.nrk.no/serie/oppfinneren/sesong/2',
    'https://tv.nrk.no/serie/oppfinneren/sesong/2/episode/2/avspiller',
    'https://tv.nrk.no/serie/oppfinneren/MKTV52000418',
    'https://tv.nrk.no/serie/forbrukerinspektoerene/MDHP11004318',
    'https://tv.nrk.no/serie/forbrukerinspektoerene/MDHP11004318/24-10-2018',
    'https://tv.nrk.no/serie/ut-i-naturen/DVNA50000512',
    'https://tv.nrk.no/serie/ut-i-naturen/DVNA50000512/08-03-2016',
    'https://tv.nrk.no/program/MYNR46000018',
    'https://tv.nrk.no/program/MYNR46000018/arif-og-unge-ferrari-med-stavanger-symfoniorkester',
    'https://tv.nrk.no/program/KMTE30000117',
    'https://tv.nrk.no/program/KMTE30000117/opproersskolen',
    'https://radio.nrk.no/podkast/saann_er_du/',
    'https://radio.nrk.no/podkast/saann_er_du/nrkno-poddkast-25555-141668-15092018140000'
]

In [ ]:
import logging
import nrkdownload.parse_nrk_url
nrkdownload.logging.getLogger().setLevel(logging.WARNING)
nrkdownload.nrkapi.LOG.setLevel(logging.WARNING)

LOG = logging.getLogger(__name__)
for url in urls:
    LOG.info(url)
    programs = nrkdownload.parse_nrk_url.parse_url(url)
    print(url)
    for p in programs:
        print("  ", p)

In [ ]:
p.filename

In [ ]:
ps = nrkdownload.parse_nrk_url.parse_url('https://radio.nrk.no/serie/nitimen/MUHR01032518/04-11-2018')
for p in ps:
    print(p)

In [ ]:
p.filename

In [6]:
p = nrkdownload.parse_nrk_url.parse_url('https://tv.nrk.no/serie/sjakk/MSPO47700118')


[INFO] nrkdownload.parse_nrk_url(80): URL matches episode MSPO47700118

In [10]:
p[0].media_urls


Out[10]:
['http://nordond30a-f.akamaihd.net/i/no/open/9a/9af1ef34efdabaf8ca9be3f9e32e66839e49d06e/d7ac6ada-55c3-43a0-aed6-16fdea820610_,141,316,563,1266,2250,.mp4.csmil/master.m3u8',
 'http://nordond18a-f.akamaihd.net/i/no/open/14/149d50aaddd1a67ed823bb79b36b6c450db779e4/cc434548-b8db-4a73-9502-4234bfd2f713_,141,316,563,1266,2250,.mp4.csmil/master.m3u8',
 'http://nordond27c-f.akamaihd.net/i/no/open/35/351e68fea6d89ecd621fc8e3824eb2a60425e626/768ee725-c917-487b-b89f-f2c878662b7e_,141,316,563,1266,2250,.mp4.csmil/master.m3u8']

In [ ]: