Update online feed expiry check per item

Issue #626 resolved
Petr Nejedly repo owner created an issue

http://forum.serviio.org/viewtopic.php?f=22&t=8757#p61024

Need to identify items and only refresh them when necessary.

Comments (7)

  1. Former user Account Deleted

    As previously posted, for expiresImmediately urls, it is redundant to reextract urls on refreshes since they will be reextracted when played.

    The reextract can be avoided by caching the extracted ContentUrlContainer information and using the cached information to recreate the same Container on subsequent extracts.

    I have implemented this logic within a number of plugins, however there were a number of considerations to address the update of extracted urls on "try again" and to support the use of a plugin with multiple simultaneous feeds and so I have summarized the process in the wiki at http://wiki.serviio.org/doku.php?id=quick_refresh in hopes that it will aid in the implementation of this feature.

  2. Former user Account Deleted

    Also eliminate Try again extract when extracted item is invalid per the following:

    You will recall that I have been attempting to reduce the time taken by Serviio to refresh my WebResources. My approach which is working well, is to cache within the WebResourceItems the information determined by the first extracturl for each item, and to reuse that extracted url information on subsequent refresh extracturlcalls, if the source was declared as expiresimmediately. This eliminates the useless repeated extracturl processing on each refresh since the url will be extracted again should the item ever be used.

    However I have been unable to eliminate the duplicate extracturl processing that Serviio initiates for sources that it cannot locate, which is also useless in the case of expires immediately sources, and I suggest that you modify Serviio logic to eliminate those "Trying again" extracts.

    For example, in refreshing ilive sources, some of the extracted items which I cache, yield dead stream links when Serviio tests them with ffmpeg, consequently they are not cached by Serviio. Hence on a subsequent refresh, after I generate the url from my cache, Serviio finds that the url has not been cached and attempts to extract it again. [code]2013-04-02 22013-04-02 20:44:41,359 DEBUG [FeedUpdaterThread] Cannot get information about the URL, it might have expired already. Trying again.[/code]I have no way to detect that re-extract since it looks the same as a reextract done when the stream is played, consequently a reextract is performed which again fails.

    This reextract performed by Serviio on an expiresimmediately stream is useless and wasted processing, even if I am not attempting to cache, because the reextract will be done again anyway if the stream is played. Can you eliminate it in future versions? It adds significantly to the refresh time. For example, my refresh of ilive takes only 19 seconds for 127 items, but the reextract of the 7 invalid urls takes an additional 4 minutes and 30 seconds which is all useless and wasted processing for these expires immediately sources

  3. Log in to comment