Suppose you have some feed, loaded into foobar2000 playlist. This feed is periodically updated on the site and you want your playlist in the program to be updated accordingly. This can be somehow achieved using
Load feed action, but it does not take into account previously loaded videos, making such update process cumbersome.
Since ver.2.2. there is another way called
To configure auto-updated feeds, go to main menu
View Youtube Source Auto-updated feeds.
Configuration window consists of list control containing all supported feeds discovered in currently opened foobar2000 playlists. It contains info related to feeds updates, has abilities to perform feeds update and setup auto-update.
Note, this list is responsible only for feeds update. You cannot add or remove feeds using this list. It works only with feeds that already exist in foobar2000 playlists. If you add new feed (e.g. using
File Add location...), it will immediately appear in this list. If you remove track representing the feed from playlist, it will be removed from this list, including all update-related info and schedule.
Every feed in the list has checkbox. To enable auto update for the feed, just check its checkbox. Multiple auto-updated feeds per single foobar2000 playlist are supported.
To force update of the feed, no matter if auto update is enabled, use context menu item
To set time interval for auto update, use context menu item
Set update interval.
Examples of update interval strings:
1m30s (update every 90 seconds),
7d (update every week). Time span letters:
d - days,
h - hours,
m - minutes,
s - seconds.
Component restores auto-update schedule on program restart. For the feeds, whose update intervals expired, next update is scheduled within 'randomization interval' after 'initial delay'.
Initial delay is time interval after program start and before update process initiation. So update process won't affect program startup time. This delay is also applied when enabling auto-update (so it can be disabled if this was done accidentally).
Randomization interval is time interval within which expired feeds will be scheduled at program start. Suppose you have dozens of the feeds to update. Without randomization interval they will be scheduled to update at the exactly same moment, resulting in dozens requests at this moment, with possible performance degradation and higher chance of failures.
Both these intervals can be adjusted using corresponding settings in preferences
Advanced Tools Youtube Source Auto-updated feeds group.
Component collects info about successful updates. This info can be accessed using context menu item
Info gets collected only when update process discovers new videos. If there is a gap in results, line gets appended with
(discontinuous) string. Example:
12.12.2017 19:02:16, fetched 15 items 12.12.2017 21:42:24, fetched 3 items 14.12.2017 22:51:07, fetched 15 items (discontinuous) 16:54:02, fetched 9 items
Maximum number of lines to store can be adjusted using preferences
Advanced Tools Youtube Source Auto-updated feeds Maximum number of lines in statistics.
In case of Youtube, if custom Youtube API key is not set, it is possible to load only last 15 videos of the feed (more info) and videos duration is unknown.
Duplicates in the feed may produce not reliable results (gaps). This is so due to design of update process. Component remembers first video URL of every feed. When determining what videos were recently added to the feed, it fetches feed content until this first URL is retrieved or limit is reached. So if retrieved URL is actually a duplicate of remembered first URL, then we have a gap.
By the way, the aforementioned limit is configurable if custom Youtube API key is set. It can be adjusted using preferences
Advanced Tools Youtube Source Auto-updated feeds Maximum number of tracks to fetch.
Component will fetch new videos only if they are added to the top of the feed. More precisely, if they are added before remembered first URL. So if some track was added in the middle of the feed (after previously discovered first URL), it will not be caught by the component.
Next one is also due to design. foobar2000 playlist is required to have track representing the feed to enable 'auto-updated feeds' feature for this feed. Once feed is removed from playlist, auto-update for it is also gets wiped.
This one is connected with the previous one. Tracks, retrieved by this 'auto-updated feeds' feature, are not synchronized with tracks retrieved when expanding origin track representing the feed. In other words, let's suppose you have added the feed, updated it and got 15 videos. Then you double clicked on the feed in foobar2000 playlist and component fetched first portion of the feed. This portion will contain these 15 videos, obtained by update process, i.e. you will have 15 duplicates in playlist.
Is it possible to load all the videos from a channel yet still be able to auto update when channels post new videos? I have a channel that I have retrieved all the videos for and would like to update, but I can't since the feed track is not present.
To make auto-update work, feed track should be there. You can add it the usual way, for example using
File Add location. Once it is added, it will appear in
Auto-updated feeds window. One problem there - auto-update does not know that you already have all videos. So at the first update it will add duplicates that have to be cleaned up manually.
If, say, you are not online at the time it is set to check for updates, will it update the next time you are online?
At program start, if it finds out that update time is expired, it does perform an update and then schedules next time of update basing on the current time.
Help Basic Auto-updated feeds