Some component functionality can be extended using third party binaries. All binaries and their configuration options are described below. They can be configured on
Maintenance tab of component preferences.
All binaries, used by component, are listed in
Third-party Binaries list. Each item in the list has
Source property that controls where to search this binary. To change source use context menu.
All binaries have source called
External. Using it you can specify path where this binary can be found. If binary is placed within foobar2000 profile or program directory, component will store path relative to that directory. This can be useful for portable installations.
Managed is similar to
External except that in this case component controls binaries by itself, providing the way to download these binaries and to check for updates. Managed binaries are always stored in foobar2000 profile directory.
Switching between sources requires program restart. If you have selected
Managed item in context menu, after program restart it will become a popup menu. Now using this menu you can check for updates, download binary of delete previously downloaded version.
State of third-party binaries is printed to console at program start. Alternatively one can use
Status button on
ffmpeg libraries are used to decode audio. Component has embedded ffmpeg with minimum required codecs to play audio from supported sites (represented by
Internal source in the list).
If you want to use component for anything else, that requires broader formats support, you can use external ffmpeg libraries (e.g. from Zeranoe, or Roger Pack, or some custom build). To do that, select
External source and specify directory where ffmpeg binaries are placed (component required 32-bit build with shared libraries)
If ffmpeg source is set to
LAV Filters (that is by default), component uses ffmpeg libraries from LAV Filters. They also use ffmpeg internally, and that ffmpeg has much wider set of supported formats than the one embedded in component.
If ffmpeg source is set to anything other than
Internal, and component cannot load ffmpeg from selected source, it falls back to internal ffmpeg.
By default LAV Filters source is set to
System. That means if they are installed in the system, component will find and load them.
Two other sources (
Managed) do not require them to be installed.
If source is set to
Managed, and you additionally have LAV Filters installed in the system, then component loads filters that have greater version.
In case of
Managed source LAV Filters are downloaded from original repository on GitHub. You can change repository settings using
Configure item of
Managed popup menu. Note, in case of Windows XP default version there is set to
0.70.2 which is the last version that has XP support.
System source has an option
Force default settings. It tells the component to make LAV Filters not to load settings from the system (i.e. use default settings) and not to store them back. This is optional for
System source but is always turned on (regardless of this option) for
The reasons behind that is when local filter has newer version, there are no easy way not to use global settings from older filter version. And there are no way to display settings UI for local filter in this case. I.e. will be used local filter, but will be displayed settings UI of the filter registered in the system. To prevent possible issues because of this, local filter always use default settings.
Component internally uses libcurl for HTTP/HTTPS communication. It is used when
foo_youtube is selected as Audio decoder or Video downloader. Also it is always used at analysis.
In addition to internal libcurl one can select external DLL to be used by component. This was primarily done to be able to use different SSL backend (in internal libcurl is used Windows native SSL backend).
This is DirectShow filter that is used to display subtitles. Configuration options are the same as in LAV Filters.
Managed source uses this repository on GitHub.
youtube-dl, the way it is used by component, is application that can extract from given video page URL various properties like title, description, and URLs to actual media files. All this is used then by the component to provide for URLs supported by youtube-dl the same features as it provides for Youtube.
System source is selected, component searches
youtube-dl.exe in PATH. This can be useful if youtube-dl is installed via pip.
If particular URL is supported by both component and youtube-dl, component tries both ways until it gets positive result. Option
Prefer youtube-dl over internal analyzer controls in this case which way is tried first.
Help Third-party binaries