Index: channels/bookmarks.py ================================================================== --- channels/bookmarks.py +++ channels/bookmarks.py @@ -4,11 +4,11 @@ # description: For collecting favourites. And provides some feature/category plugins. # type: channel # version: 1.5 # category: channel # priority: core -# config: {"name":"like_my_bookmarks", "type":"boolean", "value":0, "description":"I like my bookmarks", color: "#f7e7d7"} +# config: { name: like_my_bookmarks, type: boolean, value: 0, description: "I like my bookmarks" } # # Favourite lists. # # This module lists static content from ~/.config/streamtuner2/bookmarks.json. # Any bookmarked station will appear with a star ★ icon in other channels. Index: channels/dirble.py ================================================================== --- channels/dirble.py +++ channels/dirble.py @@ -3,11 +3,15 @@ # title: Dirble # description: Open radio station directory. # version: 0.2 # type: channel # category: radio +# config: +# { name: dirble_api_key, value: "", type: text, description: Custom API access key. }, +# { name: dirble_fetch_homepage, value: 0, type: boolean, description: Also fetch homepages when updating stations. (Rather slow.) } # priority: optional +# url: http://dirble.com/ # documentation: http://dirble.com/developer/api # # Provides a nice JSON API, so is easy to support. # # However useful station information (homepage, etc.) only @@ -29,28 +33,15 @@ class dirble (ChannelPlugin): # description title = "Dirble" module = "dirble" - homepage = "http://dirble.com/" has_search = True listformat = "audio/x-scpls" titles = dict(listeners=False, playing="Location") categories = [] - config = [ - {"name": "dirble_api_key", - "value": "", - "type": "text", - "description": "Custom API access key." - }, - {"name": "dirble_fetch_homepage", - "value": 0, - "type": "boolean", - "description": "Also fetch homepages when updating stations. (This is super slow, as it requires one extra request for each station.)" - } - ] catmap = {} base = "http://api.dirble.com/v1/%s/apikey/%s/" cid = "a0bdd7b8efc2f5d1ebdf1728b65a07ece4c73de5" Index: channels/file.py ================================================================== --- channels/file.py +++ channels/file.py @@ -6,16 +6,14 @@ # category: media # version: 0.1 # priority: optional # depends: mutagen # config: -# {name:"file_browser_dir", "type":"text", "value": "~/Music, /media/music", "description":"list of directories to scan for audio files"}, -# {name:"file_browser_ext", "type":"text", "value":"mp3,ogg, m3u,pls,xspf, avi,flv,mpg,mp4", "description":"file type filter"}, -# +# { name: file_browser_dir, type: text, value: "~/Music, /media/music", description: "List of directories to scan for audio files." }, +# { name: file_browser_ext, type: text, value: "mp3,ogg, m3u,pls,xspf, avi,flv,mpg,mp4", description: "File type/extension filter." }, # # Local file browser. -# # # modules Index: channels/global_key.py ================================================================== --- channels/global_key.py +++ channels/global_key.py @@ -3,10 +3,14 @@ # title: Global keyboard shortcut # description: Allows switching between bookmarked radios via key press. # type: feature # category: ui # version: 0.2 +# config: +# { name="switch_key", type="text", value="XF86Forward", description="Global key shortcut for switching radio." }, +# { name="switch_channel", type="text", value="bookmarks:favourite", description="Station list and channels to alternate in." }, +# { name="switch_random", type="boolean", value=0, description="Pick random channel, instead of next." }, # priority: extra # depends: python-keybinder # # # Binds a key to global desktop (F13 = left windows key). On keypress @@ -28,16 +32,10 @@ class global_key(object): module = "global_key" title = "keyboard shortcut" meta = plugin_meta() - - config = [ - dict(name="switch_key", type="text", value="XF86Forward", description="global key for switching radio"), - dict(name="switch_channel", type="text", value="bookmarks:favourite", description="station list to alternate in"), - dict(name="switch_random", type="boolean", value=0, description="pick random channel, instead of next"), - ] last = 0 # register def __init__(self, parent): Index: channels/history.py ================================================================== --- channels/history.py +++ channels/history.py @@ -3,18 +3,17 @@ # title: History # description: List recently played stations under favourites > history. # version: 1.0 # type: category # category: ui +# config: +# { name: history, type: int, value: 20, description: Number of last played streams to keep in history list., category: limit } # priority: optional -# config: { name: history, type: int, value: 20, description: Number of last played streams to keep in history list., category: limit } # # # Lists last activated streams in a new [history] tab in the favourites # channel. -# -# # from config import * Index: channels/icast.py ================================================================== --- channels/icast.py +++ channels/icast.py @@ -1,13 +1,15 @@ # encoding: UTF-8 # api: streamtuner2 -# title: iCast +# title: iCast.io # description: Open collaborative stream directory # version: 0.1 # type: channel +# url: http://www.icast.io/ # category: radio # priority: optional +# config: - # documentation: http://api.icast.io/ # # A modern alternative to ShoutCast/ICEcast. # Streams are user-contributed, but often lack meta data (homepage) and # there's no ordering by listeneres/popularity. @@ -35,12 +37,10 @@ has_search = True listformat = "audio/x-scpls" titles = dict(listeners=False, bitrate=False, playing=False) categories = [] - config = [ - ] base = "http://api.icast.io/1/" # Categories require little post-processing, just dict into list conversion Index: channels/internet_radio.py ================================================================== --- channels/internet_radio.py +++ channels/internet_radio.py @@ -1,12 +1,15 @@ # # api: streamtuner2 -# title: Internet-Radio.com +# title: Internet-Radio # description: Broad list of webradios from all genres. # type: channel # category: radio # version: 1.2 +# url: http://www.internet-radio.org.uk/ +# config: +# { name: internetradio_max_pages, type: int, value: 5, category: limit, description: How many pages to fetch and read. } # priority: standard # # Internet-Radio.co.uk/.com is one of the largest directories of streams. # Available music genre classifications are mirrored verbatim and flatly. # @@ -39,22 +42,10 @@ title = "InternetRadio" module = "internet_radio" homepage = "http://www.internet-radio.org.uk/" listformat = "audio/x-scpls" - # settings - config = [ - { - "name": "internetradio_max_pages", - "type": "int", - "value": 5, - "category": "limit", - "description": "How many pages to fetch and read.", - }, - ] - - # category map categories = [] current = "" default = "" Index: channels/itunes.py ================================================================== --- channels/itunes.py +++ channels/itunes.py @@ -1,13 +1,15 @@ # encoding: UTF-8 # api: streamtuner2 -# title: iTunes Radio (via RS) +# title: iTunes Radio # description: iTunes unsorted station list via RoliSoft Radio Playlist caching webservice. # version: 0.1 # type: channel # category: radio +# url: http://www.itunes.com? # priority: optional +# config: - # documentation: http://lab.rolisoft.net/playlists.html # # Provides pre-parsed radio station playlists for various services # → Shoutcast # → Xiph/ICEcast @@ -65,12 +67,10 @@ "Top 40", "'70s Retro", "'80s Flashback", "'90s Hits", ] - config = [ - ] base = "http://lab.rolisoft.net/playlists/itunes.php" #base = "http://aws-eu.rolisoft.net/playlists/itunes.php" #base = "http://aws-us.rolisoft.net/playlists/itunes.php" Index: channels/jamendo.py ================================================================== --- channels/jamendo.py +++ channels/jamendo.py @@ -3,15 +3,17 @@ # title: Jamendo # description: A license-free music collection and artist hub. # type: channel # version: 2.2 # category: radio +# url: http://jamendo.com/ # depends: json -# priority: default # config: -# { name: "jamendo_stream_format", type: "select", value: "ogg", select: "ogg=Ogg Vorbis|mp32=MP3, 192vbr|mp31=MP3, 96kbps|flac=Xiph FLAC", description: "Default streaming audio format. Albums and playlists still return Vorbis mostly for best quality." } -# +# { name: jamendo_stream_format, value: ogg, type: select, select: "ogg=Ogg Vorbis|mp32=MP3, 192vbr|mp31=MP3, 96kbps|flac=Xiph FLAC", description: "Default streaming audio format. Albums and playlists still return Vorbis mostly for best quality." } +# { name: jamendo_image_size, value: 50, type: select, select: "25=25px|35=35px|50=50px|55=55px|60=60px|65=65px|70=70px|75=75px|85=85px|100=100px|130=130px|150=150px|200=200px|300=300px", description: "Preview images size (height and width) for albums or tracks." } +# { name: jamendo_count, value: 1, type:text, description: "How many result sets (200 entries each) to retrieve." } +# priority: default # # Now utilizes the Jamendo /v3.0/ API. # # Radio station lists are fixed for now. Querying the API twice per station # doesn't seem overly sensible. @@ -63,31 +65,10 @@ cid = "49daa4f5" categories = [] titles = dict( title="Title", playing="Album/Artist/User", bitrate=False, listeners=False ) - - config = [ - {"name":"jamendo_stream_format", - "value":"ogg", - "type": "select", - "select": "ogg=Ogg Vorbis|mp32=MP3, 192vbr|mp31=MP3, 96kbps|flac=Xiph FLAC", - "description": "Default streaming audio format. Albums and playlists still return Vorbis mostly for best quality." - }, - {"name": "jamendo_image_size", - "value": "50", - "type": "select", - "select": "25=25px|35=35px|50=50px|55=55px|60=60px|65=65px|70=70px|75=75px|85=85px|100=100px|130=130px|150=150px|200=200px|300=300px", - "description": "Preview images size (height and width) for albums or tracks." - }, - {"name": "jamendo_count", - "value": "1", # "offset": in API is broken, so leave this at 1 - "type":"text", - "description": "How many result sets (200 entries each) to retrieve." - } - ] - # refresh category list def update_categories(self): Index: channels/links.py ================================================================== --- channels/links.py +++ channels/links.py @@ -4,15 +4,14 @@ # description: Static list of various music directory websites. # type: category # category: web # version: 0.2 # priority: default -# +# config: - # -# Simply adds a "links" entry in bookmarks tab, where known channels -# and some others are listed with homepage links. -# +# Simply adds a "links" entry in bookmarks tab, where known services +# are listed with homepage links. # from config import * from channels import * @@ -27,14 +26,10 @@ module = "links" title = "Links" version = 0.1 meta = plugin_meta() - - # configuration settings - config = [ ] - # list streams = [ ] default = [ ("stream", "rad.io", "http://www.rad.io/"), ("stream", "RadioTower", "http://www.radiotower.com/"), Index: channels/live365.py ================================================================== --- channels/live365.py +++ channels/live365.py @@ -1,25 +1,24 @@ # api: streamtunter2 # title: Live365 # description: Around 5000 categorized internet radio streams, some paid ad-free ones. +# version: 0.3 # type: channel # category: radio -# version: 0.3 +# url: http://www.live365.com/ +# config: - # priority: optional -# # # # We're currently extracting from the JavaScript; # # stn.set("param", "value"); # # And using a HTML5 player direct URL now: # # /cgi-bin/play.pls?stationid=%s&direct=1&file=%s.pls -# -# # # streamtuner2 modules from config import conf Index: channels/modarchive.py ================================================================== --- channels/modarchive.py +++ channels/modarchive.py @@ -2,11 +2,13 @@ # api: streamtuner2 # title: MODarchive # description: Collection of module / tracker audio files (MOD, S3M, XM, etc.) # type: channel # version: 0.2 +# url: http://www.modarchive.org/ # priority: extra +# config: - # category: music # # # Just a genre browser. # Index: channels/myoggradio.py ================================================================== --- channels/myoggradio.py +++ channels/myoggradio.py @@ -3,12 +3,16 @@ # title: MyOggRadio # description: Open source internet radio directory. # type: channel # category: radio # version: 0.5 -# priority: standard +# url: http://www.myoggradio.org/ # depends: json, StringIO +# config: +# { name: myoggradio_login, type: text, value: "user:password", description: "Account for storing personal favourites." } +# { name: myoggradio_morph, type: boolean, value: 0, description: "Convert pls/m3u into direct shoutcast url." } +# priority: standard # # MyOggRadio is an open source radio station directory. Because this matches # well with streamtuner2, there's now a project partnership. Shared streams can easily # be downloaded in this channel plugin. And streamtuner2 users can easily share their # favourite stations into the MyOggRadio directory. @@ -40,16 +44,10 @@ module = "myoggradio" homepage = "http://www.myoggradio.org/" api = "http://www.myoggradio.org/" listformat = "url/direct" - # config data - config = [ - {"name":"myoggradio_login", "type":"text", "value":"user:password", "description":"Account for storing personal favourites."}, - {"name":"myoggradio_morph", "type":"boolean", "value":0, "description":"Convert pls/m3u into direct shoutcast url."}, - ] - # hide unused columns titles = dict(playing=False, listeners=False, bitrate=False) # category map Index: channels/punkcast.py ================================================================== --- channels/punkcast.py +++ channels/punkcast.py @@ -3,10 +3,12 @@ # title: PunkCast # description: Online video site that covered NYC artists. Not updated anymore. # type: channel # category: video # version: 0.1 +# url: http://www.punkcast.com/ +# config: - # priority: rare # # # Disables itself per default. # ST1 looked prettier with random images within. Index: channels/radiotray.py ================================================================== --- channels/radiotray.py +++ channels/radiotray.py @@ -3,10 +3,12 @@ # description: Allows to bookmark stations to RadioTray # version: 0.2 # type: feature # category: bookmarks # depends: deb:python-dbus, deb:streamtuner2, deb:python-xdg +# config: - +# url: http://radiotray.sourceforge.net/ # priority: extra # id: streamtuner2-radiotray # pack: radiotray.py=/usr/share/streamtuner2/channels/ # # Adds a context menu "Keep in RadioTray.." to bookmark streams @@ -40,13 +42,10 @@ # plugin info module = "radiotray" title = "RadioTray" meta = plugin_meta() - # configuration settings - config = [ - ] # bookmarks cat parent = None bm = None # radiotray config file / bookmarks rt_xml = "%s/%s/%s" % (xdg_data_home, "radiotray", "bookmarks.xml") Index: channels/shoutcast.py ================================================================== --- channels/shoutcast.py +++ channels/shoutcast.py @@ -2,15 +2,17 @@ # api: streamtuner2 # title: Shoutcast.com # description: Primary list of shoutcast servers (now managed by radionomy). # type: channel # category: radio -# priority: default -# version: 1.5 -# depends: pq, re, http # author: Mario # original: Jean-Yves Lefort +# version: 1.5 +# url: http://www.shoutcast.com/ +# config: - +# priority: default +# depends: pq, re, http # # Shoutcast is a server software for audio streaming. It automatically spools # station information on shoutcast.com # It has been aquired by Radionomy in 2014, since then significant changes # took place. The former YP got deprecated, now seemingly undeprecated. @@ -44,20 +46,14 @@ # SHOUTcast data module ---------------------------------------- class shoutcast(channels.ChannelPlugin): # desc - api = "streamtuner2" module = "shoutcast" title = "SHOUTcast" - homepage = "http://www.shoutcast.com/" base_url = "http://shoutcast.com/" listformat = "audio/x-scpls" - - # settings - config = [ - ] # categories categories = [] catmap = {"Choral": 35, "Winter": 275, "JROCK": 306, "Motown": 237, "Political": 290, "Tango": 192, "Ska": 22, "Comedy": 283, "Decades": 212, "European": 143, "Reggaeton": 189, "Islamic": 307, "Freestyle": 114, "French": 145, "Western": 53, "Dancepunk": 6, "News": 287, "Xtreme": 23, "Bollywood": 138, "Celtic": 141, "Kids": 278, "Filipino": 144, "Hanukkah": 270, "Greek": 146, "Punk": 21, "Spiritual": 211, "Industrial": 14, "Baroque": 33, "Talk": 282, "JPOP": 227, "Scanner": 291, "Mediterranean": 154, "Swing": 174, "Themes": 89, "IDM": 75, "40s": 214, "Funk": 236, "Rap": 110, "House": 74, "Educational": 285, "Caribbean": 140, "Misc": 295, "30s": 213, "Anniversary": 266, "Sports": 293, "International": 134, "Tribute": 107, "Piano": 41, "Romantic": 42, "90s": 219, "Latin": 177, "Grunge": 10, "Dubstep": 312, "Government": 286, "Country": 44, "Salsa": 191, "Hardcore": 11, "Afrikaans": 309, "Downtempo": 69, "Merengue": 187, "Psychedelic": 260, "Female": 95, "Bop": 167, "Tribal": 80, "Metal": 195, "70s": 217, "Tejano": 193, "Exotica": 55, "Anime": 277, "BlogTalk": 296, "African": 135, "Patriotic": 101, "Blues": 24, "Turntablism": 119, "Chinese": 142, "Garage": 72, "Dance": 66, "Valentine": 273, "Barbershop": 222, "Alternative": 1, "Technology": 294, "Folk": 82, "Klezmer": 152, "Samba": 315, "Turkish": 305, "Trance": 79, "Dub": 245, "Rock": 250, "Polka": 59, "Modern": 39, "Lounge": 57, "Indian": 149, "Hindi": 148, "Brazilian": 139, "Eclectic": 93, "Korean": 153, "Creole": 316, "Dancehall": 244, "Surf": 264, "Reggae": 242, "Goth": 9, "Oldies": 226, "Zouk": 162, "Environmental": 207, "Techno": 78, "Adult": 90, "Rockabilly": 262, "Wedding": 274, "Russian": 157, "Sexy": 104, "Chill": 92, "Opera": 40, "Emo": 8, "Experimental": 94, "Showtunes": 280, "Breakbeat": 65, "Jungle": 76, "Soundtracks": 276, "LoFi": 15, "Metalcore": 202, "Bachata": 178, "Kwanzaa": 272, "Banda": 179, "Americana": 46, "Classical": 32, "German": 302, "Tamil": 160, "Bluegrass": 47, "Halloween": 269, "College": 300, "Ambient": 63, "Birthday": 267, "Meditation": 210, "Electronic": 61, "50s": 215, "Chamber": 34, "Heartache": 96, "Britpop": 3, "Soca": 158, "Grindcore": 199, "Reality": 103, "00s": 303, "Symphony": 43, "Pop": 220, "Ranchera": 188, "Electro": 71, "Christmas": 268, "Christian": 123, "Progressive": 77, "Jazz": 163, "Trippy": 108, "Instrumental": 97, "Tropicalia": 194, "Fusion": 170, "Healing": 209, "Glam": 255, "80s": 218, "KPOP": 308, "Worldbeat": 161, "Mixtapes": 117, "60s": 216, "Mariachi": 186, "Soul": 240, "Cumbia": 181, "Inspirational": 122, "Impressionist": 38, "Gospel": 129, "Disco": 68, "Arabic": 136, "Idols": 225, "Ragga": 247, "Demo": 67, "LGBT": 98, "Honeymoon": 271, "Japanese": 150, "Community": 284, "Weather": 317, "Asian": 137, "Hebrew": 151, "Flamenco": 314, "Shuffle": 105} current = "" Index: channels/surfmusik.py ================================================================== --- channels/surfmusik.py +++ channels/surfmusik.py @@ -1,13 +1,16 @@ # encoding: UTF-8 # api: streamtuner2 # title: SurfMusik # description: User collection of streams categorized by region and genre. +# author: gorgonz123 # version: 0.5 # type: channel # category: radio -# author: gorgonz123 +# config: +# { name: surfmusik_lang, value: EN, type: select, select: "DE=German|EN=English", description: "Switching to a new category title language requires reloading the category tree.", category: language } +# priority: default # source: http://forum.ubuntuusers.de/topic/streamtuner2-zwei-internet-radios-anhoeren-au/3/ # recognizes: max_streams # # This plugin comes in German (SurfMusik) and English (SurfMusic) variations. # It provides a vast collection of international stations and genres. @@ -44,22 +47,10 @@ "EN": ("http://www.surfmusic.de/", "format/", "country/"), } categories = [] titles = dict( genre="Genre", title="Station", playing="Location", bitrate=False, listeners=False ) - - config = [ - { - "name": "surfmusik_lang", - "value": "EN", - "type": "select", - "select":"DE=German|EN=English", - "description": "Switching to a new category title language requires reloading the category tree.", - "category": "language", - } - ] - # Set channel title def __init__(self, parent=None): self.title = ("SurfMusik", "SurfMusic")[conf.get("surfmusik_lang", "EN") == "EN"] ChannelPlugin.__init__(self, parent) Index: channels/timer.py ================================================================== --- channels/timer.py +++ channels/timer.py @@ -4,10 +4,11 @@ # description: Schedules play/record events for bookmarked radio stations. # type: feature # category: ui # depends: kronos # version: 0.5 +# config: - # priority: optional # support: unsupported # # Okay, while programming this, I missed the broadcast I wanted to hear. Again(!) # But still this is a useful extension, as it allows recording and playing specific @@ -20,11 +21,11 @@ # from config import * from channels import * -import kronos +import kronos # Doesn't work with Python3 from mygtk import mygtk from action import action import copy import re @@ -38,12 +39,10 @@ title = "Timer" meta = plugin_meta() # configuration settings - config = [ - ] timefield = "playing" # kronos scheduler list sched = None Index: channels/tunein.py ================================================================== --- channels/tunein.py +++ channels/tunein.py @@ -3,10 +3,12 @@ # title: TuneIn # description: Online Radio, Broadcasts, Podcasts # version: 0.1 # type: channel # category: radio +# url: http://tunein.com/ +# config: - # priority: optional # documentation: http://opml.radiotime.com/ # # Utilized OPML for station/podcast entries. # @@ -33,17 +35,16 @@ # description title = "TuneIn" module = "tunein" homepage = "http://tunein.com/" - has_search = True + has_search = False listformat = "audio/x-scpls" titles = dict(listeners=False) base = "http://opml.radiotime.com/" categories = ["local", "60's", "70's", "80's", "90's", "Adult Contemporary", "Alternative Rock", "Ambient", "Bluegrass", "Blues", "Bollywood", "Children's Music", "Christmas", "Classic Hits", "Classic Rock", "Classical", "College Radio", "Country", "Decades", "Disco", "Easy Listening", "Eclectic", "Electronic", "Folk", "Hip Hop", "Indie", "Internet Only", "Jazz", "Live Music", "Oldies", "Polka", "Reggae", "Reggaeton", "Religious", "Rock", "Salsa", "Soul and R&B", "Spanish Music", "Specialty", "Tango", "Top 40/Pop", "World"] - config = [] catmap = {"60's": "g407", "Live Music": "g2778", "Children's Music": "c530749", "Polka": "g84", "Tango": "g3149", "Top 40/Pop": "c57943", "90's": "g2677", "Eclectic": "g78", "Decades": "c481372", "Christmas": "g375", "Reggae": "g85", "Reggaeton": "g2771", "Oldies": "c57947", "Jazz": "c57944", "Specialty": "c418831", "Hip Hop": "c57942", "College Radio": "c100000047", "Salsa": "g124", "Bollywood": "g2762", "70's": "g92", "Country": "c57940", "Classic Hits": "g2755", "Internet Only": "c417833", "Disco": "g385", "Rock": "c57951", "Soul and R&B": "c1367173", "Blues": "g106", "Classic Rock": "g54", "Alternative Rock": "c57936", "Adult Contemporary": "c57935", "Classical": "c57939", "World": "c57954", "Indie": "g2748", "Religious": "c57950", "Bluegrass": "g63", "Spanish Music": "c57945", "Easy Listening": "c10635888", "Ambient": "g2804", "80's": "g42", "Electronic": "c57941", "Folk": "g79"} # Retrieve cat list and map def update_categories(self): Index: channels/xiph.py ================================================================== --- channels/xiph.py +++ channels/xiph.py @@ -1,12 +1,15 @@ # encoding: UTF-8 # api: streamtuner2 # title: Xiph.org # description: ICEcast radio directory. Now utilizes a cached JSON API. # type: channel -# category: radio +# url: http://dir.xiph.org/ # version: 0.3 +# category: radio +# config: +# { name: xiph_min_bitrate, value: 64, type: int, description: "minimum bitrate, filter anything below", category: filter } # priority: standard # # Xiph.org maintains the Ogg streaming standard and Vorbis audio compression # format, amongst others. The ICEcast server is an alternative to SHOUTcast. # @@ -52,13 +55,10 @@ title = "Xiph.org" homepage = "http://dir.xiph.org/" #xml_url = "http://dir.xiph.org/yp.xml" json_url = "http://api.include-once.org/xiph/cache.php" listformat = "url/http" - config = [ - {"name":"xiph_min_bitrate", "value":64, "type":"int", "description":"minimum bitrate, filter anything below", "category":"filter"} - ] has_search = True # content categories = [ "pop", "top40" ] current = "" Index: channels/youtube.py ================================================================== --- channels/youtube.py +++ channels/youtube.py @@ -2,13 +2,18 @@ # api: streamtuner2 # title: Youtube # description: Channel, playlist and video browsing for youtube. # type: channel # version: 0.2 +# url: http://www.youtube.com/ # category: video +# config: +# { name: youtube_channels, type: text, value: "Key Of Awesome, Pentatonix", description: "Preferred channels to list videos from.", category: select } +# { name: youtube_region, type: select, select: "=No Region|AR=Argentina|AU=Australia|AT=Austria|BE=Belgium|BR=Brazil|CA=Canada|CL=Chile|CO=Colombia|CZ=Czech Republic|EG=Egypt|FR=France|DE=Germany|GB=Great Britain|HK=Hong Kong|HU=Hungary|IN=India|IE=Ireland|IL=Israel|IT=Italy|JP=Japan|JO=Jordan|MY=Malaysia|MX=Mexico|MA=Morocco|NL=Netherlands|NZ=New Zealand|PE=Peru|PH=Philippines|PL=Poland|RU=Russia|SA=Saudi Arabia|SG=Singapore|ZA=South Africa|KR=South Korea|ES=Spain|SE=Sweden|CH=Switzerland|TW=Taiwan|AE=United Arab Emirates|US=United States", value: UK, description: "Filter by region id., category: auth } +# { name: youtube_wadsworth, type: boolean, value: 0, description: "Apply Wadsworth constant.", category: filter } # priority: optional -# suggests: youtube-dl +# depends: bin:youtube-dl # # # Lists recently popular youtube videos by category or channels. # # Introduces the faux MIME type "video/youtube" for player and recording @@ -92,37 +97,10 @@ ["Pop", "Billboard charts", "Rock", "Hip Hop", "Classical", "Soundtrack", "Ambient", "Jazz", "Blues", "Soul", "Country", "Disco", "Dance", "House", "Trance", "Techno", "Electronica"], "my channels", ["Key of Awesome", "Pentatonix"] ] - - # plugin settings - config = [ - { - "name": "youtube_channels", - "type": "text", - "value": "Key Of Awesome, Pentatonix", - "description": "Preferred channels to list videos from.", - "category": "select", - }, - { - "name": "youtube_region", - "type": "select", - "select": "=No Region|AR=Argentina|AU=Australia|AT=Austria|BE=Belgium|BR=Brazil|CA=Canada|CL=Chile|CO=Colombia|CZ=Czech Republic|EG=Egypt|FR=France|DE=Germany|GB=Great Britain|HK=Hong Kong|HU=Hungary|IN=India|IE=Ireland|IL=Israel|IT=Italy|JP=Japan|JO=Jordan|MY=Malaysia|MX=Mexico|MA=Morocco|NL=Netherlands|NZ=New Zealand|PE=Peru|PH=Philippines|PL=Poland|RU=Russia|SA=Saudi Arabia|SG=Singapore|ZA=South Africa|KR=South Korea|ES=Spain|SE=Sweden|CH=Switzerland|TW=Taiwan|AE=United Arab Emirates|US=United States", - "value": "UK", - "description": "Filter by region id.", - "category": "auth", - }, - { - "name": "youtube_wadsworth", - "type": "boolean", - "value": 0, - "description": "Apply Wadsworth constant.", - "category": "filter", - }, - ] - # from GET https://www.googleapis.com/youtube/v3/videoCategories?part=id%2Csnippet& videocat_id = { "Film & Animation": 1, "Autos & Vehicles": 2, "Music": 10,