# Technical information

### Dependencies

  Python 2.7 or 3.x

  PyGtk or PyGI

  Gtk2 or Gtk3

  Requests/urllib3

  PIL/Pillow

### Soft dependencies

  Python-LXML

  Python-PyQuery

  Audacious/VLC or any other player

  Streamripper or fIcy

  youtube-dl

  fonts: Symbola/Unifont for some UI parts

## Configuration files

/home/$USER/.config/streamtuner2/

  Corresponds to the XDG_CONFIG_HOME setting. All ST2 configuration settings are contained within here and are in JSON format.

/home/$USER/.cache/streamtuner2/

  Set from XDG_CACHE_HOME environment variable. Contains the channel cache/ and icons/. Symlinks in .config remain for convenience.

~/.config/streamtuner2/settings.json

  General runtime options, plugin settings, and configured audio players.

~/.config/streamtuner2/window.json

  Saved window sizes, list widths.

~/.config/streamtuner2/state.json

  Last category in each channel tab.

~/.config/streamtuner2/bookmarks.json

  Is a separate cache file for your bookmarked/favourite radio stations.

~/.cache/streamtuner2/cache/***.json

  Channel cache, with station/stream lists in JSON files.

~/.cache/streamtuner2/icons/*.png

  Holds downloaded favicons for station homepages.

~/.config/streamtuner2/plugins/*.py

  Contain downloaded contrib/ plugins.

On Windows the ~/.config/ directory is called %APPDATA% instead. The paths in there are equally structured. On Linux ~/.cache/ is used to separate temporary from configuration data.

## Installation spread

/usr/bin/streamtuner2

  Associates the main binary.

/usr/share/streamtuner2/

  Contains the individual ST2 python modules, and plugins in channels/. Also packages in pyquery/, but which is only used if the according modules aren't installed by the distribution.

/usr/share/doc/streamtuner2/

  Contains the README, and Mallard/gnome-help/yelp files under help/.

## Public Domain

The majority of code distributed with ST2 is placed into the Public Domain; meaning no licensing requirement and all code can be copied, modified and distributed unrestrictively.

The bundled kronos.py and requests/ library are NOT however.