Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions plugin.video.vrt.nu/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ You can report issues at [our GitHub issues page](https://github.com/add-ons/plu
</table>

## Releases
### v2.5.49 (2026-01-14)
- Fix season menu listings (@mediaminister)

### v2.5.48 (2026-01-08)
- Fix menu listings after api change (@mediaminister)

Expand Down
5 changes: 4 additions & 1 deletion plugin.video.vrt.nu/addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.vrt.nu" name="VRT MAX" version="2.5.48+matrix.1" provider-name="Martijn Moreel, dagwieers, mediaminister">
<addon id="plugin.video.vrt.nu" name="VRT MAX" version="2.5.49+matrix.1" provider-name="Martijn Moreel, dagwieers, mediaminister">
<requires>
<import addon="resource.images.studios.white" version="0.0.30"/>
<import addon="script.module.dateutil" version="2.8.2"/>
Expand Down Expand Up @@ -41,6 +41,9 @@
<website>https://github.com/add-ons/plugin.video.vrt.nu/wiki</website>
<source>https://github.com/add-ons/plugin.video.vrt.nu</source>
<news>
v2.5.49 (2026-01-14)
- Fix season menu listings

v2.5.48 (2026-01-08)
- Fix menu listings after api change

Expand Down
72 changes: 7 additions & 65 deletions plugin.video.vrt.nu/resources/lib/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from data import CHANNELS
from helperobjects import TitleItem
from kodiutils import (colour, delete_cached_thumbnail, get_cache, get_setting_bool, get_setting_int, get_url_json, has_addon, has_credentials,
localize, localize_datelong, localize_from_data, log, update_cache, url_for)
localize, localize_datelong, localize_from_data, log, log_error, update_cache, url_for)
from utils import find_entry, parse_duration, reformat_image_url, shorten_link, url_to_program, youtube_to_plugin_url
from graphql_data import EPISODE, EPISODE_TILE, PROGRAM_TILE

Expand Down Expand Up @@ -321,73 +321,13 @@ def get_single_episode_data(episode_id):
__typename
... on EpisodePage {
episode {
...ep
...episode
}
}
}
}
fragment ep on Episode {
__typename
id
title
description
episodeNumberRaw
durationSeconds
offTimeRaw
onTimeRaw
image {
alt
templateUrl
}
analytics {
airDate
categories
contentBrand
episode
mediaSubtype
mediaType
name
pageName
season
show
}
program {
id
title
link
programType
image {
alt
templateUrl
}
posterImage {
alt
templateUrl
}
}
season {
titleRaw
}
shareAction {
url
}
favoriteAction {
favorite
id
title
}
nextUp {
title
autoPlay
countdown
tile {
__typename
...episodeTileFragment
}
}
}
%s
""" % EPISODE_TILE
""" % EPISODE
operation_name = 'OnePlayerData'
variables = {
'id': episode_id,
Expand Down Expand Up @@ -2251,7 +2191,7 @@ def convert_seasons(api_data, program_name):
if season.get('path'):
episode_tile = season.get('episode_tile')
if not episode_tile:
episode_tile = get_single_episode_data(season.get('path')).get('data').get('page')
episode_tile = get_single_episode_data(season.get('path')).get('data', {}).get('page', {})

_, _, _, title_item = convert_episode(episode_tile)
if len(api_data) > 1:
Expand Down Expand Up @@ -2363,7 +2303,7 @@ def find_episode_by_id(target_id):
tile = program.get('mostRelevantEpisodeTile')
if tile:
episode = (tile.get('tile', {}).get('episode', {}))
path = episode.get('shareAction', {}).get('url')
path = episode.get('shareAction', {}).get('url', '')

# Build entry
entry = {
Expand Down Expand Up @@ -2400,6 +2340,8 @@ def api_req(graphql_query, operation_name, variables, client='WEB'):
'x-vrt-client-version': '1.5.12',
}
data_json = get_url_json(url=GRAPHQL_URL, cache=None, headers=headers, data=data)
if data_json.get('errors'):
log_error(dumps(data_json, indent=2))
return data_json


Expand Down