Beispiel #1
0
def test_metadata_language():
    meta_fin = fetch_metadata('https://areena.yle.fi/1-403848',
                              meta_language='fin')
    title_fin = meta_fin[0].get('title')
    assert title_fin.startswith('Suomen tie jatkosotaan')

    meta_swe = fetch_metadata('https://areena.yle.fi/1-403848',
                              meta_language='swe')
    title_swe = meta_swe[0].get('title')
    assert title_swe.startswith('Finlands väg till fortsättningskriget')
Beispiel #2
0
def test_areena_episodes_sort_order():
    metadata = fetch_metadata('https://areena.yle.fi/1-4655342')

    # Should be sorted from oldest to newest
    timestamps = [x['publish_timestamp'] for x in metadata]
    assert len(timestamps) > 1
    assert timestamps == sorted(timestamps)
Beispiel #3
0
def test_areena_live_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/tv/suorat/yle-tv1')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) >= 1
    assert all(f.get('media_type') == 'video' for f in metadata[0]['flavors'])
    assert metadata[0]['region'] == 'Finland'
Beispiel #4
0
def test_areena_ohjelmat_embedded_live_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/tv/ohjelmat/30-595?play=yle-tv2')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) >= 1
    assert all(f.get('media_type') == 'video' for f in metadata[0]['flavors'])
    assert metadata[0]['region'] == 'Finland'
Beispiel #5
0
def test_radio_live_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/radio/ohjelmat/yle-puhe')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) >= 1
    assert all(f.get('media_type') == 'audio' for f in metadata[0]['flavors'])
    assert metadata[0]['title'].startswith('Yle Puhe')
Beispiel #6
0
def test_areena_live_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/tv/suorat/yle-tv1')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) >= 1
    assert all(f.get('media_type') == 'video' for f in metadata[0]['flavors'])
    assert metadata[0]['region'] == 'Finland'
Beispiel #7
0
def test_radio_metadata_hls():
    metadata = fetch_metadata('https://areena.yle.fi/1-4551633')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) == 1
    assert metadata[0]['flavors'][0]['media_type'] == 'audio'
    assert metadata[0]['duration_seconds'] == 2954
Beispiel #8
0
def test_arkivet_audio_metadata():
    metadata = fetch_metadata('https://svenska.yle.fi/artikel/2014/01/28'
                              '/tove-jansson-laser-noveller-ur-dockskapet')

    assert len(metadata) == 11
    assert metadata[0].get('title') == 'Apan ur Dockskåpet'
    for m in metadata:
        assert all(f.get('media_type') == 'audio' for f in m.get('flavors'))
Beispiel #9
0
def test_areena_ohjelmat_embedded_live_metadata():
    metadata = fetch_metadata(
        'https://areena.yle.fi/tv/ohjelmat/30-595?play=yle-tv2')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) >= 1
    assert all(f.get('media_type') == 'video' for f in metadata[0]['flavors'])
    assert metadata[0]['region'] == 'Finland'
Beispiel #10
0
def test_radio_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-3361013')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) == 1
    assert metadata[0]['flavors'][0]['media_type'] == 'audio'
    assert metadata[0]['flavors'][0]['bitrate'] == 192
    assert metadata[0]['duration_seconds'] == 2884
Beispiel #11
0
def test_radio_metadata_2020():
    metadata = fetch_metadata('https://areena.yle.fi/audio/1-50198110')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) == 1
    assert metadata[0]['flavors'][0]['media_type'] == 'audio'
    assert metadata[0]['duration_seconds'] == 1451
    assert len(metadata[0]['description']) > 150
def test_arkivet_audio_metadata():
    metadata = fetch_metadata('https://svenska.yle.fi/artikel/2014/04/03'
                              '/tove-jansson-laser-smatrollen-och-'
                              'den-stora-oversvamningen')

    assert len(metadata) == 2
    for m in metadata:
        assert m.get('title').startswith('Småtrollen')
        assert all(f.get('media_type') == 'audio' for f in m.get('flavors'))
Beispiel #13
0
def test_arkivet_audio_metadata():
    metadata = fetch_metadata('https://svenska.yle.fi/artikel/2014/04/03'
                              '/tove-jansson-laser-smatrollen-och-'
                              'den-stora-oversvamningen')

    assert len(metadata) == 2
    for m in metadata:
        assert m.get('title').startswith('Småtrollen')
        assert all(f.get('media_type') == 'audio' for f in m.get('flavors'))
Beispiel #14
0
def test_arkivet_a_metadata():
    metadata = fetch_metadata('https://svenska.yle.fi/a/7-884297')

    assert len(metadata) >= 4
    assert metadata[1].get('title').startswith('Valborg på Borgbacken')
    flavors = metadata[1]['flavors']
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f for f in flavors)
    assert all('height' in f for f in flavors)
    assert all('width' in f for f in flavors)
Beispiel #15
0
def test_radio_latest():
    # Test fetching the latest radio episode and also implicitly that
    # getting the latest episode is fast even though there are
    # hundreds of news episodes.
    filters = StreamFilters(latest_only=True)
    metadata = fetch_metadata('https://areena.yle.fi/audio/1-1440981', filters)

    assert len(metadata) == 1

    publish_date = datetime.strptime(metadata[0]['publish_timestamp'][:10], '%Y-%m-%d')
    assert publish_date >= datetime(2021, 1, 1)
def test_arkivet_metadata():
    metadata = fetch_metadata('https://svenska.yle.fi/artikel/2014/06/13'
                              '/halla-det-ar-naturvaktarna')

    assert len(metadata) == 1
    assert metadata[0].get('title') == 'Seportage om Naturväktarna'
    flavors = metadata[0]['flavors']
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f for f in flavors)
    assert all('height' in f for f in flavors)
    assert all('width' in f for f in flavors)
Beispiel #17
0
def test_arkivet_metadata():
    metadata = fetch_metadata('https://svenska.yle.fi/artikel/2014/06/13'
                              '/halla-det-ar-naturvaktarna')

    assert len(metadata) == 1
    assert metadata[0].get('title') == 'Seportage om Naturväktarna'
    flavors = metadata[0]['flavors']
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f for f in flavors)
    assert all('height' in f for f in flavors)
    assert all('width' in f for f in flavors)
Beispiel #18
0
def test_areena_latest_episode():
    filters = StreamFilters(latest_only=True)
    metadata = fetch_metadata('https://areena.yle.fi/1-4655342', filters)

    assert len(metadata) == 1

    # The latest episode at the time of writing this test was
    # published on 2021-01-27
    publish_date = datetime.strptime(metadata[0]['publish_timestamp'][:10],
                                     '%Y-%m-%d')
    assert publish_date >= datetime(2021, 1, 27)
Beispiel #19
0
def test_areena_awsmpodamdipv4_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-50875269')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) >= 1
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert metadata[0]['duration_seconds'] == 257
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2021-06-11T08:40:00+03:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['description']) > 150
Beispiel #20
0
def test_areena_iphone_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-4247408')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 1
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 234
    assert metadata[0]['region'] == 'Finland'
    assert metadata[0]['publish_timestamp'] == '2017-11-08T01:15:00+02:00'
Beispiel #21
0
def test_areena_html5_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-403848')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 4
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 3196
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2017-07-16T14:00:00+03:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['subtitles']) == 1
Beispiel #22
0
def test_areena_iphone_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-4247408')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 1
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and
               'height' in f and
               'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 234
    assert metadata[0]['region'] == 'Finland'
    assert metadata[0]['publish_timestamp'] == '2017-11-08T01:15:00+02:00'
Beispiel #23
0
def test_areena_akamai_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-1765055')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 5
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 1624
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2015-11-27T10:00:00+02:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['subtitles']) == 3
Beispiel #24
0
def test_areena_akamai_hds_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-1418526')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 1
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 1601
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2012-01-19T12:00:00+02:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['embedded_subtitles']) == 0
Beispiel #25
0
def test_areena_html5_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-787136')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) >= 5
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 907
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2021-04-01T00:01:00+03:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['description']) > 150
Beispiel #26
0
def test_areena_akamai_hds_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-1418526')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 1
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and
               'height' in f and
               'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 1601
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2012-01-19T12:00:00+02:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['embedded_subtitles']) == 0
Beispiel #27
0
def test_areena_html5_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-403848')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 2
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and
               'height' in f and
               'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 3196
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2017-07-16T14:00:00+03:00'
    assert 'expired_timestamp' not in metadata[0]
    assert metadata[0]['embedded_subtitles'] == [
        {'language': 'fin', 'category': 'ohjelmatekstitys'}
    ]
Beispiel #28
0
def test_areena_html5_metadata():
    metadata = fetch_metadata('https://areena.yle.fi/1-403848')

    assert len(metadata) == 1
    flavors = metadata[0]['flavors']
    assert len(flavors) == 5
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
    assert metadata[0]['duration_seconds'] == 3196
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2017-07-16T14:00:00+03:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['description']) > 150
    assert metadata[0]['embedded_subtitles'] == [{
        'language': 'fin',
        'category': 'ohjelmatekstitys'
    }]
Beispiel #29
0
def test_uutiset_inline_audio_block_metadata():
    # This page has an inline AudioBlock
    metadata = fetch_metadata('https://yle.fi/uutiset/3-11843834')

    assert len(metadata) == 1
    assert metadata[0]['webpage'] == 'https://areena.yle.fi/1-50762351'
    assert metadata[0]['title'].startswith(
        'Ykkösaamun kolumni: Janne Saarikivi: On kriisi')
    assert metadata[0]['duration_seconds'] == 333
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2021-03-23T07:00:00+02:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['description']) > 150

    flavors = metadata[0]['flavors']
    assert len(flavors) >= 1
    assert all(f.get('media_type') == 'audio' for f in flavors)
    assert all('bitrate' in f for f in flavors)
Beispiel #30
0
def test_uutiset_headline_metadata():
    # This page has a video embedded as "headline.video"
    metadata = fetch_metadata('https://yle.fi/uutiset/3-11796748')

    assert len(metadata) == 1
    assert metadata[0]['webpage'] == 'https://areena.yle.fi/1-50765436'
    assert metadata[0]['title'].startswith(
        'Yle Uutiset suora: Missä mennään rokotehankkeessa')
    assert metadata[0]['duration_seconds'] == 3547
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2021-02-18T10:58:40+02:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['description']) > 150

    flavors = metadata[0]['flavors']
    assert len(flavors) >= 3
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
Beispiel #31
0
def test_uutiset_main_media_metadata():
    # This page has a video embedded as "mainMedia"
    metadata = fetch_metadata('https://yle.fi/uutiset/3-11822823')

    assert len(metadata) == 1
    assert metadata[0]['webpage'] == 'https://areena.yle.fi/1-50653021'
    assert metadata[0]['title'].startswith(
        'Perjantai-dokkari: Tuomas, vaatimaton maailmantähti')
    assert metadata[0]['duration_seconds'] == 690
    assert metadata[0]['region'] == 'World'
    assert metadata[0]['publish_timestamp'] == '2021-03-05T21:30:00+02:00'
    assert 'expired_timestamp' not in metadata[0]
    assert len(metadata[0]['description']) > 150

    flavors = metadata[0]['flavors']
    assert len(flavors) >= 3
    assert all(f.get('media_type') == 'video' for f in flavors)
    assert all('bitrate' in f and 'height' in f and 'width' in f
               for f in flavors)
Beispiel #32
0
def test_radio_live_metadata():
    metadata = fetch_metadata('https://yle.fi/radio/ylepuhe/suora/')

    assert len(metadata) == 1
    assert len(metadata[0]['flavors']) >= 1
    assert all(f.get('media_type') == 'audio' for f in metadata[0]['flavors'])
Beispiel #33
0
def test_arkisto_regression():
    # There was a regression (#168) related to invalid downloadUrl
    meta = fetch_metadata('https://yle.fi/aihe/artikkeli/2013/04/11'
                          '/aanien-illoissa-kuunnellaan-kadonneitakin-aania')
    assert len(meta) == 12
def test_arkisto_regression():
    # There was a regression (#168) related to an invalid downloadUrl
    meta = fetch_metadata('https://yle.fi/aihe/artikkeli/2013/04/11'
                          '/aanien-illoissa-kuunnellaan-kadonneitakin-aania')
    # 12 streams in the article body, possibly more in the footer
    assert len(meta) >= 12