iView - Some shows load with no episodes

Issue #81 resolved
SubElement created an issue

Hello,

Using latest version as of this post, I see you've done a few commits recently.

I'm having an issue where certain shows are showing no episodes available even though there are.

Was working previously.

Not sure what other information you need, happy to give whatever is needed.

Comments (21)

  1. Former user Account Deleted

    Noticed a post on a Kodi addons support forum saying the same thing. I used to record (and then delete) the shows I was downloading in the hope that it might keep them happy about viewer numbers and stop this happening but it looks like it was a fruitless exercise. Let's hope some genius - like delx :) - figures out a way to restore the functionality.

  2. Callum Gibson

    I discovered an older version from Feb 2017 still works, albeit without the higher resolution downloads from the newer version.

  3. Former user Account Deleted

    Online? Or did you have a local copy? Not sure where to look for early versions.

  4. MarkJ

    If installed via Git, you can revert back to an older version listed in

    git log
    

    via

    git reset --hard <commit-id>
    

    .

    I've tried some from around Feb, and deleted the request cache, but haven't yet found a working version.

  5. Karl Auer

    Wondering if this is somehow related to the recently announced move to HTML5... Where there are shows listed, the download still works in the latest version.

  6. foobar

    Or the new 'Regional Australia' category - which is not showing up in any of the versions I have kept around...

    I tried adding after line 119:

            category("Regional Australia", "regional")
    

    deleted the live streamer and webdl caches in ~/.cache - but didn't help apart from being able to now see the listings for RA

  7. pawD

    The latest commit (update as of 14 June) from author seems fixed the issue. It works for me without the issue any more.

  8. Callum Gibson

    I think something changed on the ABC end. There aren't any new commits since this issue was reported but it's working now.

  9. Larry

    Sadly not fixed. It appears to be silly buggers on the ABC end with respect to the series API. Some will work properly - e.g. Mystery Road http://iview.abc.net.au/api/series/mystery-road, while others like the tunnel and endeavour provide multiple records for the series return. http://iview.abc.net.au/api/series/endeavour, http://iview.abc.net.au/api/series/tunnel. I think this may be a work in progress problem, as one of these may changes while I was looking at it?

    I'm still finding my way around python, but from my wandering around both webdl and the ABC api, the problem is happening in IviewSeriesNode.fill_children() at the line:

        for ep_info in info.get("episodes", []):
    

    This works fine when the series url returns a dictionary (mystery road), but falls down when it returns a list containing a dictionary.

    I'm playing with workarounds at the moment.

  10. Larry

    And after a bit more digging, it looks as though a dictionary is returned if there is only one "seriesHouseNumber", otherwise a list is returned with as many members as unique seriesHouseNumbers.

    At the moment, it looks though each list item duplicates all of the available episodes. I suspect bug not feature though, so a proper fix probably needs to scan all list entries and weed out duplicates. I'm working on a rough cut of this now.

  11. Larry

    And a first cut change for fillchildren() in IviewSeriesNode. I'm sure that the scanning of multiple list items can be done more elegantly, and the duplicate management could move to add episode, but as a first cut, it looks as though it is working.

        # problem lines replaced
        # for ep_info in info.get("episodes", []):
        #     add_episode(self, ep_info)
    
        # dirty hack
        if type(info)==dict:
            slist = []
            slist.append(info)
        else:
            slist = info
    
        for info in slist:
            for ep_info in info.get("episodes", []):
                video_key=ep_info["episodeHouseNumber"]
                for child in self.children:
                    if child.video_key == video_key:
                        # check if this is a duplicate before creating
                        break
                else:
                    # no duplicate found
                    add_episode(self, ep_info)
    
  12. delx repo owner

    Hi,

    I'm not able to reproduce this. For those having trouble could you please comment with: - Series title - ABC iView URL - Count of episodes you expect - The path to the series in grabber.py (eg ABC iView / By Channel / ABC1 / ???)

    @gnutella, I've added "Regional Australia". Thanks.

    @EthicsGradient, I checked "Mystery Road", "Endeavor" and "Tunnel" through the "ByChannel / ABC1" path and it seems fine. Are you still having trouble with these? I wonder if ABC is doing a progressive rollout of some API changes. If you spot a series with a different format could you capture the JSON and attach it here? Thanks.

  13. foobar

    ABC changed something this arvo - even with an old (2017-05-26) version - all I got in the last few days was the latest episode of a series only and zilch with the 2018-06-15 version. Now it all seems OK. Endeavour, Tunnel, Archer for eg. are all good.

    Thanks for all your work delx!

  14. Karl Auer

    One show that definitely had some episodes but was not showing them was "Would I Lie To You".

    ABC iView URL: https://iview.abc.net.au/show/would-i-lie-to-you Count expected: 4 grabber path: 1 (ABC) -> 2 (by channel) -> 1 (ABC1) -> 227

    It is also available via 1 -> 2 -> 2 -> 98

    However, I just cloned the repo at approx 18:00 today and this version seems to be working. I've not done any real testing, have just been downloading stuff I missed over the last few days :-)

    Regards, K.

  15. SubElement reporter

    Didn't update the repo, but just tried and everything seems to be working again?

    How odd... Something the ABC did?

  16. Larry

    @delx, I had been having crashes when using webdl to grab endeavor, the tunnel and a couple of other series over the past couple of days - hence my digging around for a solution (other series such as mystery road were fine). I had isolated the problem to inconsistent json, which my code fragment addressed - however, the ABC appears to have rolled out a fix just after I posted, as all of the json is now consistent and in line with your code. I just reverted to your most recent version and everything is running fine now.

    Still, I've learned a bit more python and a whole lot more about the abc catalogue today, so not a total loss.

  17. Log in to comment