diff --git a/sources.json b/sources.json index 0288a59..b9b8940 100644 --- a/sources.json +++ b/sources.json @@ -1,4571 +1,5474 @@ [ - { - "_tags": ["unofficial", "untested"], - "name": "Adventures in Odyssey Club", - "description": "Subscription service for the award-winning, original audio drama series enjoyed by the whole family.", - "author": "CATEIN", - "authorUrl": "https://catein.xyz", - "sourceUrl": "https://raw.githubusercontent.com/CATEIN/adventures-in-odyssey-club-plugin/refs/heads/main/AdventuresInOdysseyClubConfig.json", - "repositoryUrl": "https://github.com/CATEIN/adventures-in-odyssey-club-plugin", - "scriptUrl": "./AIOScript.js", - "version": 14, - "iconUrl": "./AIOC.png", - "id": "62e186ef-160d-46d7-9953-74fe84d11b40", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["fotf.my.site.com"], - "authentication": { - "loginUrl": "https://app.adventuresinodyssey.com/signin", - "domainHeadersToFind": { - "fotf.my.site.com": ["Authorization", "x-viewer-id", "x-pin"] - }, - "cookiesToFind": ["idccsrf"], - "loginWarning": "You must select a profile with a PIN for authentication to complete." - }, - "settings": [ - { - "variable": "podcasts", - "name": "Podcasts", - "description": "Show new podcasts in subscription feed", - "type": "Boolean", - "default": "false" - }, - { - "variable": "fetchRandomEpisode", - "name": "Randomizer via Recommended", - "description": "Puts a random episode at the top of recommendations (Recommendations may take longer to load)", - "type": "Boolean", - "default": "false" - }, - { - "variable": "fasterRandom", - "name": "Faster Randomizer", - "description": "Cache episodes instead of using the random API. Might not include the newest episodes. Default when not logged in.", - "type": "Boolean", - "default": "false", - "dependency": "fetchRandomEpisode" - }, - { - "variable": "groupings", - "name": "Content Groupings", - "description": "Choose which content groups appear on the playlists tab", - "type": "Dropdown", - "default": "0", - "options": [ - "Albums", - "Playlists (Club)", - "Series", - "Collections", - "Bonus Videos", - "Life Lessons" - ] - }, - { - "variable": "advancedHeader", - "name": "Advanced settings", - "description": "Advanced/Experimental settings", - "type": "Header" - }, - { - "variable": "commentPageSize", - "name": "Comment page size", - "description": "Set how many comments to load on each request. Higher might be slower", - "type": "Dropdown", - "default": "1", - "options": ["10 (the club uses this)", "20", "30", "40", "50"] - }, - { - "variable": "debug", - "name": "Show additional info", - "description": "Show additional info in description", - "type": "Boolean", - "default": "false" - }, - { - "variable": "secretVariable", - "name": "Enable Experimental Ambient Playback Rerouting", - "description": "Only enable if you are not logged in", - "type": "Boolean", - "default": "false" - } - ], - "changelog": { - "5": [ - "Comment Update!", - "Finding comments should now use less requests", - "Replies now show up", - "Added setting for comment page size", - "Increased EpisodeHomePage size to 30 instead of 25" - ], - "6": [ - "Small lil update", - "Changed EpisodeHomePage API url to one the club might like better", - "Loading comments might show toast messages when searching for a page maybe?", - "Added themes support - issue #2 on github", - "Added weird video URL support - issue #3 on github" - ], - "7": [ - "Another small lil update", - "Changed EpisodeHomePage endpoint again to one that gives both video and audio content", - "Support for badge content (loads the first content id in the badge)" - ], - "8": [ - "Very lil update", - "Fixed older club videos not loading", - "Support for playlist URLs (currently no way to get to them on grayjay)", - "Slightly better search" - ], - "9": [ - "u p d a t e", - "content with null download_url throws UnavailableException", - "Randomizer now works for logged out users via episode cache system", - "Minor changes to recommendations" - ], - "10": [ - "Support for content urls with contentGroup in them", - "Simplifyed isFreeEpisode logic", - "Support for getHome", - "Added Faster Randomizer setting for logged in users", - "Added Content Groupings setting", - "Added Show additional info setting", - "Added Podcasts setting" - ], - "11": [ - "Fixed upcoming free episodes attempting to play", - "Badges are now platform playlist instead of content", - "Description now includes content_body and themes", - "Description now includes links for Themes and Characters" - ], - "12": [ - "Added support for direct media urls starting with https://media.adventuresinodyssey.com/private/audio/episode" - ], - "13": ["hotfix for support for direct media urls"], - "14": [ - "Direct media URLs now:", - "- Display AiOC image instead of nothing", - "- Show URL in description", - "- Random episode in description (if setting enabled)", - "Description now includes image links", - "Show additional info now includes signed_cookie", - "Removed from allowUrls media.adventuresinodyssey.com (not needed)" - ] + { + "_tags": [ + "unofficial", + "untested" + ], + "name": "Adventures in Odyssey Club", + "description": "Subscription service for the award-winning, original audio drama series enjoyed by the whole family.", + "author": "CATEIN", + "authorUrl": "https://catein.xyz", + "sourceUrl": "https://raw.githubusercontent.com/CATEIN/adventures-in-odyssey-club-plugin/refs/heads/main/AdventuresInOdysseyClubConfig.json", + "repositoryUrl": "https://github.com/CATEIN/adventures-in-odyssey-club-plugin", + "scriptUrl": "./AIOScript.js", + "version": 14, + "iconUrl": "./AIOC.png", + "id": "62e186ef-160d-46d7-9953-74fe84d11b40", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "fotf.my.site.com" + ], + "authentication": { + "loginUrl": "https://app.adventuresinodyssey.com/signin", + "domainHeadersToFind": { + "fotf.my.site.com": [ + "Authorization", + "x-viewer-id", + "x-pin" + ] + }, + "cookiesToFind": [ + "idccsrf" + ], + "loginWarning": "You must select a profile with a PIN for authentication to complete." + }, + "settings": [ + { + "variable": "podcasts", + "name": "Podcasts", + "description": "Show new podcasts in subscription feed", + "type": "Boolean", + "default": "false" + }, + { + "variable": "fetchRandomEpisode", + "name": "Randomizer via Recommended", + "description": "Puts a random episode at the top of recommendations (Recommendations may take longer to load)", + "type": "Boolean", + "default": "false" + }, + { + "variable": "fasterRandom", + "name": "Faster Randomizer", + "description": "Cache episodes instead of using the random API. Might not include the newest episodes. Default when not logged in.", + "type": "Boolean", + "default": "false", + "dependency": "fetchRandomEpisode" + }, + { + "variable": "groupings", + "name": "Content Groupings", + "description": "Choose which content groups appear on the playlists tab", + "type": "Dropdown", + "default": "0", + "options": [ + "Albums", + "Playlists (Club)", + "Series", + "Collections", + "Bonus Videos", + "Life Lessons" + ] + }, + { + "variable": "advancedHeader", + "name": "Advanced settings", + "description": "Advanced/Experimental settings", + "type": "Header" + }, + { + "variable": "commentPageSize", + "name": "Comment page size", + "description": "Set how many comments to load on each request. Higher might be slower", + "type": "Dropdown", + "default": "1", + "options": [ + "10 (the club uses this)", + "20", + "30", + "40", + "50" + ] + }, + { + "variable": "debug", + "name": "Show additional info", + "description": "Show additional info in description", + "type": "Boolean", + "default": "false" + }, + { + "variable": "secretVariable", + "name": "Enable Experimental Ambient Playback Rerouting", + "description": "Only enable if you are not logged in", + "type": "Boolean", + "default": "false" + } + ], + "changelog": { + "5": [ + "Comment Update!", + "Finding comments should now use less requests", + "Replies now show up", + "Added setting for comment page size", + "Increased EpisodeHomePage size to 30 instead of 25" + ], + "6": [ + "Small lil update", + "Changed EpisodeHomePage API url to one the club might like better", + "Loading comments might show toast messages when searching for a page maybe?", + "Added themes support - issue #2 on github", + "Added weird video URL support - issue #3 on github" + ], + "7": [ + "Another small lil update", + "Changed EpisodeHomePage endpoint again to one that gives both video and audio content", + "Support for badge content (loads the first content id in the badge)" + ], + "8": [ + "Very lil update", + "Fixed older club videos not loading", + "Support for playlist URLs (currently no way to get to them on grayjay)", + "Slightly better search" + ], + "9": [ + "u p d a t e", + "content with null download_url throws UnavailableException", + "Randomizer now works for logged out users via episode cache system", + "Minor changes to recommendations" + ], + "10": [ + "Support for content urls with contentGroup in them", + "Simplifyed isFreeEpisode logic", + "Support for getHome", + "Added Faster Randomizer setting for logged in users", + "Added Content Groupings setting", + "Added Show additional info setting", + "Added Podcasts setting" + ], + "11": [ + "Fixed upcoming free episodes attempting to play", + "Badges are now platform playlist instead of content", + "Description now includes content_body and themes", + "Description now includes links for Themes and Characters" + ], + "12": [ + "Added support for direct media urls starting with https://media.adventuresinodyssey.com/private/audio/episode" + ], + "13": [ + "hotfix for support for direct media urls" + ], + "14": [ + "Direct media URLs now:", + "- Display AiOC image instead of nothing", + "- Show URL in description", + "- Random episode in description (if setting enabled)", + "Description now includes image links", + "Show additional info now includes signed_cookie", + "Removed from allowUrls media.adventuresinodyssey.com (not needed)" + ] + }, + "_installUrl": "https://raw.githubusercontent.com/CATEIN/adventures-in-odyssey-club-plugin/refs/heads/main/AdventuresInOdysseyClubConfig.json", + "_feeds": { + "commits": "https://github.com/CATEIN/adventures-in-odyssey-club-plugin/commits/main.atom", + "releases": "https://github.com/CATEIN/adventures-in-odyssey-club-plugin/releases.atom" + } }, - "_installUrl": "https://raw.githubusercontent.com/CATEIN/adventures-in-odyssey-club-plugin/refs/heads/main/AdventuresInOdysseyClubConfig.json", - "_feeds": { - "commits": "https://github.com/CATEIN/adventures-in-odyssey-club-plugin/commits/main.atom", - "releases": "https://github.com/CATEIN/adventures-in-odyssey-club-plugin/releases.atom" - } - }, - { - "_tags": ["unofficial", "german", "streaming", "anime"], - "name": "Aniworld", - "description": "Aniworld.to integration for Grayjay", - "author": "Zerophire, Bluscream, Cursor.AI", - "authorUrl": "https://github.com/Bluscream", - "platformUrl": "https://aniworld.to", - "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-aniworld/main/config.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-aniworld", - "scriptUrl": "./script.js", - "version": 1, - "iconUrl": "./icon.png", - "id": "ac3f49ee-f398-5cf4-ac1b-ca1aace76c83", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["aniworld.to"], - "supportedClaimTypes": [3], - "authentication": { - "loginUrl": "https://aniworld.to/login", - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "domainHeadersToFind": { - "aniworld.to": [] - } + { + "_tags": [ + "unofficial", + "german", + "streaming", + "anime" + ], + "name": "Aniworld", + "description": "Aniworld.to integration for Grayjay", + "author": "Zerophire, Bluscream, Cursor.AI", + "authorUrl": "https://github.com/Bluscream", + "platformUrl": "https://aniworld.to", + "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-aniworld/main/config.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-aniworld", + "scriptUrl": "./script.js", + "version": 1, + "iconUrl": "./icon.png", + "id": "ac3f49ee-f398-5cf4-ac1b-ca1aace76c83", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "aniworld.to" + ], + "supportedClaimTypes": [ + 3 + ], + "authentication": { + "loginUrl": "https://aniworld.to/login", + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "domainHeadersToFind": { + "aniworld.to": [] + } + }, + "settings": [], + "changelog": { + "1": [ + "Initial version: Basic search, series listing" + ] + }, + "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-aniworld/main/config.json", + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-aniworld/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-aniworld/releases.atom" + } }, - "settings": [], - "changelog": { - "1": ["Initial version: Basic search, series listing"] + { + "name": "Aparat", + "description": "Aparat is Iran's leading video sharing platform", + "platformUrl": "https://www.aparat.com", + "version": 1, + "author": "Stefan Cruz", + "authorUrl": "", + "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-aparat", + "sourceUrl": "https://stefancruz.github.io/grayjay-plugin-aparat/AparatConfig.json", + "scriptUrl": "./AparatScript.js", + "iconUrl": "https://stefancruz.github.io/grayjay-plugin-aparat/AparatIcon.png", + "id": "a8f7e2d1-4b3c-4e5f-8a9b-1c2d3e4f5a6b", + "scriptSignature": "JU3+BJsNLIBDNlOprqf4Z/iQ+CJcBUxJj2ZYlgfy52ikBw9dtRBgVvYJikbvWuht35Q269NwBrLI1eJbBff34PYvErcYLyDcivnLMxoU0x+O/nWQthUs7azccY/gdDCwrb2jBFGIX3RopsU99nNI3NoB2/hrbt12/DJYGi7ZhgEJkNWU2pT+FTYbGplMmkc0cYVJfclwdQdyCdRGF00rL4Og4yIvtaHgK0A2HzwhELpTlpCyKZxaB9P2T2aYLjPl3Xo63SvZyKVwAielQhfppo8gCG3lFG/T9skc49ApH1i9Rk+ro6H91rOGukINMDNTFgAi0rZ+D782qDBeg7X37g==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", + "packages": [ + "Http" + ], + "allowUrls": [ + "www.aparat.com", + "shorts.aparat.com", + "static.cdn.asset.aparat.com", + "static.cdn.asset.aparat.cloud", + "live.cdn.asset.aparat.com" + ], + "constants": { + "BASE_URL": "https://www.aparat.com", + "API_BASE": "https://www.aparat.com/api/fa/v1" + }, + "settings": [], + "_tags": [], + "_installUrl": "https://stefancruz.github.io/grayjay-plugin-aparat/AparatConfig.json", + "_feeds": { + "commits": "https://github.com/stefancruz/grayjay-plugin-aparat/commits/main.atom", + "releases": "https://github.com/stefancruz/grayjay-plugin-aparat/releases.atom" + } }, - "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-aniworld/main/config.json", - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-aniworld/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-aniworld/releases.atom" - } - }, - { - "name": "Aparat", - "description": "Aparat is Iran's leading video sharing platform", - "platformUrl": "https://www.aparat.com", - "version": 1, - "author": "Stefan Cruz", - "authorUrl": "", - "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-aparat", - "sourceUrl": "https://stefancruz.github.io/grayjay-plugin-aparat/AparatConfig.json", - "scriptUrl": "./AparatScript.js", - "iconUrl": "https://stefancruz.github.io/grayjay-plugin-aparat/AparatIcon.png", - "id": "a8f7e2d1-4b3c-4e5f-8a9b-1c2d3e4f5a6b", - "scriptSignature": "JU3+BJsNLIBDNlOprqf4Z/iQ+CJcBUxJj2ZYlgfy52ikBw9dtRBgVvYJikbvWuht35Q269NwBrLI1eJbBff34PYvErcYLyDcivnLMxoU0x+O/nWQthUs7azccY/gdDCwrb2jBFGIX3RopsU99nNI3NoB2/hrbt12/DJYGi7ZhgEJkNWU2pT+FTYbGplMmkc0cYVJfclwdQdyCdRGF00rL4Og4yIvtaHgK0A2HzwhELpTlpCyKZxaB9P2T2aYLjPl3Xo63SvZyKVwAielQhfppo8gCG3lFG/T9skc49ApH1i9Rk+ro6H91rOGukINMDNTFgAi0rZ+D782qDBeg7X37g==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", - "packages": ["Http"], - "allowUrls": [ - "www.aparat.com", - "shorts.aparat.com", - "static.cdn.asset.aparat.com", - "static.cdn.asset.aparat.cloud", - "live.cdn.asset.aparat.com" - ], - "constants": { - "BASE_URL": "https://www.aparat.com", - "API_BASE": "https://www.aparat.com/api/fa/v1" + { + "_tags": [ + "official", + "working" + ], + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/apple-podcasts/-/commits/master?format=atom" + }, + "name": "Apple Podcasts", + "platformUrl": "https://podcasts.apple.com/", + "description": "One of the biggest podcast indexes owned by Apple", + "author": "Futo", + "sourceUrl": "https://plugins.grayjay.app/ApplePodcasts/ApplePodcastsConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/apple-podcasts", + "scriptUrl": "./ApplePodcastsScript.js", + "version": 16, + "iconUrl": "./ApplePodcastsIcon.png", + "authorUrl": "https://futo.org", + "id": "89ae4889-0420-4d16-ad6c-19c776b28f99", + "subscriptionRateLimit": 10, + "scriptSignature": "LNhcth4OSTNnOmPL+ogR7IkG0QZKbwuJ2z1SwlT0yQadbJaCUShDVv9s/aEu4H95BRuhYJWWYL5zqjb4C8ie0YRJbVUwZh6K/6Kg5CYiY5H/6KCsntxhMSCQYTYYDegNaPCdyKY+SiZn+TtWkfhZ2aXRtdsOyXBzbELKI4vqgkB3vwVt15w9+raJ+wE7JDNcC4Dfgf1NFLx/96qslwPU63w7qawMvgKB7WFzANxfMHCrsLGqQB3VB/3GR2N+VlFndjREVR1SoUiI1tRqKdQ2OVkDBWRVkyOi2sbsh77ABKjQRlbSV18WCLEQK5FF539TDftHo5WbSIP3zfhv5PGG4g==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "itunes.apple.com", + "podcasts.apple.com", + "amp-api.podcasts.apple.com" + ], + "settings": [ + { + "variable": "allowExplicit", + "name": "Allow Explicit Content", + "description": "Allow watching of explicit videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "hideSubscriberOnly", + "name": "Hide Subscriber Only Content", + "description": "Hide content that is only available to subscribers", + "type": "Boolean", + "default": "false" + }, + { + "variable": "contentRecommendationOptionIndex", + "name": "Content recommendations source", + "description": "Select the source of content recommendations", + "type": "Dropdown", + "default": "0", + "options": [ + "Content from channel publisher (if any)", + "Content from podcast" + ] + }, + { + "variable": "countryIndex", + "name": "Country", + "description": "Select a country to populate the Home tab with content specific to that region on Apple Podcasts.", + "type": "Dropdown", + "default": "0", + "options": [ + "US - United States of America", + "AE - United Arab Emirates", + "AG - Antigua and Barbuda", + "AI - Anguilla", + "AM - Armenia", + "AO - Angola", + "AR - Argentina", + "AT - Austria", + "AU - Australia", + "AZ - Azerbaijan", + "BA - Bosnia and Herzegovina", + "BB - Barbados", + "BE - Belgium", + "BF - Burkina Faso", + "BG - Bulgaria", + "BH - Bahrain", + "BJ - Benin", + "BM - Bermuda", + "BN - Brunei Darussalam", + "BO - Bolivia (Plurinational State of)", + "BR - Brazil", + "BS - Bahamas", + "BT - Bhutan", + "BW - Botswana", + "BY - Belarus", + "BZ - Belize", + "CA - Canada", + "CD - Congo (the Democratic Republic of the)", + "CG - Congo", + "CI - Côte d'Ivoire", + "CL - Chile", + "CM - Cameroon", + "CN - China", + "CO - Colombia", + "CR - Costa Rica", + "CV - Cabo Verde", + "CY - Cyprus", + "CZ - Czechia", + "DE - Germany", + "DK - Denmark", + "DM - Dominica", + "DO - Dominican Republic", + "DZ - Algeria", + "EC - Ecuador", + "EE - Estonia", + "EG - Egypt", + "ES - Spain", + "ET - Ethiopia", + "FI - Finland", + "FJ - Fiji", + "FM - Micronesia (Federated States of)", + "FR - France", + "GA - Gabon", + "GB - United Kingdom", + "GD - Grenada", + "GE - Georgia", + "GM - Gambia", + "GR - Greece", + "GT - Guatemala", + "GW - Guinea-Bissau", + "GY - Guyana", + "HK - Hong Kong", + "HN - Honduras", + "HR - Croatia", + "HT - Haiti", + "HU - Hungary", + "ID - Indonesia", + "IE - Ireland", + "IL - Israel", + "IN - India", + "IS - Iceland", + "IT - Italy", + "JM - Jamaica", + "JO - Jordan", + "JP - Japan", + "KE - Kenya", + "KG - Kyrgyzstan", + "KH - Cambodia", + "KN - Saint Kitts and Nevis", + "KR - Korea (the Republic of)", + "KW - Kuwait", + "KZ - Kazakhstan", + "LA - Lao People's Democratic Republic", + "LB - Lebanon", + "LC - Saint Lucia", + "LK - Sri Lanka", + "LR - Liberia", + "LS - Lesotho", + "LT - Lithuania", + "LU - Luxembourg", + "LV - Latvia", + "LY - Libya", + "MA - Morocco", + "MD - Moldova (the Republic of)", + "ME - Montenegro", + "MG - Madagascar", + "MK - North Macedonia", + "ML - Mali", + "MM - Myanmar", + "MN - Mongolia", + "MO - Macao", + "MR - Mauritania", + "MT - Malta", + "MU - Mauritius", + "MV - Maldives", + "MW - Malawi", + "MX - Mexico", + "MY - Malaysia", + "MZ - Mozambique", + "NA - Namibia", + "NE - Niger", + "NG - Nigeria", + "NI - Nicaragua", + "NL - Netherlands", + "NO - Norway", + "NP - Nepal", + "NZ - New Zealand", + "OM - Oman", + "PA - Panama", + "PE - Peru", + "PG - Papua New Guinea", + "PH - Philippines", + "PK - Pakistan", + "PL - Poland", + "PT - Portugal", + "PY - Paraguay", + "QA - Qatar", + "RO - Romania", + "RS - Serbia", + "RU - Russian Federation", + "RW - Rwanda", + "SA - Saudi Arabia", + "SB - Solomon Islands", + "SC - Seychelles", + "SD - Sudan", + "SE - Sweden", + "SG - Singapore", + "SI - Slovenia", + "SK - Slovakia", + "SL - Sierra Leone", + "SN - Senegal", + "SO - Somalia", + "SR - Suriname", + "ST - Sao Tome and Principe", + "SV - El Salvador", + "SZ - Eswatini", + "TD - Chad", + "TG - Togo", + "TH - Thailand", + "TJ - Tajikistan", + "TM - Turkmenistan", + "TN - Tunisia", + "TO - Tonga", + "TR - Turkey", + "TT - Trinidad and Tobago", + "TZ - Tanzania, United Republic of", + "UA - Ukraine", + "UG - Uganda", + "UY - Uruguay", + "UZ - Uzbekistan", + "VC - Saint Vincent and the Grenadines", + "VE - Venezuela", + "VG - Virgin Islands (British)", + "VN - Vietnam", + "VU - Vanuatu", + "YE - Yemen", + "ZA - South Africa", + "ZM - Zambia", + "ZW - Zimbabwe" + ] + } + ], + "authentication": { + "loginUrl": "https://podcasts.apple.com/includes/commerce/authenticate?product=podcasts", + "cookiesToFind": [ + "media-user-token" + ], + "userAgent": "Mozilla/5.0 (iPad; CPU OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1" + } }, - "settings": [], - "_tags": [], - "_installUrl": "https://stefancruz.github.io/grayjay-plugin-aparat/AparatConfig.json", - "_feeds": { - "commits": "https://github.com/stefancruz/grayjay-plugin-aparat/commits/main.atom", - "releases": "https://github.com/stefancruz/grayjay-plugin-aparat/releases.atom" - } - }, - { - "_tags": ["official", "working"], - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/apple-podcasts/-/commits/master?format=atom" + { + "_tags": [ + "working", + "unofficial", + "music" + ], + "name": "Audius Music", + "description": "Audius music platform", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins", + "platformUrl": "https://audius.co/", + "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-audius-co/raw/main/grayjay-plugin-audius-co-config.json", + "repositoryUrl": "http://localhost:8035/grayjay-plugin-audius-co", + "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-audius-co/raw/main/grayjay-plugin-audius-co-script.js", + "version": 1, + "iconUrl": "https://www.google.com/s2/favicons?domain=audius.co&sz=64", + "id": "9c9ed2e5-5d5f-4039-b955-b4de6a989b78", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + ".audius.co", + ".audius.org", + ".theblueprint.xyz", + ".figment.io", + ".cultur3stake.com", + ".audius.rickyrombo.com", + ".megaphone.fm", + ".podtrac.com", + ".cloudfront.net", + ".spreaker.com", + ".podigee-cdn.net", + ".simplecastaudio.com", + ".simplecastcdn.com", + ".transistor.fm", + ".transistorcdn.com", + ".fastcast.ai", + ".rss.com", + ".redcircle.com", + ".omnycontent.com", + ".pscrb.fm", + ".mgln.ai", + ".op3.dev", + ".digitalia.fm", + ".dgt.fm", + ".awesound.com", + ".castos.com", + ".barryeatonshowtime.com" + ], + "supportedClaimTypes": [ + 1, + 2, + 16, + 17 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial release with search, channel, playlist support", + "Playback fixes for gated tracks and direct stream endpoints", + "Expanded allowUrls for podcast media/image CDNs" + ] + } }, - "name": "Apple Podcasts", - "platformUrl": "https://podcasts.apple.com/", - "description": "One of the biggest podcast indexes owned by Apple", - "author": "Futo", - "sourceUrl": "https://plugins.grayjay.app/ApplePodcasts/ApplePodcastsConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/apple-podcasts", - "scriptUrl": "./ApplePodcastsScript.js", - "version": 16, - "iconUrl": "./ApplePodcastsIcon.png", - "authorUrl": "https://futo.org", - "id": "89ae4889-0420-4d16-ad6c-19c776b28f99", - "subscriptionRateLimit": 10, - "scriptSignature": "LNhcth4OSTNnOmPL+ogR7IkG0QZKbwuJ2z1SwlT0yQadbJaCUShDVv9s/aEu4H95BRuhYJWWYL5zqjb4C8ie0YRJbVUwZh6K/6Kg5CYiY5H/6KCsntxhMSCQYTYYDegNaPCdyKY+SiZn+TtWkfhZ2aXRtdsOyXBzbELKI4vqgkB3vwVt15w9+raJ+wE7JDNcC4Dfgf1NFLx/96qslwPU63w7qawMvgKB7WFzANxfMHCrsLGqQB3VB/3GR2N+VlFndjREVR1SoUiI1tRqKdQ2OVkDBWRVkyOi2sbsh77ABKjQRlbSV18WCLEQK5FF539TDftHo5WbSIP3zfhv5PGG4g==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "itunes.apple.com", - "podcasts.apple.com", - "amp-api.podcasts.apple.com" - ], - "settings": [ - { - "variable": "allowExplicit", - "name": "Allow Explicit Content", - "description": "Allow watching of explicit videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "hideSubscriberOnly", - "name": "Hide Subscriber Only Content", - "description": "Hide content that is only available to subscribers", - "type": "Boolean", - "default": "false" - }, - { - "variable": "contentRecommendationOptionIndex", - "name": "Content recommendations source", - "description": "Select the source of content recommendations", - "type": "Dropdown", - "default": "0", - "options": [ - "Content from channel publisher (if any)", - "Content from podcast" + { + "_tags": [ + "unofficial", + "unknown" + ], + "name": "Bandcamp", + "description": "Bandcamp is an American online music distributor", + "author": "William Vigolo", + "authorUrl": "https://williamvds.me", + "sourceUrl": "https://git.sr.ht/~williamvds/bandcamp-grayjay-plugin/blob/master/BandcampConfig.json", + "repositoryUrl": "https://git.sr.ht/~williamvds/bandcamp-grayjay-plugin", + "scriptUrl": "./BandcampScript.js", + "version": 3, + "iconUrl": "./logo.png", + "id": "04a188d3-9a46-4358-9599-1ddfcc83aae0", + "scriptSignature": "ObIgf32kLZGI78SR7CIUH2/tdikOWFk+k1VEUMTevvygAV1wfu5w0xE5NuGfS5NajMlexchgaYaHSc95vv4MTCHosySqNOj7FMH0ClAPhkea9DvcMtAjDsMEjppe0mAWeZaSa1uFD/+vEmKbuQGz5r+I628HfLYH1QhmC43vMd0zt1dFxGJNSaBPz2Hps5fD37MFXK9Aat8J6QGCr6aZ1dolJotfW7lgHWxF9x5HxPL0ZYDTBm0wbOPIhKUoyjLvo/WqNTo4XQvXqquoP6LwKaVOpeKCVyEAHukD8uJLoN8pUuAfYJrqtvDrKHsKoDTWbA0z81R4cMXeJPaEoFqepL7M46K+kemaHEgdHBzYc+mi+xiqlhX3CNwO2D8ltapjAMylrOwuhaABBhEb0f+3iAOVdaH2TxgxvhA5zcemMzQrlgoYXBuVv9efcJ9muYP0t1RuG3xQ35ETyVjuiTjqYCh1UfSZZpJag0JLiK6S99/sveba+DyidVhBAb9ztgGAOYX0leqe3aUAUSsr4cteNvyTWUW0No1ZfrvwsXE0HOHVcTAb53Hseg2Xn2jefKi4aP1JPmkSzzjfbagj7EoF6NDObxkIFf2otm2wXqeeZlcmMGL5FrVhGHKan5MStTLP4HR3SMWH8udKd+AFeTLEyObA73Wi6z6ySMczlBgoTkA=", + "scriptPublicKey": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6YFYu5pKrKFqJ3Lez6tYUIU+rx9nfpimbPrRqGNwHgx2H/wXEMFrSwTp/cZipccJhqJM/ElBYTI8Z8bUowpkHFfFnwFfOHR+XCLx2deKyR9CJTsLoe0jhjRGwkFc25oeToO8gkvkoYbGH1nk+Ri5qAFNPDPxnTmmtnHyUCIVOWHTc9nrSaXNslUekz2NEpIXzvVq99L9ZdXBe61Pz7jFGJyn9Y7yTrah+unP+eC1mTMYaAz7JiuqM8sZULjk/CbBBOXnjA482/I3PbDJqgH76fIxhGwUtWaTaaAMtOS8/zaxBeL7MNalGIIG73ogu9S+4/miMOsXunMmtk2oP60EE/CFiKyZTS3peXS3MtcarNj2KKkOV03c1zqERXoUkanVBriinWLhAqwC6+sFAhyK9PBs4uNQU/mF+mmdW9aukMKqEKgqwxqmlpow0GpIZGWg8cQmrQoj41OX/ZElOEHD0B7sAUHzO0RyW3oAyMorjORyONmsobBG+Ssiop3hu/NnuVyApqWtsTBAZpo4GrW6kAWcahWUQVgg+be5dP4gDBdvgnk0ptTyDE5YyXtDINUF14hi5ZRZ8o+2WOqtbQuhmkyB0x+at1+AA+g4fbrtCbYCN/ETjAExY7ZnwE9Rre/0TtvRk9pe05EYNmVg9USWyhKudUwI5XvVBx8f8+LceScCAwEAAQ==", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" ] - }, - { - "variable": "countryIndex", - "name": "Country", - "description": "Select a country to populate the Home tab with content specific to that region on Apple Podcasts.", - "type": "Dropdown", - "default": "0", - "options": [ - "US - United States of America", - "AE - United Arab Emirates", - "AG - Antigua and Barbuda", - "AI - Anguilla", - "AM - Armenia", - "AO - Angola", - "AR - Argentina", - "AT - Austria", - "AU - Australia", - "AZ - Azerbaijan", - "BA - Bosnia and Herzegovina", - "BB - Barbados", - "BE - Belgium", - "BF - Burkina Faso", - "BG - Bulgaria", - "BH - Bahrain", - "BJ - Benin", - "BM - Bermuda", - "BN - Brunei Darussalam", - "BO - Bolivia (Plurinational State of)", - "BR - Brazil", - "BS - Bahamas", - "BT - Bhutan", - "BW - Botswana", - "BY - Belarus", - "BZ - Belize", - "CA - Canada", - "CD - Congo (the Democratic Republic of the)", - "CG - Congo", - "CI - Côte d'Ivoire", - "CL - Chile", - "CM - Cameroon", - "CN - China", - "CO - Colombia", - "CR - Costa Rica", - "CV - Cabo Verde", - "CY - Cyprus", - "CZ - Czechia", - "DE - Germany", - "DK - Denmark", - "DM - Dominica", - "DO - Dominican Republic", - "DZ - Algeria", - "EC - Ecuador", - "EE - Estonia", - "EG - Egypt", - "ES - Spain", - "ET - Ethiopia", - "FI - Finland", - "FJ - Fiji", - "FM - Micronesia (Federated States of)", - "FR - France", - "GA - Gabon", - "GB - United Kingdom", - "GD - Grenada", - "GE - Georgia", - "GM - Gambia", - "GR - Greece", - "GT - Guatemala", - "GW - Guinea-Bissau", - "GY - Guyana", - "HK - Hong Kong", - "HN - Honduras", - "HR - Croatia", - "HT - Haiti", - "HU - Hungary", - "ID - Indonesia", - "IE - Ireland", - "IL - Israel", - "IN - India", - "IS - Iceland", - "IT - Italy", - "JM - Jamaica", - "JO - Jordan", - "JP - Japan", - "KE - Kenya", - "KG - Kyrgyzstan", - "KH - Cambodia", - "KN - Saint Kitts and Nevis", - "KR - Korea (the Republic of)", - "KW - Kuwait", - "KZ - Kazakhstan", - "LA - Lao People's Democratic Republic", - "LB - Lebanon", - "LC - Saint Lucia", - "LK - Sri Lanka", - "LR - Liberia", - "LS - Lesotho", - "LT - Lithuania", - "LU - Luxembourg", - "LV - Latvia", - "LY - Libya", - "MA - Morocco", - "MD - Moldova (the Republic of)", - "ME - Montenegro", - "MG - Madagascar", - "MK - North Macedonia", - "ML - Mali", - "MM - Myanmar", - "MN - Mongolia", - "MO - Macao", - "MR - Mauritania", - "MT - Malta", - "MU - Mauritius", - "MV - Maldives", - "MW - Malawi", - "MX - Mexico", - "MY - Malaysia", - "MZ - Mozambique", - "NA - Namibia", - "NE - Niger", - "NG - Nigeria", - "NI - Nicaragua", - "NL - Netherlands", - "NO - Norway", - "NP - Nepal", - "NZ - New Zealand", - "OM - Oman", - "PA - Panama", - "PE - Peru", - "PG - Papua New Guinea", - "PH - Philippines", - "PK - Pakistan", - "PL - Poland", - "PT - Portugal", - "PY - Paraguay", - "QA - Qatar", - "RO - Romania", - "RS - Serbia", - "RU - Russian Federation", - "RW - Rwanda", - "SA - Saudi Arabia", - "SB - Solomon Islands", - "SC - Seychelles", - "SD - Sudan", - "SE - Sweden", - "SG - Singapore", - "SI - Slovenia", - "SK - Slovakia", - "SL - Sierra Leone", - "SN - Senegal", - "SO - Somalia", - "SR - Suriname", - "ST - Sao Tome and Principe", - "SV - El Salvador", - "SZ - Eswatini", - "TD - Chad", - "TG - Togo", - "TH - Thailand", - "TJ - Tajikistan", - "TM - Turkmenistan", - "TN - Tunisia", - "TO - Tonga", - "TR - Turkey", - "TT - Trinidad and Tobago", - "TZ - Tanzania, United Republic of", - "UA - Ukraine", - "UG - Uganda", - "UY - Uruguay", - "UZ - Uzbekistan", - "VC - Saint Vincent and the Grenadines", - "VE - Venezuela", - "VG - Virgin Islands (British)", - "VN - Vietnam", - "VU - Vanuatu", - "YE - Yemen", - "ZA - South Africa", - "ZM - Zambia", - "ZW - Zimbabwe" - ] - } - ], - "authentication": { - "loginUrl": "https://podcasts.apple.com/includes/commerce/authenticate?product=podcasts", - "cookiesToFind": ["media-user-token"], - "userAgent": "Mozilla/5.0 (iPad; CPU OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1" - } - }, - { - "_tags": ["working", "unofficial", "music"], - "name": "Audius Music", - "description": "Audius music platform", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins", - "platformUrl": "https://audius.co/", - "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-audius-co/raw/main/grayjay-plugin-audius-co-config.json", - "repositoryUrl": "http://localhost:8035/grayjay-plugin-audius-co", - "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-audius-co/raw/main/grayjay-plugin-audius-co-script.js", - "version": 1, - "iconUrl": "https://www.google.com/s2/favicons?domain=audius.co&sz=64", - "id": "9c9ed2e5-5d5f-4039-b955-b4de6a989b78", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - ".audius.co", - ".audius.org", - ".theblueprint.xyz", - ".figment.io", - ".cultur3stake.com", - ".audius.rickyrombo.com", - ".megaphone.fm", - ".podtrac.com", - ".cloudfront.net", - ".spreaker.com", - ".podigee-cdn.net", - ".simplecastaudio.com", - ".simplecastcdn.com", - ".transistor.fm", - ".transistorcdn.com", - ".fastcast.ai", - ".rss.com", - ".redcircle.com", - ".omnycontent.com", - ".pscrb.fm", - ".mgln.ai", - ".op3.dev", - ".digitalia.fm", - ".dgt.fm", - ".awesound.com", - ".castos.com", - ".barryeatonshowtime.com" - ], - "supportedClaimTypes": [1, 2, 16, 17], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial release with search, channel, playlist support", - "Playback fixes for gated tracks and direct stream endpoints", - "Expanded allowUrls for podcast media/image CDNs" - ] - } - }, - { - "_tags": ["unofficial", "unknown"], - "name": "Bandcamp", - "description": "Bandcamp is an American online music distributor", - "author": "William Vigolo", - "authorUrl": "https://williamvds.me", - "sourceUrl": "https://git.sr.ht/~williamvds/bandcamp-grayjay-plugin/blob/master/BandcampConfig.json", - "repositoryUrl": "https://git.sr.ht/~williamvds/bandcamp-grayjay-plugin", - "scriptUrl": "./BandcampScript.js", - "version": 3, - "iconUrl": "./logo.png", - "id": "04a188d3-9a46-4358-9599-1ddfcc83aae0", - "scriptSignature": "ObIgf32kLZGI78SR7CIUH2/tdikOWFk+k1VEUMTevvygAV1wfu5w0xE5NuGfS5NajMlexchgaYaHSc95vv4MTCHosySqNOj7FMH0ClAPhkea9DvcMtAjDsMEjppe0mAWeZaSa1uFD/+vEmKbuQGz5r+I628HfLYH1QhmC43vMd0zt1dFxGJNSaBPz2Hps5fD37MFXK9Aat8J6QGCr6aZ1dolJotfW7lgHWxF9x5HxPL0ZYDTBm0wbOPIhKUoyjLvo/WqNTo4XQvXqquoP6LwKaVOpeKCVyEAHukD8uJLoN8pUuAfYJrqtvDrKHsKoDTWbA0z81R4cMXeJPaEoFqepL7M46K+kemaHEgdHBzYc+mi+xiqlhX3CNwO2D8ltapjAMylrOwuhaABBhEb0f+3iAOVdaH2TxgxvhA5zcemMzQrlgoYXBuVv9efcJ9muYP0t1RuG3xQ35ETyVjuiTjqYCh1UfSZZpJag0JLiK6S99/sveba+DyidVhBAb9ztgGAOYX0leqe3aUAUSsr4cteNvyTWUW0No1ZfrvwsXE0HOHVcTAb53Hseg2Xn2jefKi4aP1JPmkSzzjfbagj7EoF6NDObxkIFf2otm2wXqeeZlcmMGL5FrVhGHKan5MStTLP4HR3SMWH8udKd+AFeTLEyObA73Wi6z6ySMczlBgoTkA=", - "scriptPublicKey": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6YFYu5pKrKFqJ3Lez6tYUIU+rx9nfpimbPrRqGNwHgx2H/wXEMFrSwTp/cZipccJhqJM/ElBYTI8Z8bUowpkHFfFnwFfOHR+XCLx2deKyR9CJTsLoe0jhjRGwkFc25oeToO8gkvkoYbGH1nk+Ri5qAFNPDPxnTmmtnHyUCIVOWHTc9nrSaXNslUekz2NEpIXzvVq99L9ZdXBe61Pz7jFGJyn9Y7yTrah+unP+eC1mTMYaAz7JiuqM8sZULjk/CbBBOXnjA482/I3PbDJqgH76fIxhGwUtWaTaaAMtOS8/zaxBeL7MNalGIIG73ogu9S+4/miMOsXunMmtk2oP60EE/CFiKyZTS3peXS3MtcarNj2KKkOV03c1zqERXoUkanVBriinWLhAqwC6+sFAhyK9PBs4uNQU/mF+mmdW9aukMKqEKgqwxqmlpow0GpIZGWg8cQmrQoj41OX/ZElOEHD0B7sAUHzO0RyW3oAyMorjORyONmsobBG+Ssiop3hu/NnuVyApqWtsTBAZpo4GrW6kAWcahWUQVgg+be5dP4gDBdvgnk0ptTyDE5YyXtDINUF14hi5ZRZ8o+2WOqtbQuhmkyB0x+at1+AA+g4fbrtCbYCN/ETjAExY7ZnwE9Rre/0TtvRk9pe05EYNmVg9USWyhKudUwI5XvVBx8f8+LceScCAwEAAQ==", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["everywhere"] - }, - { - "name": "Bandcamp", - "description": "Bandcamp is an American online audio distribution platform founded in 2007.", - "author": "rom", - "authorUrl": "https://rom.dog/", - "sourceUrl": "https://raw.githubusercontent.com/romdotdog/grayjay-bandcamp/main/config.json", - "repositoryUrl": "https://github.com/romdotdog/grayjay-bandcamp", - "scriptUrl": "./index.js", - "version": 1, - "iconUrl": "./icon.png", - "id": "b3a35316-6c86-4d6a-92a7-be82029ad6b9", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["unofficial", "maintained", "working"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/romdotdog/grayjay-bandcamp/commits/main.atom", - "releases": "https://github.com/romdotdog/grayjay-bandcamp/releases.atom" - }, - "_installUrl": "https://raw.githubusercontent.com/romdotdog/grayjay-bandcamp/main/config.json" - }, - { - "name": "BiliBili (CN)", - "description": "BiliBili (CN) is the biggest video platform in China\n\nLogin to access higher video quality, subtitles, and premium content", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Bilibili/BiliBiliConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/bilibili", - "scriptUrl": "./BiliBiliScript.js", - "version": 28, - "iconUrl": "./BiliBiliIcon.png", - "id": "cf8ea74d-ad9b-489e-a083-539b6aa8648c", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowUrls": [ - "www.bilibili.com", - "api.bilibili.com", - "api.live.bilibili.com", - "s1.hdslb.com", - "live.bilibili.com", - "s.search.bilibili.com", - "aisubtitle.hdslb.com", - "d1--ov-gotcha05.bilivideo.com", - "d1--ov-gotcha07.bilivideo.com", - ".bilivideo.com", - "*.bilivideo.com", - "space.bilibili.com" - ], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "JxNQMfxzPIfifiNrvYV49iwicNkQwX9wsKFIiacrvr/7oqdOa5fdBKQh6ZMwgdBv6JB5tm5bU5VDRjaKSQ0cLp2Q7hrX2QJYA61AvdYl6HOQ4NWtsCEirZWUgdAwazZwbqZzm1kA8fGZUby9pd3zEyyHBu5nPf/7mpeF4Q4ApRp2p6/AqJ78EVJlTs2yQpkT4VjY9vxvu+pAr+AbliXXqhO4XuK/v7jpFBdQGA4RVHEJQMdOOe3KZYd4Y4hLSb1z7YmumFd1wGq4nH4v7aOyUZ//L6oVqHHLVJv+uhE8m6bQXROkHd8tkjplVrca1SAGiiZrPy/Se9rM8sAObjhnOA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/bilibili/-/commits/master?format=atom" }, - "platformUrl": "https://bilibili.com", - "authentication": { - "loginUrl": "https://passport.bilibili.com/h5-app/passport/login", - "cookiesToFind": ["SESSDATA"], - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" - } - }, - { - "name": "Bitchute (Beta)", - "description": "BitChute is a video service that prioritizes creators and champions users' freedoms and privacy.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Bitchute/BitchuteConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/bitchute", - "scriptUrl": "./BitchuteScript.js", - "version": 10, - "iconUrl": "./BitchuteIcon.png", - "id": "e8b1ad5f-0c6d-497d-a5fa-0a785a16d902", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [".bitchute.com"], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "qx5760q9EPrc6CdrnHi7uVNk94X2C28EtgQZLrFhyPMwrZSXchTdiiKoiAh7DzMHEVL5OecsVjJ4kj+77n2MD6zCTEzv80fdhhXYr0gNW0kZi/FxksvQsl7JqgIi0CIaVlAl2dDYraZFnaEVjbiwCNjDmxU6+7sHj/8t7hqzSnbMwxKMe3yHnNuj+FaR2Rhc5kSoUHKIMkk5a2E8RrsxMMnZayM7QptkRslzhSsXzIyZ1gYJ/4LZ7HHbjfsPvlB0DBDuUg1ilH/4M0HZTY3N+26pwKRJie9C+AT5ilNTL46TcPdox4Otw3bjwjY3aQWQA+3qj+6cfvz+Kx7bSmg8QA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/bitchute/-/commits/master?format=atom" + { + "name": "Bandcamp", + "description": "Bandcamp is an American online audio distribution platform founded in 2007.", + "author": "rom", + "authorUrl": "https://rom.dog/", + "sourceUrl": "https://raw.githubusercontent.com/romdotdog/grayjay-bandcamp/main/config.json", + "repositoryUrl": "https://github.com/romdotdog/grayjay-bandcamp", + "scriptUrl": "./index.js", + "version": 1, + "iconUrl": "./icon.png", + "id": "b3a35316-6c86-4d6a-92a7-be82029ad6b9", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_tags": [ + "unofficial", + "maintained", + "working" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/romdotdog/grayjay-bandcamp/commits/main.atom", + "releases": "https://github.com/romdotdog/grayjay-bandcamp/releases.atom" + }, + "_installUrl": "https://raw.githubusercontent.com/romdotdog/grayjay-bandcamp/main/config.json" }, - "platformUrl": "https://bitchute.com", - "authentication": { - "loginUrl": "https://old.bitchute.com/accounts/login/?next=/subscriptions/", - "completionUrl": "https://old.bitchute.com/subscriptions/", - "cookiesToFind": ["sessionid"], - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" - } - }, - { - "name": "Brighteon", - "description": "A video platform focused on freedom of expression.", - "platformUrl": "https://brighteon.com", - "author": "GreyPluginDev", - "authorUrl": "https://github.com/GreyPluginDev", - "sourceUrl": "https://grayjay-plugin-brighteon.pages.dev/BrighteonConfig.json", - "repositoryUrl": "https://github.com/GreyPluginDev/grayjay-plugin-brighteon", - "scriptUrl": "./BrighteonScript.js", - "version": 1, - "iconUrl": "./BrighteonIcon.png", - "id": "9d10d388-e685-477d-a794-50d237257d84", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [".brighteon.com"], - "settings": [], - "_tags": [], - "_installUrl": "https://grayjay-plugin-brighteon.pages.dev/BrighteonConfig.json", - "_feeds": { - "commits": "https://github.com/GreyPluginDev/grayjay-plugin-brighteon/commits/main.atom", - "releases": "https://github.com/GreyPluginDev/grayjay-plugin-brighteon/releases.atom" - } - }, - { - "name": "CDA", - "description": "CDA plugin", - "author": "Piotr Bartoszewicz", - "authorUrl": "https://github.com/PiotrekB416", - "sourceUrl": "https://piotrekb416.github.io/GrayJay-CDA/CdaConfig.json", - "repositoryUrl": "https://github.com/PiotrekB416/GrayJay-CDA", - "scriptUrl": "./CdaScript.js", - "version": 1, - "iconUrl": "", - "id": "15901e70-7590-42e4-b67d-8a13ae77726e", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowUrls": ["api.cda.pl"], - "_tags": ["unofficial", "unmaintained", "unknown", "polish"], - "_feeds": { - "commits": "https://github.com/PiotrekB416/GrayJay-CDA/commits/main.atom", - "releases": "https://github.com/PiotrekB416/GrayJay-CDA/releases.atom" + { + "name": "BiliBili (CN)", + "description": "BiliBili (CN) is the biggest video platform in China\n\nLogin to access higher video quality, subtitles, and premium content", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Bilibili/BiliBiliConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/bilibili", + "scriptUrl": "./BiliBiliScript.js", + "version": 28, + "iconUrl": "./BiliBiliIcon.png", + "id": "cf8ea74d-ad9b-489e-a083-539b6aa8648c", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "www.bilibili.com", + "api.bilibili.com", + "api.live.bilibili.com", + "s1.hdslb.com", + "live.bilibili.com", + "s.search.bilibili.com", + "aisubtitle.hdslb.com", + "d1--ov-gotcha05.bilivideo.com", + "d1--ov-gotcha07.bilivideo.com", + ".bilivideo.com", + "*.bilivideo.com", + "space.bilibili.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "JxNQMfxzPIfifiNrvYV49iwicNkQwX9wsKFIiacrvr/7oqdOa5fdBKQh6ZMwgdBv6JB5tm5bU5VDRjaKSQ0cLp2Q7hrX2QJYA61AvdYl6HOQ4NWtsCEirZWUgdAwazZwbqZzm1kA8fGZUby9pd3zEyyHBu5nPf/7mpeF4Q4ApRp2p6/AqJ78EVJlTs2yQpkT4VjY9vxvu+pAr+AbliXXqhO4XuK/v7jpFBdQGA4RVHEJQMdOOe3KZYd4Y4hLSb1z7YmumFd1wGq4nH4v7aOyUZ//L6oVqHHLVJv+uhE8m6bQXROkHd8tkjplVrca1SAGiiZrPy/Se9rM8sAObjhnOA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/bilibili/-/commits/master?format=atom" + }, + "platformUrl": "https://bilibili.com", + "authentication": { + "loginUrl": "https://passport.bilibili.com/h5-app/passport/login", + "cookiesToFind": [ + "SESSDATA" + ], + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + } }, - "platformUrl": "https://cda.pl", - "authentication": { - "loginUrl": "https://piotrekb416.github.io/GrayJay-CDA/login.html", - "userAgent": "pl.cda 1.0", - "headersToFind": ["Authorization"] - } - }, - { - "_tags": ["unofficial", "wip", "nsfw", "streaming", "adult"], - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-chaturbate/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-chaturbate/releases.atom" + { + "name": "Bitchute (Beta)", + "description": "BitChute is a video service that prioritizes creators and champions users' freedoms and privacy.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Bitchute/BitchuteConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/bitchute", + "scriptUrl": "./BitchuteScript.js", + "version": 10, + "iconUrl": "./BitchuteIcon.png", + "id": "e8b1ad5f-0c6d-497d-a5fa-0a785a16d902", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + ".bitchute.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "qx5760q9EPrc6CdrnHi7uVNk94X2C28EtgQZLrFhyPMwrZSXchTdiiKoiAh7DzMHEVL5OecsVjJ4kj+77n2MD6zCTEzv80fdhhXYr0gNW0kZi/FxksvQsl7JqgIi0CIaVlAl2dDYraZFnaEVjbiwCNjDmxU6+7sHj/8t7hqzSnbMwxKMe3yHnNuj+FaR2Rhc5kSoUHKIMkk5a2E8RrsxMMnZayM7QptkRslzhSsXzIyZ1gYJ/4LZ7HHbjfsPvlB0DBDuUg1ilH/4M0HZTY3N+26pwKRJie9C+AT5ilNTL46TcPdox4Otw3bjwjY3aQWQA+3qj+6cfvz+Kx7bSmg8QA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/bitchute/-/commits/master?format=atom" + }, + "platformUrl": "https://bitchute.com", + "authentication": { + "loginUrl": "https://old.bitchute.com/accounts/login/?next=/subscriptions/", + "completionUrl": "https://old.bitchute.com/subscriptions/", + "cookiesToFind": [ + "sessionid" + ], + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + } }, - "name": "Chaturbate", - "description": "GrayJay source for Chaturbate", - "author": "Bluscream", - "authorUrl": "https://bluscream.github.io", - "platformUrl": "https://chaturbate.com", - "_nsfw": true, - "sourceUrl": "https://github.com/grayjay-sources/grayjay-source-chaturbate/releases/latest/download/config.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-chaturbate", - "scriptUrl": "./script.js", - "changelogUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-chaturbate/master/changelog.md", - "version": 1, - "iconUrl": "https://theme.zdassets.com/theme_assets/9047795/0a1509944ae68221459023756a55d2ada890acfd.png", - "id": "82b8fefc-24ae-11ee-aa56-0242aa120002", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowUrls": [ - "chaturbate.com", - "www.chaturbate.com", - "*.chaturbate.com", - "*.live.mmcdn.com", - "web.static.mmcdn.com", - "nwr.static.mmcdn.com", - "realtime.pa.highwebmedia.com", - "api.minopia.de" - ], - "subscriptionRateLimit": 120, - "_installUrl": "https://github.com/grayjay-sources/grayjay-source-chaturbate/releases/latest/download/config.json", - "authentication": { - "loginUrl": "https://chaturbate.com/auth/login/", - "cookiesToFind": ["XSRF-TOKEN", "psde_auth3"], - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "loginWarning": "Login does not work (yet)." + { + "name": "Brighteon", + "description": "A video platform focused on freedom of expression.", + "platformUrl": "https://brighteon.com", + "author": "GreyPluginDev", + "authorUrl": "https://github.com/GreyPluginDev", + "sourceUrl": "https://grayjay-plugin-brighteon.pages.dev/BrighteonConfig.json", + "repositoryUrl": "https://github.com/GreyPluginDev/grayjay-plugin-brighteon", + "scriptUrl": "./BrighteonScript.js", + "version": 1, + "iconUrl": "./BrighteonIcon.png", + "id": "9d10d388-e685-477d-a794-50d237257d84", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + ".brighteon.com" + ], + "settings": [], + "_tags": [], + "_installUrl": "https://grayjay-plugin-brighteon.pages.dev/BrighteonConfig.json", + "_feeds": { + "commits": "https://github.com/GreyPluginDev/grayjay-plugin-brighteon/commits/main.atom", + "releases": "https://github.com/GreyPluginDev/grayjay-plugin-brighteon/releases.atom" + } }, - "settings": [] - }, - { - "id": "c05d8742-1a3b-4c5d-9e6f-7a8b9c0d1e2f", - "name": "CoS.TV", - "description": "Watch, like, comment your favorite videos, share with friends, earn COS rewards, and work with the community powered by Contentos Blockchain.", - "version": 1, - "author": "Stefan Cruz", - "authorUrl": "", - "platformUrl": "https://cos.tv/", - "iconUrl": "https://stefancruz.github.io/grayjay-plugin-costv/CosTvIcon.png", - "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-costv", - "sourceUrl": "https://stefancruz.github.io/grayjay-plugin-costv/CosTVConfig.json", - "scriptUrl": "./CosTVScript.js", - "scriptSignature": "qWxCTc+63M5RbsWgQDw8FsNPpKt4nKkyW31UTl5DluZDMiZTiwgmlSm3wnD/NjrxzoKFlHlLYeC1/FsTieuqQ9TYuDukvlpQjHrl7KHPB/B3jItS9etM0W/pZAEFxEUmeunkDYBhfl4MHrOzJNiiqWWV3mI6N24UcQj0jWYT6L91C1OjyLbC0NNEDYWemts2txWz2ooXGZSdvcmdr73BTGxpuOU3fYaU351JlGI9knaIt/PGjXQ7RM/l8ESP0c6hpnQkU20CiXUdeFz4+4vd/liPsZIp3HOMjJLby6tiJLE4KeO9HMjDhPt+t1lIDkz5lTOHZOtdwAqAzoZ9sgnPEQ==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", - "packages": ["Http"], - "allowEval": false, - "constants": { - "BASE_URL": "https://cos.tv" + { + "name": "CDA", + "description": "CDA plugin", + "author": "Piotr Bartoszewicz", + "authorUrl": "https://github.com/PiotrekB416", + "sourceUrl": "https://piotrekb416.github.io/GrayJay-CDA/CdaConfig.json", + "repositoryUrl": "https://github.com/PiotrekB416/GrayJay-CDA", + "scriptUrl": "./CdaScript.js", + "version": 1, + "iconUrl": "", + "id": "15901e70-7590-42e4-b67d-8a13ae77726e", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "api.cda.pl" + ], + "_tags": [ + "unofficial", + "unmaintained", + "unknown", + "polish" + ], + "_feeds": { + "commits": "https://github.com/PiotrekB416/GrayJay-CDA/commits/main.atom", + "releases": "https://github.com/PiotrekB416/GrayJay-CDA/releases.atom" + }, + "platformUrl": "https://cda.pl", + "authentication": { + "loginUrl": "https://piotrekb416.github.io/GrayJay-CDA/login.html", + "userAgent": "pl.cda 1.0", + "headersToFind": [ + "Authorization" + ] + } }, - "allowUrls": [ - "cos.tv", - "img.contentos.io", - "videocdn.cos.tv", - "tencent.cos.tv", - ".vod2.myqcloud.com" - ], - "changelog": { - "1": ["- Initial implementation;"] + { + "_tags": [ + "unofficial", + "wip", + "nsfw", + "streaming", + "adult" + ], + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-chaturbate/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-chaturbate/releases.atom" + }, + "name": "Chaturbate", + "description": "GrayJay source for Chaturbate", + "author": "Bluscream", + "authorUrl": "https://bluscream.github.io", + "platformUrl": "https://chaturbate.com", + "_nsfw": true, + "sourceUrl": "https://github.com/grayjay-sources/grayjay-source-chaturbate/releases/latest/download/config.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-chaturbate", + "scriptUrl": "./script.js", + "changelogUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-chaturbate/master/changelog.md", + "version": 1, + "iconUrl": "https://theme.zdassets.com/theme_assets/9047795/0a1509944ae68221459023756a55d2ada890acfd.png", + "id": "82b8fefc-24ae-11ee-aa56-0242aa120002", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "chaturbate.com", + "www.chaturbate.com", + "*.chaturbate.com", + "*.live.mmcdn.com", + "web.static.mmcdn.com", + "nwr.static.mmcdn.com", + "realtime.pa.highwebmedia.com", + "api.minopia.de" + ], + "subscriptionRateLimit": 120, + "_installUrl": "https://github.com/grayjay-sources/grayjay-source-chaturbate/releases/latest/download/config.json", + "authentication": { + "loginUrl": "https://chaturbate.com/auth/login/", + "cookiesToFind": [ + "XSRF-TOKEN", + "psde_auth3" + ], + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "loginWarning": "Login does not work (yet)." + }, + "settings": [] }, - "_tags": [], - "_installUrl": "https://stefancruz.github.io/grayjay-plugin-costv/CosTVConfig.json", - "_feeds": { - "commits": "https://github.com/stefancruz/grayjay-plugin-costv/commits/main.atom", - "releases": "https://github.com/stefancruz/grayjay-plugin-costv/releases.atom" - } - }, - { - "_tags": ["working", "unofficial", "video", "short-form"], - "name": "Coub", - "description": "Coub is a Russian video streaming platform that allows users to create and share looped audio-visual collages up to ten seconds long", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub", - "platformUrl": "https://coub.com", - "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub/raw/main/grayjay-plugin-coub.json", - "repositoryUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub", - "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub/raw/main/grayjay-plugin-coub-script.js", - "version": 1, - "iconUrl": "https://external-content.duckduckgo.com/ip3/coub.com.ico", - "id": "550e8400-e29b-41d4-a716-446655440000", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": ["coub.com"], - "supportedClaimTypes": [1, 2, 16], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial version", - "Fixed RatingLikes.likes to pass number instead of object for Android compatibility", - "Updated search, searchChannels, and searchSuggestions to use correct Coub API endpoints", - "Fixed searchChannelContents null query parameter error on Android", - "Implemented proper channel info fetching using timeline API", - "Changed plugin id to UUID format" - ] - } - }, - { - "name": "Crunchyroll", - "description": "Crunchyroll plugin", - "author": "DeltaEvo", - "authorUrl": "https://github.com/DeltaEvo", - "sourceUrl": "https://DeltaEvo.github.io/GrayjayCrunchyroll/CrunchyrollConfig.json", - "repositoryUrl": "https://github.com/DeltaEvo/GrayjayCrunchyroll", - "scriptUrl": "./CrunchyrollScript.js", - "version": 3, - "iconUrl": "./crunchyroll.png", - "id": "3af73d7b-05bc-4a1b-a142-8a8377fc9c5b", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "www.crunchyroll.com", - "static.crunchyroll.com", - "cr-play-service.prd.crunchyrollsvc.com", - "v.vrv.co" - ], - "_tags": ["unofficial", "maintained", "working", "archived"], - "_feeds": { - "commits": "https://github.com/DeltaEvo/GrayjayCrunchyroll/commits/main.atom", - "releases": "https://github.com/DeltaEvo/GrayjayCrunchyroll/releases.atom" + { + "id": "c05d8742-1a3b-4c5d-9e6f-7a8b9c0d1e2f", + "name": "CoS.TV", + "description": "Watch, like, comment your favorite videos, share with friends, earn COS rewards, and work with the community powered by Contentos Blockchain.", + "version": 1, + "author": "Stefan Cruz", + "authorUrl": "", + "platformUrl": "https://cos.tv/", + "iconUrl": "https://stefancruz.github.io/grayjay-plugin-costv/CosTvIcon.png", + "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-costv", + "sourceUrl": "https://stefancruz.github.io/grayjay-plugin-costv/CosTVConfig.json", + "scriptUrl": "./CosTVScript.js", + "scriptSignature": "qWxCTc+63M5RbsWgQDw8FsNPpKt4nKkyW31UTl5DluZDMiZTiwgmlSm3wnD/NjrxzoKFlHlLYeC1/FsTieuqQ9TYuDukvlpQjHrl7KHPB/B3jItS9etM0W/pZAEFxEUmeunkDYBhfl4MHrOzJNiiqWWV3mI6N24UcQj0jWYT6L91C1OjyLbC0NNEDYWemts2txWz2ooXGZSdvcmdr73BTGxpuOU3fYaU351JlGI9knaIt/PGjXQ7RM/l8ESP0c6hpnQkU20CiXUdeFz4+4vd/liPsZIp3HOMjJLby6tiJLE4KeO9HMjDhPt+t1lIDkz5lTOHZOtdwAqAzoZ9sgnPEQ==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", + "packages": [ + "Http" + ], + "allowEval": false, + "constants": { + "BASE_URL": "https://cos.tv" + }, + "allowUrls": [ + "cos.tv", + "img.contentos.io", + "videocdn.cos.tv", + "tencent.cos.tv", + ".vod2.myqcloud.com" + ], + "changelog": { + "1": [ + "- Initial implementation;" + ] + }, + "_tags": [], + "_installUrl": "https://stefancruz.github.io/grayjay-plugin-costv/CosTVConfig.json", + "_feeds": { + "commits": "https://github.com/stefancruz/grayjay-plugin-costv/commits/main.atom", + "releases": "https://github.com/stefancruz/grayjay-plugin-costv/releases.atom" + } }, - "authentication": { - "loginUrl": "https://sso.crunchyroll.com/login", - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "cookiesToFind": ["etp_rt"], - "cookiesExclOthers": true - } - }, - { - "name": "Crunchyroll (Alpha)", - "description": "Watch the latest anime on Crunchyroll", - "author": "FUTO", - "authorUrl": "https://futo.org", - "platformUrl": "https://crunchyroll.com", - "sourceUrl": "https://plugins.grayjay.app/Crunchyroll/CrunchyrollConfig.json", - "scriptUrl": "./CrunchyrollScript.js", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/crunchyroll", - "version": 15, - "iconUrl": "./CrunchyrollIcon.png", - "id": "9bb33039-8580-48d4-9849-21319ae845a4", - "scriptSignature": "TZHVh8dfpW5o6qTPa4gipx69KyFLI+QlWJKAKK4OOl7IGxvaN0271+uhYN/5gW3NHeo3sNOMZ/n7ujQEDDwaDITRrJ4f/KiRIyfTXX2B1huOz3Qz0dUBxe8pg4yjXC3/vRUhPxDaPY/Exaj91vBVp9kfnrFFLXQj0IR0Y6L//xqVFzqlzovccGQmMRrBXHcy9ghIj2yE0dZAEstO4Xq0HEN4m6Nl7fxVaspGHvr9Q1L+wNdYYfWb/7m4sK+4iB+9dc1SkXQo3rDT1mnHAlfouDpLxwu0fN8n1UmvMu/1Iw2l5u3ftCn9gtKn8VbyfMl9QPH0pUasxvbnzrjq+m1nAg==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowUrls": [ - ".crunchyroll.com", - "cr-play-service.prd.crunchyrollsvc.com", - "cr-license-proxy.prd.crunchyrollsvc.com", - "v.vrv.co" - ], - "authentication": { - "loginUrl": "https://sso.crunchyroll.com/login", - "cookiesToFind": ["etp_rt"], - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + { + "_tags": [ + "working", + "unofficial", + "video", + "short-form" + ], + "name": "Coub", + "description": "Coub is a Russian video streaming platform that allows users to create and share looped audio-visual collages up to ten seconds long", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub", + "platformUrl": "https://coub.com", + "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub/raw/main/grayjay-plugin-coub.json", + "repositoryUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub", + "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-coub/raw/main/grayjay-plugin-coub-script.js", + "version": 1, + "iconUrl": "https://external-content.duckduckgo.com/ip3/coub.com.ico", + "id": "550e8400-e29b-41d4-a716-446655440000", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + "coub.com" + ], + "supportedClaimTypes": [ + 1, + 2, + 16 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial version", + "Fixed RatingLikes.likes to pass number instead of object for Android compatibility", + "Updated search, searchChannels, and searchSuggestions to use correct Coub API endpoints", + "Fixed searchChannelContents null query parameter error on Android", + "Implemented proper channel info fetching using timeline API", + "Changed plugin id to UUID format" + ] + } }, - "settings": [ - { - "variable": "premiumContentUnavailableIndex", - "name": "Premium Content Unavailable", - "description": "How to handle premiun content not available to current user", - "type": "Dropdown", - "default": "0", - "options": ["As regular content", "As locked Content", "Hide"] - }, - { - "variable": "localeIndex", - "name": "Display Language", - "description": "", - "type": "Dropdown", - "default": "0", - "options": [ - "en-US - English", - "en-IN - English (India)", - "id-ID - Bahasa Indonesia", - "ms-MY - Bahasa Melayu", - "ca-ES - Català", - "de-DE - Deutsch", - "es-419 - Español (América Latina)", - "es-ES - Español (España)", - "fr-FR - Français", - "it-IT - Italiano", - "pl-PL - Polski", - "pt-BR - Português (Brasil)", - "pt-PT - Português (Portugal)", - "vi-VN - Tiếng Việt", - "tr-TR - Türkçe", - "ru-RU - Русский", - "ar-SA - العربية", - "hi-IN - हिंदी", - "ta-IN - தமிழ்", - "te-IN - తెలుగు", - "zh-CN - 中文 (普通话)", - "zh-HK - 中文 (粵語)", - "zh-TW - 中文 (國語)", - "ko-KR - 한국어", - "th-TH - ไทย" - ] - }, - { - "variable": "preferredAudioLanguageOptionIndex", - "name": "Audio Language", - "description": "Preferred audio language for the videos", - "type": "Dropdown", - "default": "0", - "options": [ - "ja-JP - 日本語", - "en-US - English", - "en-IN - English (India)", - "id-ID - Bahasa Indonesia", - "ms-MY - Bahasa Melayu", - "ca-ES - Català", - "de-DE - Deutsch", - "es-419 - Español (América Latina)", - "es-ES - Español (España)", - "fr-FR - Français", - "it-IT - Italiano", - "pl-PL - Polski", - "pt-BR - Português (Brasil)", - "pt-PT - Português (Portugal)", - "vi-VN - Tiếng Việt", - "tr-TR - Türkçe", - "ru-RU - Русский", - "ar-SA - العربية", - "hi-IN - हिंदी", - "ta-IN - தமிழ்", - "te-IN - తెలుగు", - "zh-CN - 中文 (普通话)", - "zh-HK - 中文 (粵語)", - "zh-TW - 中文 (國語)", - "ko-KR - 한국어", - "th-TH - ไทย" - ] - }, - { - "variable": "subtitlesLanguageOptionIndex", - "name": "Subtitles/CC Language", - "description": "", - "type": "Dropdown", - "default": "0", - "options": [ - "en-US - English", - "en-IN - English (India)", - "id-ID - Bahasa Indonesia", - "ms-MY - Bahasa Melayu", - "ca-ES - Català", - "de-DE - Deutsch", - "es-419 - Español (América Latina)", - "es-ES - Español (España)", - "fr-FR - Français", - "it-IT - Italiano", - "pl-PL - Polski", - "pt-BR - Português (Brasil)", - "pt-PT - Português (Portugal)", - "vi-VN - Tiếng Việt", - "tr-TR - Türkçe", - "ru-RU - Русский", - "ar-SA - العربية", - "hi-IN - हिंदी", - "ta-IN - தமிழ்", - "te-IN - తెలుగు", - "zh-CN - 中文 (普通话)", - "zh-HK - 中文 (粵語)", - "zh-TW - 中文 (國語)", - "ko-KR - 한국어", - "th-TH - ไทย", - "None" - ] - } - ], - "changelog": { - "4": ["Add pagination to content and creators search;"], - "7": ["Add setting to set preferred subtitle;"], - "12": ["Fix playback tracking;"], - "13": ["Fix authenticated session issue;"], - "14": [ - "Fix: error when description contains alternate streams in Japanese;" - ], - "15": ["Fix: Home tab error"] + { + "name": "Crunchyroll", + "description": "Crunchyroll plugin", + "author": "DeltaEvo", + "authorUrl": "https://github.com/DeltaEvo", + "sourceUrl": "https://DeltaEvo.github.io/GrayjayCrunchyroll/CrunchyrollConfig.json", + "repositoryUrl": "https://github.com/DeltaEvo/GrayjayCrunchyroll", + "scriptUrl": "./CrunchyrollScript.js", + "version": 3, + "iconUrl": "./crunchyroll.png", + "id": "3af73d7b-05bc-4a1b-a142-8a8377fc9c5b", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "www.crunchyroll.com", + "static.crunchyroll.com", + "cr-play-service.prd.crunchyrollsvc.com", + "v.vrv.co" + ], + "_tags": [ + "unofficial", + "maintained", + "working", + "archived" + ], + "_feeds": { + "commits": "https://github.com/DeltaEvo/GrayjayCrunchyroll/commits/main.atom", + "releases": "https://github.com/DeltaEvo/GrayjayCrunchyroll/releases.atom" + }, + "authentication": { + "loginUrl": "https://sso.crunchyroll.com/login", + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "cookiesToFind": [ + "etp_rt" + ], + "cookiesExclOthers": true + } }, - "_tags": ["official", "untested"], - "_installUrl": "https://plugins.grayjay.app/Crunchyroll/CrunchyrollConfig.json" - }, - { - "_tags": ["official", "working"], - "name": "Curiosity Stream (Alpha)", - "platformUrl": "https://curiositystream.com", - "description": "Curiosity Stream has thousands of documentaries that enlighten, entertain & inspire. What are you curious about?", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/CuriosityStream/CuriosityStreamConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/curiositystream", - "scriptUrl": "./CuriosityStreamScript.js", - "version": 12, - "iconUrl": "./CuriosityStreamIcon.png", - "id": "273b6523-5438-44e2-9f5d-78e0325a8fd9", - "scriptSignature": "Ol7ts2wjRUIVD5rTSxJu6jeXuFpBYT0N27/SqOYk5H5QKQWrcbxXr5bFOnGn/+ww/H4mK4tn6FL9L2c/ncGAu6iROrUdk/rMM6ZxegOjkrwhatwrViWiG6RCRCZHCiQJM7+8Ddg1Hi3Y1SmD2g1r0oBrmTG7vGdjUhzv9xR4JbBbayLDbvPSeFXVPfz2CT7zphEC8YOCNo+gSgmhVzmpbp0P+ZUSK6nMF7CFM0sSuo5FLrIVBtw/IpJm8i5yewIrMhU2ERl9EqrgwCdAq8c8K2OJHBnXTzI+3DB5q+TcP5zz/GqoVPy5MUAEobo7aY+GSNooRYOj02KmYNhr0A69Ew==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [".curiositystream.com"], - "authentication": { - "loginUrl": "https://curiositystream.com/login?redirect=/", - "completionUrl": "https://api.curiositystream.com/v1/media?*", - "headersToFind": ["x-auth-token"], - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + { + "name": "Crunchyroll (Alpha)", + "description": "Watch the latest anime on Crunchyroll", + "author": "FUTO", + "authorUrl": "https://futo.org", + "platformUrl": "https://crunchyroll.com", + "sourceUrl": "https://plugins.grayjay.app/Crunchyroll/CrunchyrollConfig.json", + "scriptUrl": "./CrunchyrollScript.js", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/crunchyroll", + "version": 15, + "iconUrl": "./CrunchyrollIcon.png", + "id": "9bb33039-8580-48d4-9849-21319ae845a4", + "scriptSignature": "TZHVh8dfpW5o6qTPa4gipx69KyFLI+QlWJKAKK4OOl7IGxvaN0271+uhYN/5gW3NHeo3sNOMZ/n7ujQEDDwaDITRrJ4f/KiRIyfTXX2B1huOz3Qz0dUBxe8pg4yjXC3/vRUhPxDaPY/Exaj91vBVp9kfnrFFLXQj0IR0Y6L//xqVFzqlzovccGQmMRrBXHcy9ghIj2yE0dZAEstO4Xq0HEN4m6Nl7fxVaspGHvr9Q1L+wNdYYfWb/7m4sK+4iB+9dc1SkXQo3rDT1mnHAlfouDpLxwu0fN8n1UmvMu/1Iw2l5u3ftCn9gtKn8VbyfMl9QPH0pUasxvbnzrjq+m1nAg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + ".crunchyroll.com", + "cr-play-service.prd.crunchyrollsvc.com", + "cr-license-proxy.prd.crunchyrollsvc.com", + "v.vrv.co" + ], + "authentication": { + "loginUrl": "https://sso.crunchyroll.com/login", + "cookiesToFind": [ + "etp_rt" + ], + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + }, + "settings": [ + { + "variable": "premiumContentUnavailableIndex", + "name": "Premium Content Unavailable", + "description": "How to handle premiun content not available to current user", + "type": "Dropdown", + "default": "0", + "options": [ + "As regular content", + "As locked Content", + "Hide" + ] + }, + { + "variable": "localeIndex", + "name": "Display Language", + "description": "", + "type": "Dropdown", + "default": "0", + "options": [ + "en-US - English", + "en-IN - English (India)", + "id-ID - Bahasa Indonesia", + "ms-MY - Bahasa Melayu", + "ca-ES - Català", + "de-DE - Deutsch", + "es-419 - Español (América Latina)", + "es-ES - Español (España)", + "fr-FR - Français", + "it-IT - Italiano", + "pl-PL - Polski", + "pt-BR - Português (Brasil)", + "pt-PT - Português (Portugal)", + "vi-VN - Tiếng Việt", + "tr-TR - Türkçe", + "ru-RU - Русский", + "ar-SA - العربية", + "hi-IN - हिंदी", + "ta-IN - தமிழ்", + "te-IN - తెలుగు", + "zh-CN - 中文 (普通话)", + "zh-HK - 中文 (粵語)", + "zh-TW - 中文 (國語)", + "ko-KR - 한국어", + "th-TH - ไทย" + ] + }, + { + "variable": "preferredAudioLanguageOptionIndex", + "name": "Audio Language", + "description": "Preferred audio language for the videos", + "type": "Dropdown", + "default": "0", + "options": [ + "ja-JP - 日本語", + "en-US - English", + "en-IN - English (India)", + "id-ID - Bahasa Indonesia", + "ms-MY - Bahasa Melayu", + "ca-ES - Català", + "de-DE - Deutsch", + "es-419 - Español (América Latina)", + "es-ES - Español (España)", + "fr-FR - Français", + "it-IT - Italiano", + "pl-PL - Polski", + "pt-BR - Português (Brasil)", + "pt-PT - Português (Portugal)", + "vi-VN - Tiếng Việt", + "tr-TR - Türkçe", + "ru-RU - Русский", + "ar-SA - العربية", + "hi-IN - हिंदी", + "ta-IN - தமிழ்", + "te-IN - తెలుగు", + "zh-CN - 中文 (普通话)", + "zh-HK - 中文 (粵語)", + "zh-TW - 中文 (國語)", + "ko-KR - 한국어", + "th-TH - ไทย" + ] + }, + { + "variable": "subtitlesLanguageOptionIndex", + "name": "Subtitles/CC Language", + "description": "", + "type": "Dropdown", + "default": "0", + "options": [ + "en-US - English", + "en-IN - English (India)", + "id-ID - Bahasa Indonesia", + "ms-MY - Bahasa Melayu", + "ca-ES - Català", + "de-DE - Deutsch", + "es-419 - Español (América Latina)", + "es-ES - Español (España)", + "fr-FR - Français", + "it-IT - Italiano", + "pl-PL - Polski", + "pt-BR - Português (Brasil)", + "pt-PT - Português (Portugal)", + "vi-VN - Tiếng Việt", + "tr-TR - Türkçe", + "ru-RU - Русский", + "ar-SA - العربية", + "hi-IN - हिंदी", + "ta-IN - தமிழ்", + "te-IN - తెలుగు", + "zh-CN - 中文 (普通话)", + "zh-HK - 中文 (粵語)", + "zh-TW - 中文 (國語)", + "ko-KR - 한국어", + "th-TH - ไทย", + "None" + ] + } + ], + "changelog": { + "4": [ + "Add pagination to content and creators search;" + ], + "7": [ + "Add setting to set preferred subtitle;" + ], + "12": [ + "Fix playback tracking;" + ], + "13": [ + "Fix authenticated session issue;" + ], + "14": [ + "Fix: error when description contains alternate streams in Japanese;" + ], + "15": [ + "Fix: Home tab error" + ] + }, + "_tags": [ + "official", + "untested" + ], + "_installUrl": "https://plugins.grayjay.app/Crunchyroll/CrunchyrollConfig.json" }, - "settings": [ - { - "variable": "curiositystreamActivity", - "name": "Provide Curiosity Stream Activity", - "description": "Share watch activity with Curiosity Stream", - "type": "Boolean", - "default": "true" - } - ], - "changelog": { - "1": [ - "Initial release of CuriosityStream plugin", - "Support for browsing, searching, and playing documentaries", - "Category-based content organization" - ], - "2": ["Use series as channels;", "Improve support for desktop;"] + { + "_tags": [ + "official", + "working" + ], + "name": "Curiosity Stream (Alpha)", + "platformUrl": "https://curiositystream.com", + "description": "Curiosity Stream has thousands of documentaries that enlighten, entertain & inspire. What are you curious about?", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/CuriosityStream/CuriosityStreamConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/curiositystream", + "scriptUrl": "./CuriosityStreamScript.js", + "version": 12, + "iconUrl": "./CuriosityStreamIcon.png", + "id": "273b6523-5438-44e2-9f5d-78e0325a8fd9", + "scriptSignature": "Ol7ts2wjRUIVD5rTSxJu6jeXuFpBYT0N27/SqOYk5H5QKQWrcbxXr5bFOnGn/+ww/H4mK4tn6FL9L2c/ncGAu6iROrUdk/rMM6ZxegOjkrwhatwrViWiG6RCRCZHCiQJM7+8Ddg1Hi3Y1SmD2g1r0oBrmTG7vGdjUhzv9xR4JbBbayLDbvPSeFXVPfz2CT7zphEC8YOCNo+gSgmhVzmpbp0P+ZUSK6nMF7CFM0sSuo5FLrIVBtw/IpJm8i5yewIrMhU2ERl9EqrgwCdAq8c8K2OJHBnXTzI+3DB5q+TcP5zz/GqoVPy5MUAEobo7aY+GSNooRYOj02KmYNhr0A69Ew==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + ".curiositystream.com" + ], + "authentication": { + "loginUrl": "https://curiositystream.com/login?redirect=/", + "completionUrl": "https://api.curiositystream.com/v1/media?*", + "headersToFind": [ + "x-auth-token" + ], + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + }, + "settings": [ + { + "variable": "curiositystreamActivity", + "name": "Provide Curiosity Stream Activity", + "description": "Share watch activity with Curiosity Stream", + "type": "Boolean", + "default": "true" + } + ], + "changelog": { + "1": [ + "Initial release of CuriosityStream plugin", + "Support for browsing, searching, and playing documentaries", + "Category-based content organization" + ], + "2": [ + "Use series as channels;", + "Improve support for desktop;" + ] + }, + "_installUrl": "https://plugins.grayjay.app/CuriosityStream/CuriosityStreamConfig.json" }, - "_installUrl": "https://plugins.grayjay.app/CuriosityStream/CuriosityStreamConfig.json" - }, - { - "_tags": ["unofficial", "untested"], - "_feeds": { - "commits": "https://github.com/AlexisBlade2001/Grayjay-DLive/commits/main.atom", - "releases": "https://github.com/AlexisBlade2001/Grayjay-DLive/releases.atom" + { + "_tags": [ + "unofficial", + "untested" + ], + "_feeds": { + "commits": "https://github.com/AlexisBlade2001/Grayjay-DLive/commits/main.atom", + "releases": "https://github.com/AlexisBlade2001/Grayjay-DLive/releases.atom" + }, + "name": "DLive", + "description": "A decentralized live streaming platform.", + "author": "AlexisBlade2001", + "authorUrl": "https://github.com/AlexisBlade2001", + "platformUrl": "https://dlive.tv", + "sourceUrl": "https://github.com/AlexisBlade2001/Grayjay-DLive/raw/refs/heads/main/DLiveConfig.json", + "repositoryUrl": "https://github.com/AlexisBlade2001/grayjay-dlive", + "scriptUrl": "./DLiveScript.js", + "version": 7, + "iconUrl": "./DLiveIcon.png", + "id": "06b0c2b1-67b6-4cb3-bf8f-8bf191dac0f3", + "scriptSignature": "Xey5+9/7+Yb0g1FAXL+WufQR1VkCLlf0LOZ5PLhIV9cZLaiYBx7bPMqbJgDawpJ/1eAlfjOB2j9KmGe8LI6/SkNP5bAfwUZL9kMdr4BE7WCurUKHzXnGq+CRmuSwUYiEOh1rRgnoxaikemiTnHxT0EppdwVZnMRXgTv9VS8Avd/bf8/SHNM3LNdV6NjRL5cktvnsTS3MRiGSj9/17F8juPNfquVP/it9hICKEiGxlwmxWg5JJ6RnQodLHX7WeqyR8H2PFNhZvgoOY7q9tEvH8ZGhHDR9kNX2QNxu+oxSu9ehZ1mOvvPOu6NIeOndSf1GkM1ybi3wpiuaU2LKNFwmNBc9O3j8o8xXVZFahLssvDgxKMqEbVcTTRYrvWATxBSxbbr0viiAdJ8kE40J5Zoztwvkdt/LeWpA88Y76Lv+Fd2z4aeD1xYXcOglnAdqefwbRaL3tKQWouVOYwGrn5KC2xC+f4UP/0xbWkmB7Hm4DuGgf36kBx7+xIyo692ICBL0tz2KodaTOWouJ0zZflYCOCSWvxSvhyap1rMS006VTNHfYwevz7u+QBza9hTriDG7Y3GRVPnYcffc8ilfCXUmw9xGRrJaU5K40MMTd/nJvSP2tvsloQaWEKgJ2RGFh8XRYl3OPn+VACjybFhLQHVu+YZ7o8wXPGDZ6O9OZcpFswg=", + "scriptPublicKey": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr63Yf0gjJG8rV9IhtUQgxzryQCtacKfdaErLBC4sOhcnHEqWYJoAHGytGggRSyuGZoJFX2Ovd/8bH0YRT1e1oWMgSZFHQ0k3UE94G2Jw1jmmFvZEaMVxDW7RLkkvqYlXBNDLdkxfbyZepKV5mM4Fd5kbueAdfWdhsl5FhlqHCH10kudewcFq4WBTwQW1chsdkI0Iqrgwqzs5vH5cpphxzXUb+V6rtOUystpFwsEXb6m1Kzl0Uy/9AWTdT9JJJ7H88ycO6d6xX9UUjOXCwMWHxPcZ6UVPN2Plr8UBTJvF0uaYkDhNn0rzEe7NiJ8gUmrT0UJB2E5cYv4I4eTGp6RTwKe7UVCGEo8S7vQ0yPjxk8+dta+V6ECvg7VV1Ic00dfYqPsWPsZJ/xkJLeXIeXhjDNLm0pebr6W6bXkVPvS9PcYMoId+YpghojnPnzo/vmAIo4aS90G1zwmCNonv4suy2Kl48Pxz2OO0YepTuAZxJA6vrPcHxqbeAcAvfpk9PXLRmxD/eoiTsJusxkP5h6Z00gWJiFNNSntOShaGfCtloumqFHi5HIDiipo6KvIBvSYFaK0vlcFjdk0cAkMskuGP8B98zlMP5s9C19/uC6WsDmX1oQ0tNRIifBzg1QE0RuvvfqjI3/W4MqmKllbkwj/Pl/irIaeHsTK/+bwko/jK460CAwEAAQ==", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "graphigo.prd.dlive.tv", + "graphigostream.prd.dlive.tv", + "api.dlive.tv", + "api-ws.dlive.tv", + "d.live", + "dlive.tv", + "image.dlivecdn.com", + "images.prd.dlivecdn.com", + "images-sihv2.prd.dlivecdn.com", + "live.prd.dlive.tv", + "livestreamb.prdv3.dlivecdn.com", + "videos.prd.dlivecdn.com", + "playback.prd.dlivecdn.com" + ], + "authentication": { + "loginUrl": "https://dlive.tv/m/home", + "headersToFind": [ + "Authorization" + ], + "domainHeadersToFind": { + ".dlive.tv": [ + "authorization" + ] + }, + "loginButton": "#genius > .application--wrap > div:nth-child(1) > nav > div > div:nth-child(5) > div:nth-child(5) > div > .nav-login-legal > .nav-login-legal-menu > .btn-group > .loginIn" + } }, - "name": "DLive", - "description": "A decentralized live streaming platform.", - "author": "AlexisBlade2001", - "authorUrl": "https://github.com/AlexisBlade2001", - "platformUrl": "https://dlive.tv", - "sourceUrl": "https://github.com/AlexisBlade2001/Grayjay-DLive/raw/refs/heads/main/DLiveConfig.json", - "repositoryUrl": "https://github.com/AlexisBlade2001/grayjay-dlive", - "scriptUrl": "./DLiveScript.js", - "version": 7, - "iconUrl": "./DLiveIcon.png", - "id": "06b0c2b1-67b6-4cb3-bf8f-8bf191dac0f3", - "scriptSignature": "Xey5+9/7+Yb0g1FAXL+WufQR1VkCLlf0LOZ5PLhIV9cZLaiYBx7bPMqbJgDawpJ/1eAlfjOB2j9KmGe8LI6/SkNP5bAfwUZL9kMdr4BE7WCurUKHzXnGq+CRmuSwUYiEOh1rRgnoxaikemiTnHxT0EppdwVZnMRXgTv9VS8Avd/bf8/SHNM3LNdV6NjRL5cktvnsTS3MRiGSj9/17F8juPNfquVP/it9hICKEiGxlwmxWg5JJ6RnQodLHX7WeqyR8H2PFNhZvgoOY7q9tEvH8ZGhHDR9kNX2QNxu+oxSu9ehZ1mOvvPOu6NIeOndSf1GkM1ybi3wpiuaU2LKNFwmNBc9O3j8o8xXVZFahLssvDgxKMqEbVcTTRYrvWATxBSxbbr0viiAdJ8kE40J5Zoztwvkdt/LeWpA88Y76Lv+Fd2z4aeD1xYXcOglnAdqefwbRaL3tKQWouVOYwGrn5KC2xC+f4UP/0xbWkmB7Hm4DuGgf36kBx7+xIyo692ICBL0tz2KodaTOWouJ0zZflYCOCSWvxSvhyap1rMS006VTNHfYwevz7u+QBza9hTriDG7Y3GRVPnYcffc8ilfCXUmw9xGRrJaU5K40MMTd/nJvSP2tvsloQaWEKgJ2RGFh8XRYl3OPn+VACjybFhLQHVu+YZ7o8wXPGDZ6O9OZcpFswg=", - "scriptPublicKey": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr63Yf0gjJG8rV9IhtUQgxzryQCtacKfdaErLBC4sOhcnHEqWYJoAHGytGggRSyuGZoJFX2Ovd/8bH0YRT1e1oWMgSZFHQ0k3UE94G2Jw1jmmFvZEaMVxDW7RLkkvqYlXBNDLdkxfbyZepKV5mM4Fd5kbueAdfWdhsl5FhlqHCH10kudewcFq4WBTwQW1chsdkI0Iqrgwqzs5vH5cpphxzXUb+V6rtOUystpFwsEXb6m1Kzl0Uy/9AWTdT9JJJ7H88ycO6d6xX9UUjOXCwMWHxPcZ6UVPN2Plr8UBTJvF0uaYkDhNn0rzEe7NiJ8gUmrT0UJB2E5cYv4I4eTGp6RTwKe7UVCGEo8S7vQ0yPjxk8+dta+V6ECvg7VV1Ic00dfYqPsWPsZJ/xkJLeXIeXhjDNLm0pebr6W6bXkVPvS9PcYMoId+YpghojnPnzo/vmAIo4aS90G1zwmCNonv4suy2Kl48Pxz2OO0YepTuAZxJA6vrPcHxqbeAcAvfpk9PXLRmxD/eoiTsJusxkP5h6Z00gWJiFNNSntOShaGfCtloumqFHi5HIDiipo6KvIBvSYFaK0vlcFjdk0cAkMskuGP8B98zlMP5s9C19/uC6WsDmX1oQ0tNRIifBzg1QE0RuvvfqjI3/W4MqmKllbkwj/Pl/irIaeHsTK/+bwko/jK460CAwEAAQ==", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "graphigo.prd.dlive.tv", - "graphigostream.prd.dlive.tv", - "api.dlive.tv", - "api-ws.dlive.tv", - "d.live", - "dlive.tv", - "image.dlivecdn.com", - "images.prd.dlivecdn.com", - "images-sihv2.prd.dlivecdn.com", - "live.prd.dlive.tv", - "livestreamb.prdv3.dlivecdn.com", - "videos.prd.dlivecdn.com", - "playback.prd.dlivecdn.com" - ], - "authentication": { - "loginUrl": "https://dlive.tv/m/home", - "headersToFind": ["Authorization"], - "domainHeadersToFind": { - ".dlive.tv": ["authorization"] - }, - "loginButton": "#genius > .application--wrap > div:nth-child(1) > nav > div > div:nth-child(5) > div:nth-child(5) > div > .nav-login-legal > .nav-login-legal-menu > .btn-group > .loginIn" - } - }, - { - "name": "DTube", - "description": "A decentralized video platform running on the Hive blockchain.", - "author": "Grayjay Plugins", - "authorUrl": "https://codeberg.org/GrayjayPlugins", - "platformUrl": "https://d.tube", - "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-dtube/raw/main/grayjay-plugin-dtube-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-dtube", - "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-dtube/raw/main/grayjay-plugin-dtube-script.js", - "version": 1, - "iconUrl": "https://d.tube/Logo_Black.svg", - "id": "d2c3e4f5-a6b7-8901-cdef-2345678901ab", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - ".d.tube", - "d.tube", - "www.d.tube", - ".media.d.tube", - "sfgwdqbfgowdasnpqndp.supabase.co", - ".googleusercontent.com" - ], - "supportedClaimTypes": [1], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial release with video playback, channel support, and search functionality" - ] - } - }, - { - "name": "Dailymotion (Beta)", - "description": "The latest news, sports, music and entertainment videos on Dailymotion", - "author": "Futo", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Dailymotion/DailymotionConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/dailymotion", - "scriptUrl": "./DailymotionScript.js", - "version": 31, - "iconUrl": "./DailymotionIcon.png", - "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - ".dailymotion.com", - "graphql.api.dailymotion.com", - "api-2-0.spot.im" - ], - "_tags": ["unofficial", "maintained", "working"], - "scriptSignature": "mnuLkTShkl1l9cFt7l7lgMOXdSr6h+GnOskkkJlbUqxxVYH3XRzG+SI4+6Zhdbzl8HvY4Rxndmykdqi9tkWQUqLnNOYi7nhUOJovo4nXrOvb6n0cKYdDZig6QUlDsPKGYG+hXOAsMWg+gSSOxNnAxTzbV1b2TbSB5eqNKdcGkAjZ2FBWs22hMwoltAvy9bN63sZJtcfzvaFY1wVnZWn1Ozasjm4bxnQo9vvYDOzJ8QNxL6muIKjmVpTnN1Oy0n0BFmypqu08WW51IJpaKX2eN9MymGxgoURoApgdD/KM+sX4QuRIOKX7Q+M3ewM4hsN9lOW7x5Soa9rK99cLMzWdhg==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/dailymotion/-/commits/master?format=atom" + { + "name": "DTube", + "description": "A decentralized video platform running on the Hive blockchain.", + "author": "Grayjay Plugins", + "authorUrl": "https://codeberg.org/GrayjayPlugins", + "platformUrl": "https://d.tube", + "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-dtube/raw/main/grayjay-plugin-dtube-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-dtube", + "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-dtube/raw/main/grayjay-plugin-dtube-script.js", + "version": 1, + "iconUrl": "https://d.tube/Logo_Black.svg", + "id": "d2c3e4f5-a6b7-8901-cdef-2345678901ab", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + ".d.tube", + "d.tube", + "www.d.tube", + ".media.d.tube", + "sfgwdqbfgowdasnpqndp.supabase.co", + ".googleusercontent.com" + ], + "supportedClaimTypes": [ + 1 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial release with video playback, channel support, and search functionality" + ] + } }, - "platformUrl": "https://dailymotion.com", - "settings": [ - { - "variable": "preferredCountry", - "name": "Preferred Country", - "description": "Select your preferred country to get the best results", - "type": "Dropdown", - "default": "0", - "options": [ - "", - "Afghanistan", - "Åland Islands", - "Albania", - "Algeria", - "American Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antarctica", - "Antigua and Barbuda", - "Argentina", - "Armenia", - "Aruba", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belarus", - "Belgium", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bonaire, Sint Eustatius and Saba", - "Bosnia and Herzegovina", - "Botswana", - "Bouvet Island", - "Brazil", - "British Indian Ocean Territory", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cabo Verde", - "Cambodia", - "Cameroon", - "Canada", - "Cayman Islands", - "Central African Republic", - "Chad", - "Chile", - "China", - "Christmas Island", - "Cocos (Keeling) Islands", - "Colombia", - "Comoros", - "Congo", - "Congo, Democratic Republic of the", - "Cook Islands", - "Costa Rica", - "Côte d'Ivoire", - "Croatia", - "Cuba", - "Curaçao", - "Cyprus", - "Czech Republic", - "Denmark", - "Djibouti", - "Dominica", - "Dominican Republic", - "Ecuador", - "Egypt", - "El Salvador", - "Equatorial Guinea", - "Eritrea", - "Estonia", - "Eswatini", - "Ethiopia", - "Falkland Islands (Malvinas)", - "Faroe Islands", - "Fiji", - "Finland", - "France", - "French Guiana", - "French Polynesia", - "French Southern Territories", - "Gabon", - "Gambia", - "Georgia", - "Germany", - "Ghana", - "Gibraltar", - "Greece", - "Greenland", - "Grenada", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard Island and McDonald Islands", - "Holy See", - "Honduras", - "Hong Kong", - "Hungary", - "Iceland", - "India", - "Indonesia", - "Iran (Islamic Republic of)", - "Iraq", - "Ireland", - "Isle of Man", - "Israel", - "Italy", - "Jamaica", - "Japan", - "Jersey", - "Jordan", - "Kazakhstan", - "Kenya", - "Kiribati", - "Korea (Democratic People's Republic of)", - "Korea (Republic of)", - "Kuwait", - "Kyrgyzstan", - "Lao People's Democratic Republic", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Libya", - "Liechtenstein", - "Lithuania", - "Luxembourg", - "Macao", - "Madagascar", - "Malawi", - "Malaysia", - "Maldives", - "Mali", - "Malta", - "Marshall Islands", - "Martinique", - "Mauritania", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia (Federated States of)", - "Moldova (Republic of)", - "Monaco", - "Mongolia", - "Montenegro", - "Montserrat", - "Morocco", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Netherlands", - "New Caledonia", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk Island", - "North Macedonia", - "Northern Mariana Islands", - "Norway", - "Oman", - "Pakistan", - "Palau", - "Palestine, State of", - "Panama", - "Papua New Guinea", - "Paraguay", - "Peru", - "Philippines", - "Pitcairn", - "Poland", - "Portugal", - "Puerto Rico", - "Qatar", - "Réunion", - "Romania", - "Russian Federation", - "Rwanda", - "Saint Barthélemy", - "Saint Helena, Ascension and Tristan da Cunha", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Martin (French part)", - "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Saudi Arabia", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Sint Maarten (Dutch part)", - "Slovakia", - "Slovenia", - "Solomon Islands", - "Somalia", - "South Africa", - "South Georgia and the South Sandwich Islands", - "South Sudan", - "Spain", - "Sri Lanka", - "Sudan", - "Suriname", - "Svalbard and Jan Mayen", - "Sweden", - "Switzerland", - "Syrian Arab Republic", - "Taiwan, Province of China", - "Tajikistan", - "Tanzania, United Republic of", - "Thailand", - "Timor-Leste", - "Togo", - "Tokelau", - "Tonga", - "Trinidad and Tobago", - "Tunisia", - "Turkey", - "Turkmenistan", - "Turks and Caicos Islands", - "Tuvalu", - "Uganda", - "Ukraine", - "United Arab Emirates", - "United Kingdom of Great Britain and Northern Ireland", - "United States Minor Outlying Islands", - "United States of America", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Venezuela (Bolivarian Republic of)", - "Viet Nam", - "Virgin Islands (British)", - "Virgin Islands (U.S.)", - "Wallis and Futuna", - "Western Sahara", - "Yemen", - "Zambia", - "Zimbabwe" + { + "name": "Dailymotion (Beta)", + "description": "The latest news, sports, music and entertainment videos on Dailymotion", + "author": "Futo", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Dailymotion/DailymotionConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/dailymotion", + "scriptUrl": "./DailymotionScript.js", + "version": 31, + "iconUrl": "./DailymotionIcon.png", + "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + ".dailymotion.com", + "graphql.api.dailymotion.com", + "api-2-0.spot.im" + ], + "_tags": [ + "unofficial", + "maintained", + "working" + ], + "scriptSignature": "mnuLkTShkl1l9cFt7l7lgMOXdSr6h+GnOskkkJlbUqxxVYH3XRzG+SI4+6Zhdbzl8HvY4Rxndmykdqi9tkWQUqLnNOYi7nhUOJovo4nXrOvb6n0cKYdDZig6QUlDsPKGYG+hXOAsMWg+gSSOxNnAxTzbV1b2TbSB5eqNKdcGkAjZ2FBWs22hMwoltAvy9bN63sZJtcfzvaFY1wVnZWn1Ozasjm4bxnQo9vvYDOzJ8QNxL6muIKjmVpTnN1Oy0n0BFmypqu08WW51IJpaKX2eN9MymGxgoURoApgdD/KM+sX4QuRIOKX7Q+M3ewM4hsN9lOW7x5Soa9rK99cLMzWdhg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/dailymotion/-/commits/master?format=atom" + }, + "platformUrl": "https://dailymotion.com", + "settings": [ + { + "variable": "preferredCountry", + "name": "Preferred Country", + "description": "Select your preferred country to get the best results", + "type": "Dropdown", + "default": "0", + "options": [ + "", + "Afghanistan", + "Åland Islands", + "Albania", + "Algeria", + "American Samoa", + "Andorra", + "Angola", + "Anguilla", + "Antarctica", + "Antigua and Barbuda", + "Argentina", + "Armenia", + "Aruba", + "Australia", + "Austria", + "Azerbaijan", + "Bahamas", + "Bahrain", + "Bangladesh", + "Barbados", + "Belarus", + "Belgium", + "Belize", + "Benin", + "Bermuda", + "Bhutan", + "Bolivia", + "Bonaire, Sint Eustatius and Saba", + "Bosnia and Herzegovina", + "Botswana", + "Bouvet Island", + "Brazil", + "British Indian Ocean Territory", + "Brunei Darussalam", + "Bulgaria", + "Burkina Faso", + "Burundi", + "Cabo Verde", + "Cambodia", + "Cameroon", + "Canada", + "Cayman Islands", + "Central African Republic", + "Chad", + "Chile", + "China", + "Christmas Island", + "Cocos (Keeling) Islands", + "Colombia", + "Comoros", + "Congo", + "Congo, Democratic Republic of the", + "Cook Islands", + "Costa Rica", + "Côte d'Ivoire", + "Croatia", + "Cuba", + "Curaçao", + "Cyprus", + "Czech Republic", + "Denmark", + "Djibouti", + "Dominica", + "Dominican Republic", + "Ecuador", + "Egypt", + "El Salvador", + "Equatorial Guinea", + "Eritrea", + "Estonia", + "Eswatini", + "Ethiopia", + "Falkland Islands (Malvinas)", + "Faroe Islands", + "Fiji", + "Finland", + "France", + "French Guiana", + "French Polynesia", + "French Southern Territories", + "Gabon", + "Gambia", + "Georgia", + "Germany", + "Ghana", + "Gibraltar", + "Greece", + "Greenland", + "Grenada", + "Guadeloupe", + "Guam", + "Guatemala", + "Guernsey", + "Guinea", + "Guinea-Bissau", + "Guyana", + "Haiti", + "Heard Island and McDonald Islands", + "Holy See", + "Honduras", + "Hong Kong", + "Hungary", + "Iceland", + "India", + "Indonesia", + "Iran (Islamic Republic of)", + "Iraq", + "Ireland", + "Isle of Man", + "Israel", + "Italy", + "Jamaica", + "Japan", + "Jersey", + "Jordan", + "Kazakhstan", + "Kenya", + "Kiribati", + "Korea (Democratic People's Republic of)", + "Korea (Republic of)", + "Kuwait", + "Kyrgyzstan", + "Lao People's Democratic Republic", + "Latvia", + "Lebanon", + "Lesotho", + "Liberia", + "Libya", + "Liechtenstein", + "Lithuania", + "Luxembourg", + "Macao", + "Madagascar", + "Malawi", + "Malaysia", + "Maldives", + "Mali", + "Malta", + "Marshall Islands", + "Martinique", + "Mauritania", + "Mauritius", + "Mayotte", + "Mexico", + "Micronesia (Federated States of)", + "Moldova (Republic of)", + "Monaco", + "Mongolia", + "Montenegro", + "Montserrat", + "Morocco", + "Mozambique", + "Myanmar", + "Namibia", + "Nauru", + "Nepal", + "Netherlands", + "New Caledonia", + "New Zealand", + "Nicaragua", + "Niger", + "Nigeria", + "Niue", + "Norfolk Island", + "North Macedonia", + "Northern Mariana Islands", + "Norway", + "Oman", + "Pakistan", + "Palau", + "Palestine, State of", + "Panama", + "Papua New Guinea", + "Paraguay", + "Peru", + "Philippines", + "Pitcairn", + "Poland", + "Portugal", + "Puerto Rico", + "Qatar", + "Réunion", + "Romania", + "Russian Federation", + "Rwanda", + "Saint Barthélemy", + "Saint Helena, Ascension and Tristan da Cunha", + "Saint Kitts and Nevis", + "Saint Lucia", + "Saint Martin (French part)", + "Saint Pierre and Miquelon", + "Saint Vincent and the Grenadines", + "Samoa", + "San Marino", + "Sao Tome and Principe", + "Saudi Arabia", + "Senegal", + "Serbia", + "Seychelles", + "Sierra Leone", + "Singapore", + "Sint Maarten (Dutch part)", + "Slovakia", + "Slovenia", + "Solomon Islands", + "Somalia", + "South Africa", + "South Georgia and the South Sandwich Islands", + "South Sudan", + "Spain", + "Sri Lanka", + "Sudan", + "Suriname", + "Svalbard and Jan Mayen", + "Sweden", + "Switzerland", + "Syrian Arab Republic", + "Taiwan, Province of China", + "Tajikistan", + "Tanzania, United Republic of", + "Thailand", + "Timor-Leste", + "Togo", + "Tokelau", + "Tonga", + "Trinidad and Tobago", + "Tunisia", + "Turkey", + "Turkmenistan", + "Turks and Caicos Islands", + "Tuvalu", + "Uganda", + "Ukraine", + "United Arab Emirates", + "United Kingdom of Great Britain and Northern Ireland", + "United States Minor Outlying Islands", + "United States of America", + "Uruguay", + "Uzbekistan", + "Vanuatu", + "Venezuela (Bolivarian Republic of)", + "Viet Nam", + "Virgin Islands (British)", + "Virgin Islands (U.S.)", + "Wallis and Futuna", + "Western Sahara", + "Yemen", + "Zambia", + "Zimbabwe" + ] + } ] - } - ] - }, - { - "name": "Dailymotion (Beta)", - "description": "The latest news, sports, music and entertainment videos on Dailymotion", - "author": "Futo", - "authorUrl": "https://futo.org", - "sourceUrl": "https://stefancruz.github.io/GrayjayDailymotion/DailymotionConfig.json", - "repositoryUrl": "https://github.com/stefancruz/GrayjayDailymotion", - "scriptUrl": "./DailymotionScript.js", - "version": 22, - "iconUrl": "./DailymotionIcon.png", - "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "dailymotion.com", - "*.dailymotion.com", - ".dailymotion.com", - "graphql.api.dailymotion.com", - "vod.cf.dmcdn.net", - "*.dmcdn.net", - ".dmcdn.net", - "api-2-0.spot.im" - ], - "_tags": ["unofficial", "unmaintained", "working", "archived"], - "scriptSignature": "MeLvuvX/SgRRMVBVyg0sSo9yV7HKcXK8/x3Kkc8a2tSRe/KBSOTmddgORkyQ4R89OQxY2BAi30HE0YXCEDRgm6J1S6giVU1t/Xn27ymkSrLqO/LmTn6Hw2V+3D8tzD33u8RjkcpY2wonOB4LSh7PWSAutkSxKklLhXgwm594lsyiJdGyE1WBltcuwkDIf8Uqh+hxlpVaWThg5OYSLNPbF6uejm4KjtDvwu80FOodMKc28KPJgvBq8sdHOPC7qmAe24E1cvoyAFCzZWuDbUMtTKkqDRV3SjEbTOztGNwD+w3i6b50Bgqht58La7v+GyGWxTxMcFumPPlcGnK/qVbNuA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://github.com/stefancruz/GrayjayDailymotion/commits/master.atom", - "releases": "https://github.com/stefancruz/GrayjayDailymotion/releases.atom" }, - "platformUrl": "https://dailymotion.com", - "settings": [ - { - "variable": "preferredCountry", - "name": "Preferred Country", - "description": "Select your preferred country to get the best results", - "type": "Dropdown", - "default": "0", - "options": [ - "", - "Afghanistan", - "Åland Islands", - "Albania", - "Algeria", - "American Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antarctica", - "Antigua and Barbuda", - "Argentina", - "Armenia", - "Aruba", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belarus", - "Belgium", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bonaire, Sint Eustatius and Saba", - "Bosnia and Herzegovina", - "Botswana", - "Bouvet Island", - "Brazil", - "British Indian Ocean Territory", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cabo Verde", - "Cambodia", - "Cameroon", - "Canada", - "Cayman Islands", - "Central African Republic", - "Chad", - "Chile", - "China", - "Christmas Island", - "Cocos (Keeling) Islands", - "Colombia", - "Comoros", - "Congo", - "Congo, Democratic Republic of the", - "Cook Islands", - "Costa Rica", - "Côte d'Ivoire", - "Croatia", - "Cuba", - "Curaçao", - "Cyprus", - "Czech Republic", - "Denmark", - "Djibouti", - "Dominica", - "Dominican Republic", - "Ecuador", - "Egypt", - "El Salvador", - "Equatorial Guinea", - "Eritrea", - "Estonia", - "Eswatini", - "Ethiopia", - "Falkland Islands (Malvinas)", - "Faroe Islands", - "Fiji", - "Finland", - "France", - "French Guiana", - "French Polynesia", - "French Southern Territories", - "Gabon", - "Gambia", - "Georgia", - "Germany", - "Ghana", - "Gibraltar", - "Greece", - "Greenland", - "Grenada", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard Island and McDonald Islands", - "Holy See", - "Honduras", - "Hong Kong", - "Hungary", - "Iceland", - "India", - "Indonesia", - "Iran (Islamic Republic of)", - "Iraq", - "Ireland", - "Isle of Man", - "Israel", - "Italy", - "Jamaica", - "Japan", - "Jersey", - "Jordan", - "Kazakhstan", - "Kenya", - "Kiribati", - "Korea (Democratic People's Republic of)", - "Korea (Republic of)", - "Kuwait", - "Kyrgyzstan", - "Lao People's Democratic Republic", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Libya", - "Liechtenstein", - "Lithuania", - "Luxembourg", - "Macao", - "Madagascar", - "Malawi", - "Malaysia", - "Maldives", - "Mali", - "Malta", - "Marshall Islands", - "Martinique", - "Mauritania", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia (Federated States of)", - "Moldova (Republic of)", - "Monaco", - "Mongolia", - "Montenegro", - "Montserrat", - "Morocco", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Netherlands", - "New Caledonia", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk Island", - "North Macedonia", - "Northern Mariana Islands", - "Norway", - "Oman", - "Pakistan", - "Palau", - "Palestine, State of", - "Panama", - "Papua New Guinea", - "Paraguay", - "Peru", - "Philippines", - "Pitcairn", - "Poland", - "Portugal", - "Puerto Rico", - "Qatar", - "Réunion", - "Romania", - "Russian Federation", - "Rwanda", - "Saint Barthélemy", - "Saint Helena, Ascension and Tristan da Cunha", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Martin (French part)", - "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Saudi Arabia", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Sint Maarten (Dutch part)", - "Slovakia", - "Slovenia", - "Solomon Islands", - "Somalia", - "South Africa", - "South Georgia and the South Sandwich Islands", - "South Sudan", - "Spain", - "Sri Lanka", - "Sudan", - "Suriname", - "Svalbard and Jan Mayen", - "Sweden", - "Switzerland", - "Syrian Arab Republic", - "Taiwan, Province of China", - "Tajikistan", - "Tanzania, United Republic of", - "Thailand", - "Timor-Leste", - "Togo", - "Tokelau", - "Tonga", - "Trinidad and Tobago", - "Tunisia", - "Turkey", - "Turkmenistan", - "Turks and Caicos Islands", - "Tuvalu", - "Uganda", - "Ukraine", - "United Arab Emirates", - "United Kingdom of Great Britain and Northern Ireland", - "United States Minor Outlying Islands", - "United States of America", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Venezuela (Bolivarian Republic of)", - "Viet Nam", - "Virgin Islands (British)", - "Virgin Islands (U.S.)", - "Wallis and Futuna", - "Western Sahara", - "Yemen", - "Zambia", - "Zimbabwe" + { + "name": "Dailymotion (Beta)", + "description": "The latest news, sports, music and entertainment videos on Dailymotion", + "author": "Futo", + "authorUrl": "https://futo.org", + "sourceUrl": "https://stefancruz.github.io/GrayjayDailymotion/DailymotionConfig.json", + "repositoryUrl": "https://github.com/stefancruz/GrayjayDailymotion", + "scriptUrl": "./DailymotionScript.js", + "version": 22, + "iconUrl": "./DailymotionIcon.png", + "id": "9c87e8db-e75d-48f4-afe5-2d203d4b95c5", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "dailymotion.com", + "*.dailymotion.com", + ".dailymotion.com", + "graphql.api.dailymotion.com", + "vod.cf.dmcdn.net", + "*.dmcdn.net", + ".dmcdn.net", + "api-2-0.spot.im" + ], + "_tags": [ + "unofficial", + "unmaintained", + "working", + "archived" + ], + "scriptSignature": "MeLvuvX/SgRRMVBVyg0sSo9yV7HKcXK8/x3Kkc8a2tSRe/KBSOTmddgORkyQ4R89OQxY2BAi30HE0YXCEDRgm6J1S6giVU1t/Xn27ymkSrLqO/LmTn6Hw2V+3D8tzD33u8RjkcpY2wonOB4LSh7PWSAutkSxKklLhXgwm594lsyiJdGyE1WBltcuwkDIf8Uqh+hxlpVaWThg5OYSLNPbF6uejm4KjtDvwu80FOodMKc28KPJgvBq8sdHOPC7qmAe24E1cvoyAFCzZWuDbUMtTKkqDRV3SjEbTOztGNwD+w3i6b50Bgqht58La7v+GyGWxTxMcFumPPlcGnK/qVbNuA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://github.com/stefancruz/GrayjayDailymotion/commits/master.atom", + "releases": "https://github.com/stefancruz/GrayjayDailymotion/releases.atom" + }, + "platformUrl": "https://dailymotion.com", + "settings": [ + { + "variable": "preferredCountry", + "name": "Preferred Country", + "description": "Select your preferred country to get the best results", + "type": "Dropdown", + "default": "0", + "options": [ + "", + "Afghanistan", + "Åland Islands", + "Albania", + "Algeria", + "American Samoa", + "Andorra", + "Angola", + "Anguilla", + "Antarctica", + "Antigua and Barbuda", + "Argentina", + "Armenia", + "Aruba", + "Australia", + "Austria", + "Azerbaijan", + "Bahamas", + "Bahrain", + "Bangladesh", + "Barbados", + "Belarus", + "Belgium", + "Belize", + "Benin", + "Bermuda", + "Bhutan", + "Bolivia", + "Bonaire, Sint Eustatius and Saba", + "Bosnia and Herzegovina", + "Botswana", + "Bouvet Island", + "Brazil", + "British Indian Ocean Territory", + "Brunei Darussalam", + "Bulgaria", + "Burkina Faso", + "Burundi", + "Cabo Verde", + "Cambodia", + "Cameroon", + "Canada", + "Cayman Islands", + "Central African Republic", + "Chad", + "Chile", + "China", + "Christmas Island", + "Cocos (Keeling) Islands", + "Colombia", + "Comoros", + "Congo", + "Congo, Democratic Republic of the", + "Cook Islands", + "Costa Rica", + "Côte d'Ivoire", + "Croatia", + "Cuba", + "Curaçao", + "Cyprus", + "Czech Republic", + "Denmark", + "Djibouti", + "Dominica", + "Dominican Republic", + "Ecuador", + "Egypt", + "El Salvador", + "Equatorial Guinea", + "Eritrea", + "Estonia", + "Eswatini", + "Ethiopia", + "Falkland Islands (Malvinas)", + "Faroe Islands", + "Fiji", + "Finland", + "France", + "French Guiana", + "French Polynesia", + "French Southern Territories", + "Gabon", + "Gambia", + "Georgia", + "Germany", + "Ghana", + "Gibraltar", + "Greece", + "Greenland", + "Grenada", + "Guadeloupe", + "Guam", + "Guatemala", + "Guernsey", + "Guinea", + "Guinea-Bissau", + "Guyana", + "Haiti", + "Heard Island and McDonald Islands", + "Holy See", + "Honduras", + "Hong Kong", + "Hungary", + "Iceland", + "India", + "Indonesia", + "Iran (Islamic Republic of)", + "Iraq", + "Ireland", + "Isle of Man", + "Israel", + "Italy", + "Jamaica", + "Japan", + "Jersey", + "Jordan", + "Kazakhstan", + "Kenya", + "Kiribati", + "Korea (Democratic People's Republic of)", + "Korea (Republic of)", + "Kuwait", + "Kyrgyzstan", + "Lao People's Democratic Republic", + "Latvia", + "Lebanon", + "Lesotho", + "Liberia", + "Libya", + "Liechtenstein", + "Lithuania", + "Luxembourg", + "Macao", + "Madagascar", + "Malawi", + "Malaysia", + "Maldives", + "Mali", + "Malta", + "Marshall Islands", + "Martinique", + "Mauritania", + "Mauritius", + "Mayotte", + "Mexico", + "Micronesia (Federated States of)", + "Moldova (Republic of)", + "Monaco", + "Mongolia", + "Montenegro", + "Montserrat", + "Morocco", + "Mozambique", + "Myanmar", + "Namibia", + "Nauru", + "Nepal", + "Netherlands", + "New Caledonia", + "New Zealand", + "Nicaragua", + "Niger", + "Nigeria", + "Niue", + "Norfolk Island", + "North Macedonia", + "Northern Mariana Islands", + "Norway", + "Oman", + "Pakistan", + "Palau", + "Palestine, State of", + "Panama", + "Papua New Guinea", + "Paraguay", + "Peru", + "Philippines", + "Pitcairn", + "Poland", + "Portugal", + "Puerto Rico", + "Qatar", + "Réunion", + "Romania", + "Russian Federation", + "Rwanda", + "Saint Barthélemy", + "Saint Helena, Ascension and Tristan da Cunha", + "Saint Kitts and Nevis", + "Saint Lucia", + "Saint Martin (French part)", + "Saint Pierre and Miquelon", + "Saint Vincent and the Grenadines", + "Samoa", + "San Marino", + "Sao Tome and Principe", + "Saudi Arabia", + "Senegal", + "Serbia", + "Seychelles", + "Sierra Leone", + "Singapore", + "Sint Maarten (Dutch part)", + "Slovakia", + "Slovenia", + "Solomon Islands", + "Somalia", + "South Africa", + "South Georgia and the South Sandwich Islands", + "South Sudan", + "Spain", + "Sri Lanka", + "Sudan", + "Suriname", + "Svalbard and Jan Mayen", + "Sweden", + "Switzerland", + "Syrian Arab Republic", + "Taiwan, Province of China", + "Tajikistan", + "Tanzania, United Republic of", + "Thailand", + "Timor-Leste", + "Togo", + "Tokelau", + "Tonga", + "Trinidad and Tobago", + "Tunisia", + "Turkey", + "Turkmenistan", + "Turks and Caicos Islands", + "Tuvalu", + "Uganda", + "Ukraine", + "United Arab Emirates", + "United Kingdom of Great Britain and Northern Ireland", + "United States Minor Outlying Islands", + "United States of America", + "Uruguay", + "Uzbekistan", + "Vanuatu", + "Venezuela (Bolivarian Republic of)", + "Viet Nam", + "Virgin Islands (British)", + "Virgin Islands (U.S.)", + "Wallis and Futuna", + "Western Sahara", + "Yemen", + "Zambia", + "Zimbabwe" + ] + } ] - } - ] - }, - { - "name": "DeviantArt", - "description": "DeviantArt plugin", - "author": "CQIT", - "authorUrl": "https://github.com/CodeQualIT", - "sourceUrl": "https://github.com/CodeQualIT/grayjay-source-deviantart/raw/master/DAConfig.json", - "repositoryUrl": "https://github.com/CodeQualIT/grayjay-source-deviantart", - "scriptUrl": "./DAScript.js", - "version": 1, - "iconUrl": "./DALogo.png", - "id": "a82a6e4d-4e91-466e-8c46-d7895654e2d1", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowUrls": ["www.deviantart.com"], - "_tags": ["unofficial", "maintained", "working"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/CodeQualIT/grayjay-source-deviantart/commits/master.atom", - "releases": "https://github.com/CodeQualIT/grayjay-source-deviantart/releases.atom" - }, - "platformUrl": "https://www.deviantart.com", - "_installUrl": "https://github.com/CodeQualIT/grayjay-source-deviantart/raw/master/DAConfig.json" - }, - { - "_tags": ["unofficial", "untested"], - "_feeds": {}, - "name": "Dropout", - "description": "Independent, ad-free, uncensored comedy.", - "author": "Michael Braun", - "authorUrl": "https://github.com/BRNMan", - "platformUrl": "https://www.dropout.tv", - "sourceUrl": "https://github.com/BRNMan/Dropout-Grayjay-Plugin/releases/latest/download/config.json", - "repositoryUrl": "https://github.com/BRNMan/Dropout-Grayjay-Plugin", - "scriptUrl": "./script.js", - "version": 3, - "iconUrl": "./icon.png", - "id": "0b2d28e0-d645-4169-829f-8961a6169e68", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["www.dropout.tv", "api.vhx.com", "api.vhx.tv"], - "authentication": { - "loginUrl": "https://www.dropout.tv/login", - "cookiesToFind": ["_session", "_device"] }, - "scriptSignature": "nAAahtnzDeevU/7c16SLiML/UdKsq4a3yt2385dM8GG/xrNlOOCqbj2GEFBrXNDUghTQAMttH5dVX+0iLzSxg5rGu4dmZrZusWXMtRq+2z7jtFx+tb/LwQBqIesfOi6C8v1x+Azz5H+dYkmO4OzIeOhk1GsCp5R09ZTbXabOAc6tMlJfpaXCDdqYfbAAEsaekFco6jQnUq1K4ueCEnFSmpwvuNJGscOTkWpfwdi4JSSFB15e0JThbnBxPa+MaiamUGe4Xhd5AZT4h1jmnBlKLCUy5IbySIX067NH1q2TPlxoPnelxG5Tt6eHHSaKbE0KARXA2FbMAQZs6gYNglA+cg==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn8YLDcaY1Ua6WCehGWaLbnPjbGXOxUDXcS7tB60UZskdmTt3cO3rj8g9YKJ1IdMvFoMmMuHqSgOnIdEUF+dYiQBYG/+ehVkYmRXVAO5WM1pgmn1HKeahXxH5XxLAiBbwbdCgQSj/dcbTodSDqlJReTHWtTF5pwFEMzp3JjMCiWgbLW7hEF44vMvbQ83LM/b9D2f73kd71UG7Fj+1NfbKfkRuaclMLTSyI+j9E17i7DKFRyJ62bIJrWT1pYzWZtAX8Zo56Bb0keBYsiGWRnSNVgvMrnO00mihr+XZwuGOUk+rBPuNK5bCbYxEzRdqzJ729nCqcBfRcMABnpK+iLhprQIDAQAB", - "_installUrl": "https://github.com/BRNMan/Dropout-Grayjay-Plugin/releases/latest/download/config.json" - }, - { - "_tags": ["unofficial", "untested"], - "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", - "name": "Floatplane", - "description": "A content creation and video streaming website created by Floatplane Media Inc. and Linus Media Group.", - "author": "kaidelorenzo", - "authorUrl": "https://github.com/kaidelorenzo", - "platformUrl": "https://floatplane.com", - "sourceUrl": "https://github.com/kaidelorenzo/grayjay-floatplane/releases/latest/download/config.json", - "repositoryUrl": "https://github.com/kaidelorenzo/grayjay-floatplane", - "scriptUrl": "./script.js", - "version": 3, - "iconUrl": "./icon.png", - "id": "d8643244-633f-4c71-9f45-215b2387dc2c", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "www.floatplane.com", - "floatplane.com", - "cdn-vod-drm0.floatplane.com", - "cdn-vod-drm1.floatplane.com", - "cdn-vod-drm2.floatplane.com", - "cdn-vod-drm3.floatplane.com", - "cdn-vod-drm4.floatplane.com", - "cdn-vod-drm5.floatplane.com", - "cdn-vod-drm6.floatplane.com", - "cdn-vod-drm7.floatplane.com", - "cdn-vod-drm8.floatplane.com", - "cdn-vod-drm9.floatplane.com" - ], - "settings": [ - { - "variable": "stream_format", - "name": "Stream format", - "description": "This will reduce clutter in the source selector, especially if there are lots of attachments", - "type": "Dropdown", - "default": "0", - "options": ["HLS", "Legacy HLS", "Flat MP4"] - }, - { - "variable": "log_toasts", - "name": "Toast Logging", - "description": "Will log details in toasts", - "type": "Boolean", - "default": "false" - } - ], - "authentication": { - "loginUrl": "https://www.floatplane.com/login", - "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", - "cookiesToFind": ["sails.sid", "muxData"], - "loginWarning": "Login and then open a video. Try using Discord login" + { + "name": "DeviantArt", + "description": "DeviantArt plugin", + "author": "CQIT", + "authorUrl": "https://github.com/CodeQualIT", + "sourceUrl": "https://github.com/CodeQualIT/grayjay-source-deviantart/raw/master/DAConfig.json", + "repositoryUrl": "https://github.com/CodeQualIT/grayjay-source-deviantart", + "scriptUrl": "./DAScript.js", + "version": 1, + "iconUrl": "./DALogo.png", + "id": "a82a6e4d-4e91-466e-8c46-d7895654e2d1", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "www.deviantart.com" + ], + "_tags": [ + "unofficial", + "maintained", + "working" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/CodeQualIT/grayjay-source-deviantart/commits/master.atom", + "releases": "https://github.com/CodeQualIT/grayjay-source-deviantart/releases.atom" + }, + "platformUrl": "https://www.deviantart.com", + "_installUrl": "https://github.com/CodeQualIT/grayjay-source-deviantart/raw/master/DAConfig.json" }, - "scriptSignature": "Wb0PIEDWr1Y/kfPY260owVyLiZ0QUzDfeMt1I7gsLUH/NFHaz7gUBf4ovse1jm0fA1ozG9daQXYK0oylvGkJmwS+TpBuiIIuH2cf+7rg9sJ1BZRUTJkSqix04z8ivC1nGrsDE9q3g85TnRmioDy581EomqHtVzIkDNH5GHb//LBOctBsDel4egOR0vwMQGA+vPvu0i3L4fSfHQ+8X0tvSFm4IpGAU9nEl1b8Wg3gnTzj21nsk9ykpmR0AMQWNSgDsufM8JpOT1dBTlmM2+roa4u4sAiZOZ2Ven3jMcGx5jJfA208eYM/zSAbQHGRHhuhf8m4r+tOHjhUJ2m6KINZVg==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3XblavsQV/ct8b2EdJmSgiMWPv5evi7MTmpToBoSeqcYYmoqC9y4Fwx40Mg4nYWmC8h3u/dOUnR8XYezESU2KsGhUabyiOAozJs4qjAa1eB6v+v1R+eBK43pThzJLKN+3HwXgScF5qO4z9+HzU0T9tVhURHxi+NfjDBNWGYYpWAAlZa88cT4enzfyCmCfAHabQ+nF32gvmrlijZCNa5V4bpbKKhbaFbsSPO6n4DL3gETiwHTrqM/D88a06+PJM/JFZ5ZF5OJUQ2JO0qze/EX227VUpSSfq/OIR084x9rJEVvZvtSVkeREmVK+OdY3XP9VTOfdeiq3MXFP4dbWp7ewIDAQAB", - "_installUrl": "https://github.com/kaidelorenzo/grayjay-floatplane/releases/latest/download/config.json", - "_feeds": { - "commits": "https://github.com/kaidelorenzo/grayjay-floatplane/commits/main.atom", - "releases": "https://github.com/kaidelorenzo/grayjay-floatplane/releases.atom" - } - }, - { - "name": "Floatplane", - "description": "A content creation and video streaming website created by Floatplane Media Inc. and Linus Media Group.", - "author": "VoxelPrismatic", - "authorUrl": "https://github.com/voxelprismatic", - "sourceUrl": "https://raw.githubusercontent.com/VoxelPrismatic/grayjay-floatplane/main/FloatplaneConfig.json", - "repositoryUrl": "https://github.com/VoxelPrismatic/grayjay-floatplane/", - "scriptUrl": "https://raw.githubusercontent.com/VoxelPrismatic/grayjay-floatplane/main/FloatplaneScript.js", - "version": 1, - "iconUrl": "https://raw.githubusercontent.com/VoxelPrismatic/grayjay-floatplane/main/floatplane.png", - "id": "d8643244-633f-4c71-9f45-215b2387dc2c", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["www.floatplane.com", "floatplane.com"], - "_tags": ["untested", "archived"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/VoxelPrismatic/grayjay-floatplane/commits/main.atom", - "releases": "https://github.com/VoxelPrismatic/grayjay-floatplane/releases.atom" - } - }, - { - "name": "Genius Lyrics", - "description": "Fetch lyrics from Genius.com", - "author": "georgesygelakis", - "authorUrl": "https://github.com/georgesygelakis", - "platformUrl": "https://genius.com", - "version": 2, - "iconUrl": "https://i.pinimg.com/originals/48/a0/9f/48a09fb46e00022a692e459b917a2848.jpg", - "id": "genius-lyrics", - "scriptUrl": "./GeniusLyricsPlugin.js", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["https://genius.com/*", "https://api.genius.com/*"], - "supportedActions": ["getLyrics"] - }, - { - "name": "God Resource (Unofficial)", - "description": "Sermons from nifb", - "author": "Stuart Houston", - "authorUrl": "https://github.com/skytunnel", - "sourceUrl": "https://github.com/skytunnel/GodResourcePluginUnoffical/tree/dev/config.js", - "repositoryUrl": "https://github.com/skytunnel/GodResourcePluginUnoffical/tree/dev", - "scriptUrl": "https://github.com/skytunnel/GodResourcePluginUnoffical/tree/dev/script.js", - "version": 1, - "iconUrl": "https://www.godresource.com/Images/Logos/GRLogo.jpg", - "id": "482834c5-bba1-409e-a08b-4fb61d9e4232", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["unofficial", "unmaintained", "unknown"], - "_feeds": { - "commits": "https://github.com/skytunnel/GodResourcePluginUnoffical/commits/dev.atom", - "releases": "https://github.com/skytunnel/GodResourcePluginUnoffical/releases.atom" - } - }, - { - "name": "HeroHero", - "description": "A place for creators. Build your community. Earn from subscriptions. (neoficiální plugin)", - "author": "Pavel Žůrek", - "authorUrl": "https://github.com/PavelZurek", - "sourceUrl": "https://pavelzurek.github.io/grayjay-plugin-for-herohero/heroheroConfig.json", - "repositoryUrl": "https://github.com/PavelZurek/grayjay-plugin-for-herohero", - "scriptUrl": "./heroheroScript.js", - "version": 1, - "iconUrl": "./heroheroIcon.png", - "id": "00b74d1a-f052-4ccf-b8de-9f5623efc685", - "scriptPublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3bw+UjuEwXI/emCx7Ic54m/UtIXyQJ5BcFbzsN6+SbYRIrm2EUW2RUWMscQUkvu0fz9sh/3l5trS0jPYMBR1F77aZ9f76yE9bjiu590LIzLVcnc+nFyzYytn0PbSZg4Ienv7dzytpPRUHsBWqdR+w9zSByebY47pI4nxC9OeoKXCw/29I7kNzPYHlfIdM/0OqARR8UKWb8cUuw89esZVHaotJYczZJ/uJMM/dyWLFaN04HnMIg1WmYml7L3XrrtfrxrSC3xBndkCTn7BmW3tcFXTphLHXSAA+/UzfN/kk6OgnTZZpsQk8oq71KbxQWpZyi4ztKjhk+xadNgb5D5Tin1iqqAw0hHMHyB0g37+o8VQmy2E6azfo5aiIGl+Tu6SkHjTmHVUFoZIUA++iLA1ARpWm8VO3tkQUpLqdKhJdRpfKiwuCe9jVf+1m0e/QMrKAzs36XNTBbpptUUzrB9l92szjhGHZxaJ+ESh/7ZsaG0cC5xFnVItC8PbwLHXQQH9AgMBAAE=", - "scriptSignature": "sfJuZrbkM+GG4E4Z0daEiUe17+5hP0WResLnjBdJ+HzcEBz5nEVrVbutcsAWnHW1g3QEYYSwg060U8BETzclQIz2sdox70d6Bt3+mpYbD4+7On7Tr0jDTf6j5WFbot4XNcLw8issZ1Xt8aL/H7af3pfOIJitPMl8V4yTEKgjkCPI/8+sENuXzAqYUdeTbljh46FbxP6MbjiXXhWiEhHvUDGhhXI3h/YzPdlqupne6z9E9pfyL4K8WU1OW8dUf+wOX39FRpUFrI6K89kOqTEYF74jpm7B0wuREkGwokb3XdDF4M5TaXFx1SMPb/qNgkIxu2MBzEfqVWGdKPaMAyMpbhe8JgGkB9xRTvmialzNS2Gq6S6aJ5xMZkEyRFNfkHfzCkWu/tCJJlh9F3mgv6FJ5EkN+mNoFRbnyrwD4UxgRZcWAPHoFRh7oUlvZlvFuZornTXiUd/ue9S+1TTncnK44mFKg5folEQ5PlNfxYdFuZCy9db6Ek4mZ5eBe2pChKPS", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["svc-prod.herohero.co"], - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "loginUrl": "https://herohero.co/", - "cookiesToFind": ["accessToken2"] + { + "_tags": [ + "unofficial", + "untested" + ], + "_feeds": {}, + "name": "Dropout", + "description": "Independent, ad-free, uncensored comedy.", + "author": "Michael Braun", + "authorUrl": "https://github.com/BRNMan", + "platformUrl": "https://www.dropout.tv", + "sourceUrl": "https://github.com/BRNMan/Dropout-Grayjay-Plugin/releases/latest/download/config.json", + "repositoryUrl": "https://github.com/BRNMan/Dropout-Grayjay-Plugin", + "scriptUrl": "./script.js", + "version": 3, + "iconUrl": "./icon.png", + "id": "0b2d28e0-d645-4169-829f-8961a6169e68", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "www.dropout.tv", + "api.vhx.com", + "api.vhx.tv" + ], + "authentication": { + "loginUrl": "https://www.dropout.tv/login", + "cookiesToFind": [ + "_session", + "_device" + ] + }, + "scriptSignature": "nAAahtnzDeevU/7c16SLiML/UdKsq4a3yt2385dM8GG/xrNlOOCqbj2GEFBrXNDUghTQAMttH5dVX+0iLzSxg5rGu4dmZrZusWXMtRq+2z7jtFx+tb/LwQBqIesfOi6C8v1x+Azz5H+dYkmO4OzIeOhk1GsCp5R09ZTbXabOAc6tMlJfpaXCDdqYfbAAEsaekFco6jQnUq1K4ueCEnFSmpwvuNJGscOTkWpfwdi4JSSFB15e0JThbnBxPa+MaiamUGe4Xhd5AZT4h1jmnBlKLCUy5IbySIX067NH1q2TPlxoPnelxG5Tt6eHHSaKbE0KARXA2FbMAQZs6gYNglA+cg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn8YLDcaY1Ua6WCehGWaLbnPjbGXOxUDXcS7tB60UZskdmTt3cO3rj8g9YKJ1IdMvFoMmMuHqSgOnIdEUF+dYiQBYG/+ehVkYmRXVAO5WM1pgmn1HKeahXxH5XxLAiBbwbdCgQSj/dcbTodSDqlJReTHWtTF5pwFEMzp3JjMCiWgbLW7hEF44vMvbQ83LM/b9D2f73kd71UG7Fj+1NfbKfkRuaclMLTSyI+j9E17i7DKFRyJ62bIJrWT1pYzWZtAX8Zo56Bb0keBYsiGWRnSNVgvMrnO00mihr+XZwuGOUk+rBPuNK5bCbYxEzRdqzJ729nCqcBfRcMABnpK+iLhprQIDAQAB", + "_installUrl": "https://github.com/BRNMan/Dropout-Grayjay-Plugin/releases/latest/download/config.json" }, - "_tags": ["unofficial", "untested"], - "_installUrl": "https://pavelzurek.github.io/grayjay-plugin-for-herohero/heroheroConfig.json", - "_feeds": { - "commits": "https://github.com/PavelZurek/grayjay-plugin-for-herohero/commits/main.atom", - "releases": "https://github.com/PavelZurek/grayjay-plugin-for-herohero/releases.atom" - } - }, - { - "name": "Jellyfin", - "description": "Open-source video server", - "author": "Awlexus", - "authorUrl": "https://github.com/Awlexus", - "repositoryUrl": "https://github.com/Awlexus/grayjay-jellyfin-plugin", - "version": 5, - "iconUrl": "https://static-00.iconduck.com/assets.00/jellyfin-icon-2048x2048-n3v9lj7i.png", - "iconUrl_": "https://grayjay-jellyfin-plugin.fly.dev/images/jellyfin-logo.png", - "id": "82b8fefc-24aa-11ee-be56-0242af120ff0", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["unofficial", "unknown", "generator"], - "_feeds": { - "commits": "https://github.com/Awlexus/grayjay-jellyfin-plugin/commits/master.atom", - "releases": "https://github.com/Awlexus/grayjay-jellyfin-plugin/releases.atom" - }, - "websiteUrl": "https://grayjay-jellyfin-plugin.fly.dev", - "_customButtons": [ - { - "text": "Custom", - "url": "https://grayjay-jellyfin-plugin.fly.dev", - "classes": "btn-secondary" - } - ] - }, - { - "_tags": [ - "unofficial", - "wip", - "german", - "tv", - "streaming", - "series", - "movies", - "live" - ], - "name": "Joyn", - "description": "Joyn streaming platform - German entertainment, series, movies, and live TV", - "author": "Bluscream, Cursor.AI", - "authorUrl": "https://github.com/Bluscream", - "platformUrl": "https://joyn.de", - "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-joyn/main/build/JoynConfig.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-joyn", - "scriptUrl": "./JoynScript.js", - "version": 1, - "iconUrl": "./JoynIcon.png", - "id": "joyn-streaming-platform", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "joyn.de", - "www.joyn.de", - "*.joyn.de", - "api.joyn.de", - "auth.joyn.de", - "img.joyn.de", - "ffqrv35svv-dsn.algolia.net" - ], - "supportedClaimTypes": [3], - "enablePlaylists": true, - "enableLiveContent": true, - "authentication": { - "loginUrl": "https://www.joyn.de/login", - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "domainHeadersToFind": { - "joyn.de": [] - } - }, - "settings": [], - "changelog": { - "1": [ - "Initial version: TypeScript-based plugin", - "GraphQL API integration", - "Algolia search", - "Live TV channels", - "Series as playlists", - "Episodes and metadata", - "~70% feature complete" - ] + { + "_tags": [ + "unofficial", + "untested" + ], + "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", + "name": "Floatplane", + "description": "A content creation and video streaming website created by Floatplane Media Inc. and Linus Media Group.", + "author": "kaidelorenzo", + "authorUrl": "https://github.com/kaidelorenzo", + "platformUrl": "https://floatplane.com", + "sourceUrl": "https://github.com/kaidelorenzo/grayjay-floatplane/releases/latest/download/config.json", + "repositoryUrl": "https://github.com/kaidelorenzo/grayjay-floatplane", + "scriptUrl": "./script.js", + "version": 3, + "iconUrl": "./icon.png", + "id": "d8643244-633f-4c71-9f45-215b2387dc2c", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "www.floatplane.com", + "floatplane.com", + "cdn-vod-drm0.floatplane.com", + "cdn-vod-drm1.floatplane.com", + "cdn-vod-drm2.floatplane.com", + "cdn-vod-drm3.floatplane.com", + "cdn-vod-drm4.floatplane.com", + "cdn-vod-drm5.floatplane.com", + "cdn-vod-drm6.floatplane.com", + "cdn-vod-drm7.floatplane.com", + "cdn-vod-drm8.floatplane.com", + "cdn-vod-drm9.floatplane.com" + ], + "settings": [ + { + "variable": "stream_format", + "name": "Stream format", + "description": "This will reduce clutter in the source selector, especially if there are lots of attachments", + "type": "Dropdown", + "default": "0", + "options": [ + "HLS", + "Legacy HLS", + "Flat MP4" + ] + }, + { + "variable": "log_toasts", + "name": "Toast Logging", + "description": "Will log details in toasts", + "type": "Boolean", + "default": "false" + } + ], + "authentication": { + "loginUrl": "https://www.floatplane.com/login", + "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", + "cookiesToFind": [ + "sails.sid", + "muxData" + ], + "loginWarning": "Login and then open a video. Try using Discord login" + }, + "scriptSignature": "Wb0PIEDWr1Y/kfPY260owVyLiZ0QUzDfeMt1I7gsLUH/NFHaz7gUBf4ovse1jm0fA1ozG9daQXYK0oylvGkJmwS+TpBuiIIuH2cf+7rg9sJ1BZRUTJkSqix04z8ivC1nGrsDE9q3g85TnRmioDy581EomqHtVzIkDNH5GHb//LBOctBsDel4egOR0vwMQGA+vPvu0i3L4fSfHQ+8X0tvSFm4IpGAU9nEl1b8Wg3gnTzj21nsk9ykpmR0AMQWNSgDsufM8JpOT1dBTlmM2+roa4u4sAiZOZ2Ven3jMcGx5jJfA208eYM/zSAbQHGRHhuhf8m4r+tOHjhUJ2m6KINZVg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3XblavsQV/ct8b2EdJmSgiMWPv5evi7MTmpToBoSeqcYYmoqC9y4Fwx40Mg4nYWmC8h3u/dOUnR8XYezESU2KsGhUabyiOAozJs4qjAa1eB6v+v1R+eBK43pThzJLKN+3HwXgScF5qO4z9+HzU0T9tVhURHxi+NfjDBNWGYYpWAAlZa88cT4enzfyCmCfAHabQ+nF32gvmrlijZCNa5V4bpbKKhbaFbsSPO6n4DL3gETiwHTrqM/D88a06+PJM/JFZ5ZF5OJUQ2JO0qze/EX227VUpSSfq/OIR084x9rJEVvZvtSVkeREmVK+OdY3XP9VTOfdeiq3MXFP4dbWp7ewIDAQAB", + "_installUrl": "https://github.com/kaidelorenzo/grayjay-floatplane/releases/latest/download/config.json", + "_feeds": { + "commits": "https://github.com/kaidelorenzo/grayjay-floatplane/commits/main.atom", + "releases": "https://github.com/kaidelorenzo/grayjay-floatplane/releases.atom" + } }, - "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-joyn/main/build/JoynConfig.json", - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-joyn/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-joyn/releases.atom" - } - }, - { - "_tags": ["unofficial", "untested"], - "name": "KAN Israel", - "description": "Browse and watch Kan 11 shows and podcasts from kan.org.il.", - "author": "Alon Ben Refael", - "authorUrl": "https://github.com/abrefael", - "platformUrl": "https://www.kan.org.il/", - "sourceUrl": "https://raw.githubusercontent.com/abrefael/kan_il_grayjay_plugin/refs/heads/main/manifest.json", - "repositoryUrl": "https://github.com/abrefael/kan_il_grayjay_plugin", - "scriptUrl": "./main.js", - "version": 4, - "iconUrl": "./icon.png", - "id": "b385b7a4-5524-4408-a6ae-a36a37312aff", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "kan.org.il", - "www.kan.org.il", - "kan11webpstreaming.akamaized.net", - "kan11w.us-east-1.linodeobjects.com", - "api.kan.org.il", - "cdnapisec.kaltura.com" - ], - "settings": [], - "changelog": { - "1": ["Initial dev release"] - } - }, - { - "_tags": ["unofficial", "nsfw"], - "name": "Kemono", - "description": " Grayjay Kemono Plugin ", - "author": "Nrwh1", - "authorUrl": "https://github.com/Nrwh1", - "platformUrl": "https://kemono.cr/", - "sourceUrl": "https://github.com/Nrwh1/grayjay-plugin-kemono/raw/main/KemonoConfig.json", - "repositoryUrl": "https://github.com/Nrwh1/grayjay-plugin-kemono", - "scriptUrl": "./KemonoScript.js", - "version": 1, - "iconUrl": "./kemono_logo.png", - "id": "ad18112a-b951-4b4c-9f7e-492ed0e8e806", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_installUrl": "https://github.com/Nrwh1/grayjay-plugin-kemono/raw/main/KemonoConfig.json", - "_feeds": { - "commits": "https://github.com/Nrwh1/grayjay-plugin-kemono/commits/main.atom", - "releases": "https://github.com/Nrwh1/grayjay-plugin-kemono/releases.atom" - } - }, - { - "name": "Kick (Beta)", - "description": "A live streaming platform, backed by Stake.com.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Kick/KickConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/kick", - "scriptUrl": "./KickScript.js", - "version": 19, - "iconUrl": "./kick.png", - "id": "4a78c2ff-c20f-43ac-8f75-34515df1d320", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["kick.com", "search.kick.com", "web.kick.com"], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "or1hDO8G+z1ZC2qL+Mwzva96Gyk5Famh9flGmgbW4iXITlYng3rpfi8PeFpXB/Rl3LjuoWI+9F/CCWKa0bHQWjSK11YjTbMljUkw0HpPmmI+pUVRlGEOQtc6jpxY3M+RJ5SmFMSuxnNgsnCeeGSchHXAXNHxkhIXutEGhh3efs18JaAESK0wkJGIkVXWZ9mvck5ETHna6OgALulftD6YYeCoqB43Bp1OH2hTgUCgTvbKwQPPZD7DKGCV483rFFq61X2U8LdSdDOaboqP+DyrMVv6vpRTRx6g8wuSq+Hx2Oo8sypjxY/YBb4pulbEcCftsycqgnbex1UgeHwJzvQRXg==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/kick/-/commits/master?format=atom" + { + "name": "Floatplane", + "description": "A content creation and video streaming website created by Floatplane Media Inc. and Linus Media Group.", + "author": "VoxelPrismatic", + "authorUrl": "https://github.com/voxelprismatic", + "sourceUrl": "https://raw.githubusercontent.com/VoxelPrismatic/grayjay-floatplane/main/FloatplaneConfig.json", + "repositoryUrl": "https://github.com/VoxelPrismatic/grayjay-floatplane/", + "scriptUrl": "https://raw.githubusercontent.com/VoxelPrismatic/grayjay-floatplane/main/FloatplaneScript.js", + "version": 1, + "iconUrl": "https://raw.githubusercontent.com/VoxelPrismatic/grayjay-floatplane/main/floatplane.png", + "id": "d8643244-633f-4c71-9f45-215b2387dc2c", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "www.floatplane.com", + "floatplane.com" + ], + "_tags": [ + "untested", + "archived" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/VoxelPrismatic/grayjay-floatplane/commits/main.atom", + "releases": "https://github.com/VoxelPrismatic/grayjay-floatplane/releases.atom" + } }, - "platformUrl": "https://kick.com", - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.200 Mobile Safari/537.36", - "loginUrl": "https://kick.com", - "headersToFind": ["Authorization"], - "cookiesToFind": ["session_token"], - "loginButton": "nav button:last-child", - "completionUrl": "https://kick.com/broadcasting/auth" + { + "name": "Genius Lyrics", + "description": "Fetch lyrics from Genius.com", + "author": "georgesygelakis", + "authorUrl": "https://github.com/georgesygelakis", + "platformUrl": "https://genius.com", + "version": 2, + "iconUrl": "https://i.pinimg.com/originals/48/a0/9f/48a09fb46e00022a692e459b917a2848.jpg", + "id": "genius-lyrics", + "scriptUrl": "./GeniusLyricsPlugin.js", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "https://genius.com/*", + "https://api.genius.com/*" + ], + "supportedActions": [ + "getLyrics" + ] }, - "supportedClaimTypes": [16] - }, - { - "name": "LibriVox (Alpha)", - "description": "Acoustical liberation of books in the public domain", - "author": "Stefan Cruz", - "authorUrl": "", - "platformUrl": "https://librivox.org/", - "sourceUrl": "https://grayjay-plugin-librivox.craftwithstefan.com/LibriVoxConfig.json", - "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-librivox", - "scriptUrl": "./LibriVoxScript.js", - "version": 27, - "iconUrl": "https://grayjay-plugin-librivox.craftwithstefan.com/LibriVoxIcon.png", - "id": "5c2f78d4-6eec-4f3f-b25b-28d885aeb147", - "scriptSignature": "EfmgQguYiroY4frnp9oW3MEx3haSbjQALa/kOKxgeOnvrzRCdKBne9DQJEhPruMvMZmbJnKCoOpIhHRSmFW4JBR5HtP0nn5Oa8+oK46iqbeA13t3qZ5rkzNyPB7/hsBZ7rjCs1ZNWsf5KOfdrabPEaDo1rqywtpGx+Wbr1FK0Rioz3OtXzKtX3ktrd3DvSZGjM+ZE7y7qsmnOWoWBCt1zdVioR6q3keV7HOMGcOYV0Jt1FaJM5I8dpGBPmRRL0dcuHiuaqCL9BDLOxf4fC0gdy1BjZuH0ImUQvAzFcI6SzqM75tS9NVv493O6Smn+foq8nplzgA/vPO/kURPG9nV0A==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", - "packages": ["Http"], - "allowEval": false, - "constants": { - "baseUrl": "https://librivox-api.craftwithstefan.com" + { + "name": "God Resource (Unofficial)", + "description": "Sermons from nifb", + "author": "Stuart Houston", + "authorUrl": "https://github.com/skytunnel", + "sourceUrl": "https://github.com/skytunnel/GodResourcePluginUnoffical/tree/dev/config.js", + "repositoryUrl": "https://github.com/skytunnel/GodResourcePluginUnoffical/tree/dev", + "scriptUrl": "https://github.com/skytunnel/GodResourcePluginUnoffical/tree/dev/script.js", + "version": 1, + "iconUrl": "https://www.godresource.com/Images/Logos/GRLogo.jpg", + "id": "482834c5-bba1-409e-a08b-4fb61d9e4232", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_tags": [ + "unofficial", + "unmaintained", + "unknown" + ], + "_feeds": { + "commits": "https://github.com/skytunnel/GodResourcePluginUnoffical/commits/dev.atom", + "releases": "https://github.com/skytunnel/GodResourcePluginUnoffical/releases.atom" + } }, - "allowUrls": [ - ".librivox.org", - ".archive.org", - "librivox-api.craftwithstefan.com" - ], - "settings": [ - { - "variable": "homeHeader", - "name": "Home", - "description": "", - "type": "Header" - }, - { - "variable": "languageOptionIndex", - "name": "Language", - "description": "", - "type": "Dropdown", - "default": "0", - "options": [ - "All", - "Ancient Greek", - "Arabic", - "Bisaya/Cebuano", - "Bulgarian", - "Cantonese Chinese", - "Catalan", - "Chinese", - "Church Slavonic", - "Croatian", - "Czech", - "Danish", - "Dholuo/Luo", - "Dutch", - "English", - "Esperanto", - "Finnish", - "French", - "German", - "Greek", - "Hebrew", - "Hindi", - "Hungarian", - "Indonesian", - "Irish", - "Italian", - "Japanese", - "Javanese", - "Korean", - "Latin", - "Latvian", - "Luxembourgish", - "Macedonian", - "Maori", - "Middle English", - "Multilingual", - "Norwegian", - "Old English", - "Persian/Farsi", - "Polish", - "Portuguese", - "Romanian", - "Russian", - "Sanskrit", - "Spanish", - "Swedish", - "Tagalog", - "Tamil", - "Telugu", - "Ukrainian", - "Urdu" - ] - }, - { - "variable": "genreOptionIndex", - "name": "Genre", - "description": "", - "type": "Dropdown", - "default": "0", - "options": [ - "All", - "Action & Adventure Fiction", - "Biography & Autobiography", - "Children's Fiction", - "Children's Non-fiction", - "Classics (Greek & Latin Antiquity)", - "Comedy", - "Crime & Mystery Fiction", - "Detective Fiction", - "Drama", - "Dramatic Readings", - "Essays & Short Works", - "Fantasy Fiction", - "Fiction", - "Gothic Fiction", - "Historical Fiction", - "Horror & Ghost Stories", - "Humor", - "Humorous Fiction", - "Literary Fiction", - "Memoirs", - "Multi-version", - "Music", - "Nature", - "Non-fiction", - "Philosophy", - "Poetry", - "Published 1800 -1900", - "Published 1900 -2000", - "Published before 1800", - "Romance", - "Satire", - "Science", - "Science Fiction", - "Short Stories", - "Short works", - "Suspense", - "Thriller", - "Travel & Geography" - ] - } - ], - "changelog": { - "26": ["Fix: Authors thumbnails when available;"], - "27": [ - "Add: Genre setting for filtering home feed;", - "Add: Genre and Language search filters (can override default settings);", - "Add: Search within author/reader channels with language and genre filters;", - "Add: Support more platforms (IMDB, Library of Congress, BookBrainz, StoryGraph, Italian National Library, and German National Library) in author links when available;", - "Fix: Show track count in author channel playlists;" - ] + { + "name": "HeroHero", + "description": "A place for creators. Build your community. Earn from subscriptions. (neoficiální plugin)", + "author": "Pavel Žůrek", + "authorUrl": "https://github.com/PavelZurek", + "sourceUrl": "https://pavelzurek.github.io/grayjay-plugin-for-herohero/heroheroConfig.json", + "repositoryUrl": "https://github.com/PavelZurek/grayjay-plugin-for-herohero", + "scriptUrl": "./heroheroScript.js", + "version": 1, + "iconUrl": "./heroheroIcon.png", + "id": "00b74d1a-f052-4ccf-b8de-9f5623efc685", + "scriptPublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3bw+UjuEwXI/emCx7Ic54m/UtIXyQJ5BcFbzsN6+SbYRIrm2EUW2RUWMscQUkvu0fz9sh/3l5trS0jPYMBR1F77aZ9f76yE9bjiu590LIzLVcnc+nFyzYytn0PbSZg4Ienv7dzytpPRUHsBWqdR+w9zSByebY47pI4nxC9OeoKXCw/29I7kNzPYHlfIdM/0OqARR8UKWb8cUuw89esZVHaotJYczZJ/uJMM/dyWLFaN04HnMIg1WmYml7L3XrrtfrxrSC3xBndkCTn7BmW3tcFXTphLHXSAA+/UzfN/kk6OgnTZZpsQk8oq71KbxQWpZyi4ztKjhk+xadNgb5D5Tin1iqqAw0hHMHyB0g37+o8VQmy2E6azfo5aiIGl+Tu6SkHjTmHVUFoZIUA++iLA1ARpWm8VO3tkQUpLqdKhJdRpfKiwuCe9jVf+1m0e/QMrKAzs36XNTBbpptUUzrB9l92szjhGHZxaJ+ESh/7ZsaG0cC5xFnVItC8PbwLHXQQH9AgMBAAE=", + "scriptSignature": "sfJuZrbkM+GG4E4Z0daEiUe17+5hP0WResLnjBdJ+HzcEBz5nEVrVbutcsAWnHW1g3QEYYSwg060U8BETzclQIz2sdox70d6Bt3+mpYbD4+7On7Tr0jDTf6j5WFbot4XNcLw8issZ1Xt8aL/H7af3pfOIJitPMl8V4yTEKgjkCPI/8+sENuXzAqYUdeTbljh46FbxP6MbjiXXhWiEhHvUDGhhXI3h/YzPdlqupne6z9E9pfyL4K8WU1OW8dUf+wOX39FRpUFrI6K89kOqTEYF74jpm7B0wuREkGwokb3XdDF4M5TaXFx1SMPb/qNgkIxu2MBzEfqVWGdKPaMAyMpbhe8JgGkB9xRTvmialzNS2Gq6S6aJ5xMZkEyRFNfkHfzCkWu/tCJJlh9F3mgv6FJ5EkN+mNoFRbnyrwD4UxgRZcWAPHoFRh7oUlvZlvFuZornTXiUd/ue9S+1TTncnK44mFKg5folEQ5PlNfxYdFuZCy9db6Ek4mZ5eBe2pChKPS", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "svc-prod.herohero.co" + ], + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "loginUrl": "https://herohero.co/", + "cookiesToFind": [ + "accessToken2" + ] + }, + "_tags": [ + "unofficial", + "untested" + ], + "_installUrl": "https://pavelzurek.github.io/grayjay-plugin-for-herohero/heroheroConfig.json", + "_feeds": { + "commits": "https://github.com/PavelZurek/grayjay-plugin-for-herohero/commits/main.atom", + "releases": "https://github.com/PavelZurek/grayjay-plugin-for-herohero/releases.atom" + } }, - "_tags": [], - "_installUrl": "https://grayjay-plugin-librivox.craftwithstefan.com/LibriVoxConfig.json", - "_feeds": { - "commits": "https://github.com/stefancruz/grayjay-plugin-librivox/commits/main.atom", - "releases": "https://github.com/stefancruz/grayjay-plugin-librivox/releases.atom" - } - }, - { - "name": "Librivox Audiobooks", - "platformUrl": "https://librivox.org/", - "description": "Free public domain audiobooks read by volunteers from around the world", - "author": "Vijay Prema", - "authorUrl": "https://futo.org", - "repositoryUrl": "https://github.com/vijay-prema/librivox-grayjay", - "sourceUrl": "https://raw.githubusercontent.com/vijay-prema/librivox-grayjay/refs/heads/main/LibrivoxConfig.json", - "scriptUrl": "./LibrivoxScript.js", - "version": 3, - "iconUrl": "./LibrivoxIcon.png", - "id": "971285f6-289a-40da-8df8-97aedb905927", - "subscriptionRateLimit": 10, - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["librivox.org", "archive.org"], - "settings": [ - { - "variable": "allowExplicit", - "name": "Allow Explicit Content", - "description": "Allow listening to audiobooks with explicit content warnings", - "type": "Boolean", - "default": "true" - }, - { - "variable": "preferredLanguage", - "name": "Preferred Language", - "description": "Select your preferred language for audiobook results", - "type": "Dropdown", - "default": "0", - "options": [ - "English", - "French", - "German", - "Spanish", - "Italian", - "Portuguese", - "Dutch", - "All Languages" + { + "name": "Jellyfin", + "description": "Open-source video server", + "author": "Awlexus", + "authorUrl": "https://github.com/Awlexus", + "repositoryUrl": "https://github.com/Awlexus/grayjay-jellyfin-plugin", + "version": 5, + "iconUrl": "https://static-00.iconduck.com/assets.00/jellyfin-icon-2048x2048-n3v9lj7i.png", + "iconUrl_": "https://grayjay-jellyfin-plugin.fly.dev/images/jellyfin-logo.png", + "id": "82b8fefc-24aa-11ee-be56-0242af120ff0", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_tags": [ + "unofficial", + "unknown", + "generator" + ], + "_feeds": { + "commits": "https://github.com/Awlexus/grayjay-jellyfin-plugin/commits/master.atom", + "releases": "https://github.com/Awlexus/grayjay-jellyfin-plugin/releases.atom" + }, + "websiteUrl": "https://grayjay-jellyfin-plugin.fly.dev", + "_customButtons": [ + { + "text": "Custom", + "url": "https://grayjay-jellyfin-plugin.fly.dev", + "classes": "btn-secondary" + } ] - }, - { - "variable": "contentRecommendationOptionIndex", - "name": "Content recommendations source", - "description": "Select the source of content recommendations", - "type": "Dropdown", - "default": "0", - "options": ["Popular audiobooks", "Recently added audiobooks"] - } - ], - "authentication": null, - "changelog": { - "1": [ - "Initial release: Support for Librivox audiobooks", - "Search audiobooks by title, author, or genre", - "Browse popular and recently added audiobooks", - "Support for multiple languages", - "Chapter-based navigation for audiobooks" - ], - "2": ["Audiobook are now returned as playlists with chapters"], - "3": ["Revert playlist approach and try something else"], - "4": ["Added thumbnail support for audiobooks and authors"] }, - "_tags": [], - "_installUrl": "https://raw.githubusercontent.com/vijay-prema/librivox-grayjay/refs/heads/main/LibrivoxConfig.json", - "_feeds": { - "commits": "https://github.com/vijay-prema/librivox-grayjay/commits/main.atom", - "releases": "https://github.com/vijay-prema/librivox-grayjay/releases.atom" - } - }, - { - "_tags": ["unofficial", "untested"], - "_feeds": { - "commits": "https://github.com/nutstone/grayjay-manhuafast-plugin/commits/main.atom", - "releases": "https://github.com/nutstone/grayjay-manhuafast-plugin/releases.atom" + { + "_tags": [ + "unofficial", + "wip", + "german", + "tv", + "streaming", + "series", + "movies", + "live" + ], + "name": "Joyn", + "description": "Joyn streaming platform - German entertainment, series, movies, and live TV", + "author": "Bluscream, Cursor.AI", + "authorUrl": "https://github.com/Bluscream", + "platformUrl": "https://joyn.de", + "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-joyn/main/build/JoynConfig.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-joyn", + "scriptUrl": "./JoynScript.js", + "version": 1, + "iconUrl": "./JoynIcon.png", + "id": "joyn-streaming-platform", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "joyn.de", + "www.joyn.de", + "*.joyn.de", + "api.joyn.de", + "auth.joyn.de", + "img.joyn.de", + "ffqrv35svv-dsn.algolia.net" + ], + "supportedClaimTypes": [ + 3 + ], + "enablePlaylists": true, + "enableLiveContent": true, + "authentication": { + "loginUrl": "https://www.joyn.de/login", + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "domainHeadersToFind": { + "joyn.de": [] + } + }, + "settings": [], + "changelog": { + "1": [ + "Initial version: TypeScript-based plugin", + "GraphQL API integration", + "Algolia search", + "Live TV channels", + "Series as playlists", + "Episodes and metadata", + "~70% feature complete" + ] + }, + "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-joyn/main/build/JoynConfig.json", + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-joyn/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-joyn/releases.atom" + } }, - "name": "ManhuaFast", - "description": "Viewer for manhua fast", - "author": "nuthug", - "authorUrl": "https://raw.githubusercontent.com/Nutstone/", - "sourceUrl": "https://nutstone.github.io/grayjay-manhuafast-plugin/ManhuaFastConfig.json", - "repositoryUrl": "https://github.com/nutstone/grayjay-manhuafast-plugin", - "scriptUrl": "./ManhuaFastScript.js", - "version": 1, - "iconUrl": "./d7dfe5ef-4332-4ffa-b890-1b703d22ca0d.png", - "id": "cd1dff4b-89d3-4326-8c8c-930da64cec5c", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowUrls": ["manhuafast.com"], - "_installUrl": "https://nutstone.github.io/grayjay-manhuafast-plugin/ManhuaFastConfig.json" - }, - { - "name": "MediathekView", - "description": "Online media library for German television broadcasters", - "author": "Björn Eberhardt", - "authorUrl": "https://8bj.de", - "sourceUrl": "https://grayjay-sources.github.io/grayjay-source-mediathekview/MediathekConfig.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-mediathekview", - "scriptUrl": "./MediathekScript.js", - "version": 23, - "iconUrl": "./mediathek.png", - "id": "da5e25de-1a2d-22df-1612-be89ed1adee6", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "mediathekviewweb.de", - "akamaihd.net", - "utstreaming.zdf.de", - "everywhere" - ], - "_tags": ["unofficial", "working", "german"], - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-mediathekview/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-mediathekview/releases.atom" - } - }, - { - "_tags": ["official", "working"], - "name": "Mixcloud (Alpha)", - "platformUrl": "https://www.mixcloud.com", - "description": "Listen to the best DJs and radio presenters in the world for free.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Mixcloud/MixcloudConfig.json", - "scriptUrl": "./MixcloudScript.js", - "iconUrl": "./MixcloudIcon.png", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/mixcloud", - "version": 8, - "id": "84331338-b045-419c-88e4-c86036f4cbf5", - "scriptSignature": "ENHFesArWTME54KvrBsUS5QUzMYwdJehTjhsKSuQWxOzrmkegv0IOS26ED/2TU9lkMPmv3Rj8AUCD38r0zLTgK/E5uTi8Gc6tu98SnR2F0fKRGOdKzHTMJLgqfXxTe2g58GC0nf6bxQzYlOpdKQSOp1a6Kp8IpK19HslFpyWIXovRFSx238P9pPAaY/ySFYjIQ1ew2vy9H8DHoNZv4LfSWsUu9u2LS85Ydmv7CY51GFstumMKwaLS+iwUQa3cCNiTBwCXTtn8T4c6FGOib5HH499J9cXc8TuBZ5ZYwKDwLgEWORFMqEvh+rPVA30hpvmBfhILBblOhx8NOZgeirxAA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [".mixcloud.com", ".mixcloud.stream"], - "maxDownloadParallelism": 1, - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "loginUrl": "https://www.mixcloud.com/login/?next=%2Fhome%2Ffor-you%2F", - "completionUrl": "https://www.mixcloud.com/home/for-you/", - "cookiesToFind": ["csrftoken", "mx_t", "c"] + { + "_tags": [ + "unofficial", + "untested" + ], + "name": "KAN Israel", + "description": "Browse and watch Kan 11 shows and podcasts from kan.org.il.", + "author": "Alon Ben Refael", + "authorUrl": "https://github.com/abrefael", + "platformUrl": "https://www.kan.org.il/", + "sourceUrl": "https://raw.githubusercontent.com/abrefael/kan_il_grayjay_plugin/refs/heads/main/manifest.json", + "repositoryUrl": "https://github.com/abrefael/kan_il_grayjay_plugin", + "scriptUrl": "./main.js", + "version": 4, + "iconUrl": "./icon.png", + "id": "b385b7a4-5524-4408-a6ae-a36a37312aff", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "kan.org.il", + "www.kan.org.il", + "kan11webpstreaming.akamaized.net", + "kan11w.us-east-1.linodeobjects.com", + "api.kan.org.il", + "cdnapisec.kaltura.com" + ], + "settings": [], + "changelog": { + "1": [ + "Initial dev release" + ] + } }, - "changelog": { - "1": [ - "Home with live streams;", - "Search shows;", - "Search creators;", - "Creator details with live streams and audio content;", - "Audio streams;", - "Comments;", - "Live chat;", - "Content recommendation;" - ], - "2": [ - "Improvement: Add channel platform playlists (History, Favorites, Reposts, Tracks);", - "Improvement: Add channel custom playlists;", - "Improvement: Improve plugin's logo resolution;", - "Improvement: Use channel videos as recommendations for livestreams;", - "Improvement: Support encrypted sources;" - ], - "3": [ - "Improvement: Add login support;", - "Improvement: Import user playlists (favorites, history, reposts, listen-later and custom playlists);", - "Improvement: Import user subscriptions;", - "Improvement: Add creator's country and city in channel description;", - "Fix: Add missing date in video details;", - "Fix: Add live and upload content description;", - "Fix: Play preview uploads;" - ], - "4": [ - "Fix: Deep-linking to playlists;", - "Code improvements;", - "Improvement: Improve handling Radios with multiple DJs;", - "Improvement: Include an hyperlink in the track description to the Dj channel when playing for a Radio;" - ], - "5": ["Fix: Content recommendations for live streams;"], - "6": [ - "Improvement: Fix relationship between DJs and Radios in content description;" - ], - "7": ["Improvement: Add exclusive subscriber-only content support;"], - "8": [ - "Fix: Not show toast for preview content when user is already subscribed artist;" - ] + { + "_tags": [ + "unofficial", + "nsfw" + ], + "name": "Kemono", + "description": " Grayjay Kemono Plugin ", + "author": "Nrwh1", + "authorUrl": "https://github.com/Nrwh1", + "platformUrl": "https://kemono.cr/", + "sourceUrl": "https://github.com/Nrwh1/grayjay-plugin-kemono/raw/main/KemonoConfig.json", + "repositoryUrl": "https://github.com/Nrwh1/grayjay-plugin-kemono", + "scriptUrl": "./KemonoScript.js", + "version": 1, + "iconUrl": "./kemono_logo.png", + "id": "ad18112a-b951-4b4c-9f7e-492ed0e8e806", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_installUrl": "https://github.com/Nrwh1/grayjay-plugin-kemono/raw/main/KemonoConfig.json", + "_feeds": { + "commits": "https://github.com/Nrwh1/grayjay-plugin-kemono/commits/main.atom", + "releases": "https://github.com/Nrwh1/grayjay-plugin-kemono/releases.atom" + } }, - "_installUrl": "https://plugins.grayjay.app/Mixcloud/MixcloudConfig.json" - }, - { - "name": "Nebula", - "description": "A subscription-based video platform, co-owned by Standard Broadcast LLC and various creators.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Nebula/NebulaConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/nebula", - "scriptUrl": "./NebulaScript.js", - "version": 14, - "iconUrl": "./NebulaIcon.png", - "id": "9d703ff5-c556-4962-a990-4f000829cb87", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "nebula.tv", - "content.api.nebula.app", - "nebula.app", - "users.api.nebula.app", - "starlight.nebula.tv" - ], - "_tags": ["official", "maintained", "working", "paid content"], - "scriptSignature": "AmLWtgd/gOPOWrPlRZCjBGvyaKAXtdX6MrE7+ke0ro9ftr747fovarPYqpkVMDvmq0HA3yX1rV4mjUtkddIcCBl+yqWoy9FjfG7jcajxyoq6jhMVpzMT1VIfLN0P0jjV+VMPI3xKcpdvUYDFDTDtTGakAJv7Tk5bQCztGnH2A+p+F+10s9ZdCZsMTbU7YcbbVt0ZBPE/qbKL8HNJ8NO8sNbKd5mXujHEc4IeS3QToEUfZ5v1kh7H2jrlVL3dw30+9nzPTDzu44Z3jhvc6n28v7G/M1XgmNTcnqM+iPmIyyt6no9afihPx84cy0Q1XlthnZ49sozaYco3dMnNUCTdoQ==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/nebula/-/commits/master?format=atom" + { + "name": "Kick (Beta)", + "description": "A live streaming platform, backed by Stake.com.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Kick/KickConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/kick", + "scriptUrl": "./KickScript.js", + "version": 19, + "iconUrl": "./kick.png", + "id": "4a78c2ff-c20f-43ac-8f75-34515df1d320", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "kick.com", + "search.kick.com", + "web.kick.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "or1hDO8G+z1ZC2qL+Mwzva96Gyk5Famh9flGmgbW4iXITlYng3rpfi8PeFpXB/Rl3LjuoWI+9F/CCWKa0bHQWjSK11YjTbMljUkw0HpPmmI+pUVRlGEOQtc6jpxY3M+RJ5SmFMSuxnNgsnCeeGSchHXAXNHxkhIXutEGhh3efs18JaAESK0wkJGIkVXWZ9mvck5ETHna6OgALulftD6YYeCoqB43Bp1OH2hTgUCgTvbKwQPPZD7DKGCV483rFFq61X2U8LdSdDOaboqP+DyrMVv6vpRTRx6g8wuSq+Hx2Oo8sypjxY/YBb4pulbEcCftsycqgnbex1UgeHwJzvQRXg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/kick/-/commits/master?format=atom" + }, + "platformUrl": "https://kick.com", + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.200 Mobile Safari/537.36", + "loginUrl": "https://kick.com", + "headersToFind": [ + "Authorization" + ], + "cookiesToFind": [ + "session_token" + ], + "loginButton": "nav button:last-child", + "completionUrl": "https://kick.com/broadcasting/auth" + }, + "supportedClaimTypes": [ + 16 + ] }, - "platformUrl": "https://nebula.tv", - "authentication": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", - "loginUrl": "https://nebula.tv/login", - "headersToFind": ["Authorization"], - "cookiesToFind": ["nebula_auth.apiToken"], - "completionUrl": "https://users.api.nebula.app/api/v1/authorization/" + { + "name": "LibriVox (Alpha)", + "description": "Acoustical liberation of books in the public domain", + "author": "Stefan Cruz", + "authorUrl": "", + "platformUrl": "https://librivox.org/", + "sourceUrl": "https://grayjay-plugin-librivox.craftwithstefan.com/LibriVoxConfig.json", + "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-librivox", + "scriptUrl": "./LibriVoxScript.js", + "version": 27, + "iconUrl": "https://grayjay-plugin-librivox.craftwithstefan.com/LibriVoxIcon.png", + "id": "5c2f78d4-6eec-4f3f-b25b-28d885aeb147", + "scriptSignature": "EfmgQguYiroY4frnp9oW3MEx3haSbjQALa/kOKxgeOnvrzRCdKBne9DQJEhPruMvMZmbJnKCoOpIhHRSmFW4JBR5HtP0nn5Oa8+oK46iqbeA13t3qZ5rkzNyPB7/hsBZ7rjCs1ZNWsf5KOfdrabPEaDo1rqywtpGx+Wbr1FK0Rioz3OtXzKtX3ktrd3DvSZGjM+ZE7y7qsmnOWoWBCt1zdVioR6q3keV7HOMGcOYV0Jt1FaJM5I8dpGBPmRRL0dcuHiuaqCL9BDLOxf4fC0gdy1BjZuH0ImUQvAzFcI6SzqM75tS9NVv493O6Smn+foq8nplzgA/vPO/kURPG9nV0A==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", + "packages": [ + "Http" + ], + "allowEval": false, + "constants": { + "baseUrl": "https://librivox-api.craftwithstefan.com" + }, + "allowUrls": [ + ".librivox.org", + ".archive.org", + "librivox-api.craftwithstefan.com" + ], + "settings": [ + { + "variable": "homeHeader", + "name": "Home", + "description": "", + "type": "Header" + }, + { + "variable": "languageOptionIndex", + "name": "Language", + "description": "", + "type": "Dropdown", + "default": "0", + "options": [ + "All", + "Ancient Greek", + "Arabic", + "Bisaya/Cebuano", + "Bulgarian", + "Cantonese Chinese", + "Catalan", + "Chinese", + "Church Slavonic", + "Croatian", + "Czech", + "Danish", + "Dholuo/Luo", + "Dutch", + "English", + "Esperanto", + "Finnish", + "French", + "German", + "Greek", + "Hebrew", + "Hindi", + "Hungarian", + "Indonesian", + "Irish", + "Italian", + "Japanese", + "Javanese", + "Korean", + "Latin", + "Latvian", + "Luxembourgish", + "Macedonian", + "Maori", + "Middle English", + "Multilingual", + "Norwegian", + "Old English", + "Persian/Farsi", + "Polish", + "Portuguese", + "Romanian", + "Russian", + "Sanskrit", + "Spanish", + "Swedish", + "Tagalog", + "Tamil", + "Telugu", + "Ukrainian", + "Urdu" + ] + }, + { + "variable": "genreOptionIndex", + "name": "Genre", + "description": "", + "type": "Dropdown", + "default": "0", + "options": [ + "All", + "Action & Adventure Fiction", + "Biography & Autobiography", + "Children's Fiction", + "Children's Non-fiction", + "Classics (Greek & Latin Antiquity)", + "Comedy", + "Crime & Mystery Fiction", + "Detective Fiction", + "Drama", + "Dramatic Readings", + "Essays & Short Works", + "Fantasy Fiction", + "Fiction", + "Gothic Fiction", + "Historical Fiction", + "Horror & Ghost Stories", + "Humor", + "Humorous Fiction", + "Literary Fiction", + "Memoirs", + "Multi-version", + "Music", + "Nature", + "Non-fiction", + "Philosophy", + "Poetry", + "Published 1800 -1900", + "Published 1900 -2000", + "Published before 1800", + "Romance", + "Satire", + "Science", + "Science Fiction", + "Short Stories", + "Short works", + "Suspense", + "Thriller", + "Travel & Geography" + ] + } + ], + "changelog": { + "26": [ + "Fix: Authors thumbnails when available;" + ], + "27": [ + "Add: Genre setting for filtering home feed;", + "Add: Genre and Language search filters (can override default settings);", + "Add: Search within author/reader channels with language and genre filters;", + "Add: Support more platforms (IMDB, Library of Congress, BookBrainz, StoryGraph, Italian National Library, and German National Library) in author links when available;", + "Fix: Show track count in author channel playlists;" + ] + }, + "_tags": [], + "_installUrl": "https://grayjay-plugin-librivox.craftwithstefan.com/LibriVoxConfig.json", + "_feeds": { + "commits": "https://github.com/stefancruz/grayjay-plugin-librivox/commits/main.atom", + "releases": "https://github.com/stefancruz/grayjay-plugin-librivox/releases.atom" + } }, - "supportedClaimTypes": [19] - }, - { - "_tags": ["unofficial", "untested"], - "name": "Newgrounds", - "description": "One of the most well known online communities", - "author": "Lofiat", - "authorUrl": "https://www.github.com/Loafiat", - "sourceUrl": "https://github.com/Loafiat/NewgroundsPlugin/NewgroundsConfig.json", - "repositoryUrl": "https://github.com/Loafiat/NewgroundsPlugin/", - "scriptUrl": "./NewgroundsScript.js", - "version": 9, - "iconUrl": "./Newgrounds.png", - "id": "002c7f46-5a93-492d-b5e3-91b621993be8", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "authentication": { - "loginUrl": "https://www.newgrounds.com/passport/mode/iframe", - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "cookiesToFind": ["passport-auth"], - "loginWarning": "Does not exit automatically" + { + "name": "Librivox Audiobooks", + "platformUrl": "https://librivox.org/", + "description": "Free public domain audiobooks read by volunteers from around the world", + "author": "Vijay Prema", + "authorUrl": "https://futo.org", + "repositoryUrl": "https://github.com/vijay-prema/librivox-grayjay", + "sourceUrl": "https://raw.githubusercontent.com/vijay-prema/librivox-grayjay/refs/heads/main/LibrivoxConfig.json", + "scriptUrl": "./LibrivoxScript.js", + "version": 3, + "iconUrl": "./LibrivoxIcon.png", + "id": "971285f6-289a-40da-8df8-97aedb905927", + "subscriptionRateLimit": 10, + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "librivox.org", + "archive.org" + ], + "settings": [ + { + "variable": "allowExplicit", + "name": "Allow Explicit Content", + "description": "Allow listening to audiobooks with explicit content warnings", + "type": "Boolean", + "default": "true" + }, + { + "variable": "preferredLanguage", + "name": "Preferred Language", + "description": "Select your preferred language for audiobook results", + "type": "Dropdown", + "default": "0", + "options": [ + "English", + "French", + "German", + "Spanish", + "Italian", + "Portuguese", + "Dutch", + "All Languages" + ] + }, + { + "variable": "contentRecommendationOptionIndex", + "name": "Content recommendations source", + "description": "Select the source of content recommendations", + "type": "Dropdown", + "default": "0", + "options": [ + "Popular audiobooks", + "Recently added audiobooks" + ] + } + ], + "authentication": null, + "changelog": { + "1": [ + "Initial release: Support for Librivox audiobooks", + "Search audiobooks by title, author, or genre", + "Browse popular and recently added audiobooks", + "Support for multiple languages", + "Chapter-based navigation for audiobooks" + ], + "2": [ + "Audiobook are now returned as playlists with chapters" + ], + "3": [ + "Revert playlist approach and try something else" + ], + "4": [ + "Added thumbnail support for audiobooks and authors" + ] + }, + "_tags": [], + "_installUrl": "https://raw.githubusercontent.com/vijay-prema/librivox-grayjay/refs/heads/main/LibrivoxConfig.json", + "_feeds": { + "commits": "https://github.com/vijay-prema/librivox-grayjay/commits/main.atom", + "releases": "https://github.com/vijay-prema/librivox-grayjay/releases.atom" + } }, - "allowEval": false, - "allowUrls": ["everywhere"], - "_feeds": { - "commits": "https://github.com/Loafiat/NewgroundsPlugin/commits/main.atom", - "releases": "https://github.com/Loafiat/NewgroundsPlugin/releases.atom" - } - }, - { - "name": "Niconico", - "description": "Niconico is the biggest video platform in Japan", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Niconico/NiconicoConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/niconico", - "scriptUrl": "./NiconicoScript.js", - "version": 3, - "iconUrl": "./NiconicoIcon.png", - "id": "94c86b48-eee9-4d49-9f2e-56c8e650936a", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "nvapi.nicovideo.jp", - "sug.search.nicovideo.jp", - "api.search.nicovideo.jp", - "live.nicovideo.jp", - "www.nicovideo.jp", - "public.nvcomment.nicovideo.jp" - ], - "_tags": ["official", "working"], - "scriptSignature": "VQJpVQokdiDdZ8T6Wkj0KuRtZHl9HcTUv6NL+vnadG7wnWZMNvZHa6J4MWVsQcFGObQGb/jSdvEn4Fjd3VAvbfqM9d72/LPhUhkzu646N2xj+E29lkiUox67eC0I063hPajDHfxacH5iCoc/7kShFdw0hiCJCs3LldGhfWGliBujlx5TzGYm8r+yNBz+hUA8zKRAvzaflhG5Cj5/NV+Y1TsmxasXknuFTJG4XBfLh5HvcVivUyPeJRirkpc3EisJdEPlmhBNjNDJOU2g1Wdv++Tgslp/V84Lq10VRrhGG0fPoXBEP/tsXzE+HzUUo/lx2IaDFFRVM+pQnRmZBb0y4A==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/niconico/-/commits/master?format=atom" + { + "_tags": [ + "unofficial", + "untested" + ], + "_feeds": { + "commits": "https://github.com/nutstone/grayjay-manhuafast-plugin/commits/main.atom", + "releases": "https://github.com/nutstone/grayjay-manhuafast-plugin/releases.atom" + }, + "name": "ManhuaFast", + "description": "Viewer for manhua fast", + "author": "nuthug", + "authorUrl": "https://raw.githubusercontent.com/Nutstone/", + "sourceUrl": "https://nutstone.github.io/grayjay-manhuafast-plugin/ManhuaFastConfig.json", + "repositoryUrl": "https://github.com/nutstone/grayjay-manhuafast-plugin", + "scriptUrl": "./ManhuaFastScript.js", + "version": 1, + "iconUrl": "./d7dfe5ef-4332-4ffa-b890-1b703d22ca0d.png", + "id": "cd1dff4b-89d3-4326-8c8c-930da64cec5c", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "manhuafast.com" + ], + "_installUrl": "https://nutstone.github.io/grayjay-manhuafast-plugin/ManhuaFastConfig.json" }, - "platformUrl": "https://www.nicovideo.jp", - "authentication": { - "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0", - "loginUrl": "https://account.nicovideo.jp/login", - "cookiesToFind": ["user_session"] + { + "name": "MediathekView", + "description": "Online media library for German television broadcasters", + "author": "Björn Eberhardt", + "authorUrl": "https://8bj.de", + "sourceUrl": "https://grayjay-sources.github.io/grayjay-source-mediathekview/MediathekConfig.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-mediathekview", + "scriptUrl": "./MediathekScript.js", + "version": 23, + "iconUrl": "./mediathek.png", + "id": "da5e25de-1a2d-22df-1612-be89ed1adee6", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "mediathekviewweb.de", + "akamaihd.net", + "utstreaming.zdf.de", + "everywhere" + ], + "_tags": [ + "unofficial", + "working", + "german" + ], + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-mediathekview/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-mediathekview/releases.atom" + } }, - "supportedClaimTypes": [21], - "sourceUrl_": "https://plugins.grayjay.app/Niconico/NiconicoConfig.json" - }, - { - "name": "Odysee", - "description": "A video platform running on the LBRY blockchain.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Odysee/OdyseeConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/odysee", - "scriptUrl": "./OdyseeScript.js", - "version": 56, - "iconUrl": "./OdyseeIcon.png", - "id": "1c05bfc3-08b9-42d0-93d3-6d52e0fd34d8", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "api.na-backend.odysee.com", - "odysee.com", - "recsys.odysee.tv", - "api.odysee.com", - "lighthouse.odysee.tv", - "cdn.lbryplayer.xyz", - "player.odycdn.com", - "comments.odysee.tv", - "watchman.na-backend.odysee.com", - "secure.odycdn.com" - ], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "JPrwecQdZXNvkkcYZRDDSK6WePmdB7Vs/UxM+KOK7HTrHeSF+dJfqZTZ2jzgoEpN6dmHUPxpW8MXx+ece9IcJlQ5OdbHNLoQ5zJeia5erKmeOdkb5GNlGowa/ppohGMyd6rxhii+ids9r3z5fSTXof+W0jILzN9lBPe37Trgb97LEvcoUuecqC/qutfq9hXga3i+pTJOeE/1fTCy3Oq9GIoKSlHCjszmiqGbVaqxDreYdmLKujPD8k27BM40Ao9gDkcCJjxcX11ul8yZv9TJUh4R2bkfDOTkBLdSt/Zt6kF4j/UJZ4XkEiZbHcXOSVPbOypWW7H3pvwJ/J25mo5K1A==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/odysee/-/commits/master?format=atom" + { + "_tags": [ + "official", + "working" + ], + "name": "Mixcloud (Alpha)", + "platformUrl": "https://www.mixcloud.com", + "description": "Listen to the best DJs and radio presenters in the world for free.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Mixcloud/MixcloudConfig.json", + "scriptUrl": "./MixcloudScript.js", + "iconUrl": "./MixcloudIcon.png", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/mixcloud", + "version": 8, + "id": "84331338-b045-419c-88e4-c86036f4cbf5", + "scriptSignature": "ENHFesArWTME54KvrBsUS5QUzMYwdJehTjhsKSuQWxOzrmkegv0IOS26ED/2TU9lkMPmv3Rj8AUCD38r0zLTgK/E5uTi8Gc6tu98SnR2F0fKRGOdKzHTMJLgqfXxTe2g58GC0nf6bxQzYlOpdKQSOp1a6Kp8IpK19HslFpyWIXovRFSx238P9pPAaY/ySFYjIQ1ew2vy9H8DHoNZv4LfSWsUu9u2LS85Ydmv7CY51GFstumMKwaLS+iwUQa3cCNiTBwCXTtn8T4c6FGOib5HH499J9cXc8TuBZ5ZYwKDwLgEWORFMqEvh+rPVA30hpvmBfhILBblOhx8NOZgeirxAA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + ".mixcloud.com", + ".mixcloud.stream" + ], + "maxDownloadParallelism": 1, + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "loginUrl": "https://www.mixcloud.com/login/?next=%2Fhome%2Ffor-you%2F", + "completionUrl": "https://www.mixcloud.com/home/for-you/", + "cookiesToFind": [ + "csrftoken", + "mx_t", + "c" + ] + }, + "changelog": { + "1": [ + "Home with live streams;", + "Search shows;", + "Search creators;", + "Creator details with live streams and audio content;", + "Audio streams;", + "Comments;", + "Live chat;", + "Content recommendation;" + ], + "2": [ + "Improvement: Add channel platform playlists (History, Favorites, Reposts, Tracks);", + "Improvement: Add channel custom playlists;", + "Improvement: Improve plugin's logo resolution;", + "Improvement: Use channel videos as recommendations for livestreams;", + "Improvement: Support encrypted sources;" + ], + "3": [ + "Improvement: Add login support;", + "Improvement: Import user playlists (favorites, history, reposts, listen-later and custom playlists);", + "Improvement: Import user subscriptions;", + "Improvement: Add creator's country and city in channel description;", + "Fix: Add missing date in video details;", + "Fix: Add live and upload content description;", + "Fix: Play preview uploads;" + ], + "4": [ + "Fix: Deep-linking to playlists;", + "Code improvements;", + "Improvement: Improve handling Radios with multiple DJs;", + "Improvement: Include an hyperlink in the track description to the Dj channel when playing for a Radio;" + ], + "5": [ + "Fix: Content recommendations for live streams;" + ], + "6": [ + "Improvement: Fix relationship between DJs and Radios in content description;" + ], + "7": [ + "Improvement: Add exclusive subscriber-only content support;" + ], + "8": [ + "Fix: Not show toast for preview content when user is already subscribed artist;" + ] + }, + "_installUrl": "https://plugins.grayjay.app/Mixcloud/MixcloudConfig.json" }, - "platformUrl": "https://odysee.com", - "supportedClaimTypes": [3] - }, - { - "name": "Owncast", - "description": "Self-hosted live streaming platform", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins", - "platformUrl": "https://owncast.online", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-owncast/raw/branch/main/grayjay-plugin-owncast-config.json", - "repositoryUrl": "http://localhost:8035/Dev%20Plugins/dev-api/grayjay-plugin-owncast", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-owncast/raw/branch/main/grayjay-plugin-owncast-script.js", - "version": 1, - "iconUrl": "./favicon.png", - "id": "c3b2a1e4-5678-4abc-9def-1234567890ab", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - ".silo.ffmuc.net", - ".owncast.online", - ".owncast.tv", - "tv.theindiebeat.fm", - "otcs.minuspoint.com", - "live.retrostrange.com", - "mthrbord.tv", - "watch.chiptune.fm", - "watch.vapor.fm", - "online.geyetv.com", - "wf.newscentral.ng", - "swimrewind.com", - "live.omroepnet.nl", - "tv.nilustv.com", - "owncast.mellowmountainradio.com", - "wochenschautv.com", - "watch.owncast.online", - "live.24hrkpop.com", - "stream.flash-radio.de", - "live.theroseburgreceiver.com", - "mywbai.us", - "leighton.prcht.host", - "myliveisoc.live", - "tv.kenobisboch.it", - "live.simontv.org", - "live.gillymomo.com", - "stream.radiohoogeveen.nl", - "video.lpam.be", - "cast.otternet.ca", - "live.smittystream.com", - "live.iolambc.com", - "tv.radio90.fm", - "stream.nagafm.in", - "live.nitetime.net", - "myddptv.xyz", - "theupperleft.thesprawl.online", - "live.rokjok.fm", - "videostream.reality-sound.de", - "myddptv.site", - "stream.lalalatvchannel.com", - "livestream.cobrasoft.org", - "livestream.rasat.tv", - "owncast3.zuidwest.cloud", - "ios.eti.br", - "tv.dayaya.net", - "owncast.dvshome.org", - "media.mnrails.com", - "stream.cosigo.io", - "vault.waxmuseumradio.net", - "event.rasat.tv", - "tvrestaurandovidas.ovalcast.com", - "owncast.afterswim.org", - "tv.theblaze983.com", - "leaderboard.sim-racing-center.de", - "admin.mcoctv.us", - "tv.mj00.top", - "live.otternet.se", - "mystream.panafricanssi.org", - "directory.owncast.online" - ], - "supportedClaimTypes": [1, 2, 16], - "enableLiveContent": true, - "authentication": null, - "settings": [], - "changelog": { - "1": ["Initial release", "Homepage support", "Livestream playback"] - } - }, - { - "_tags": ["unofficial", "nsfw"], - "name": "PHUB", - "description": "PHub plugin", - "author": "Djupz", - "authorUrl": "https://github.com/Djupz", - "platformUrl": "https://www.pornhub.com/", - "sourceUrl": "https://github.com/Djupz/grayjay-source-ph/raw/master/phConfig.json", - "repositoryUrl": "https://github.com/Djupz/grayjay-source-ph", - "scriptUrl": "./phScript.js", - "version": 3, - "iconUrl": "./phLogo.png", - "id": "a82a6e4d-4e91-466e-8c46-d7895654e2d0", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["www.pornhub.com", "pornhub.com"], - "_installUrl": "https://github.com/Djupz/grayjay-source-ph/raw/master/phConfig.json", - "_feeds": { - "commits": "https://github.com/Djupz/grayjay-source-ph/commits/main.atom", - "releases": "https://github.com/Djupz/grayjay-source-ph/releases.atom" - } - }, - { - "name": "Patreon", - "description": "Patreon is a subscription platform allowing creators to release membership only content.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Patreon/PatreonConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/patreon", - "scriptUrl": "./PatreonScript.js", - "version": 21, - "iconUrl": "./patreon_logo.png", - "id": "aac9e9f0-24b5-11ee-be56-0242ac120002", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["www.patreon.com", "patreon.com"], - "_tags": ["official", "maintained", "working", "paid content"], - "scriptSignature": "rFIbdmXUQEjo8/hRICu3kktEGgX9fGVEEDpfDSfpX6fgKpno6EiC7HdgeoZZ9QkUEC+aFRzm/H74xrLs37e9oYNdlXZUdY/d+LV+joLbgQX4qY4DX86wgpV6o9tH2oOz1Z5NDiSWZYenh7KC3clJHnNxMXM61JAfocy6VxJbtOafZXqFaKvE9HelQ3nuYJb8FYAu2EEOS8jIFyZkHpG6urN+KZpl2Ydr+DUArqFIMbdkpzsfVoIubvYffMkU2ss82VnAlnSb6YdT99PLE6mzBb9jYJ5+uzlxf6gconvlrTIhMrS0l1Em95bK4lDMBlCZ1Ddi4cOiUse4XUNtGa0E9Q==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/patreon/-/commits/master?format=atom" + { + "name": "Nebula", + "description": "A subscription-based video platform, co-owned by Standard Broadcast LLC and various creators.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Nebula/NebulaConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/nebula", + "scriptUrl": "./NebulaScript.js", + "version": 14, + "iconUrl": "./NebulaIcon.png", + "id": "9d703ff5-c556-4962-a990-4f000829cb87", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "nebula.tv", + "content.api.nebula.app", + "nebula.app", + "users.api.nebula.app", + "starlight.nebula.tv" + ], + "_tags": [ + "official", + "maintained", + "working", + "paid content" + ], + "scriptSignature": "AmLWtgd/gOPOWrPlRZCjBGvyaKAXtdX6MrE7+ke0ro9ftr747fovarPYqpkVMDvmq0HA3yX1rV4mjUtkddIcCBl+yqWoy9FjfG7jcajxyoq6jhMVpzMT1VIfLN0P0jjV+VMPI3xKcpdvUYDFDTDtTGakAJv7Tk5bQCztGnH2A+p+F+10s9ZdCZsMTbU7YcbbVt0ZBPE/qbKL8HNJ8NO8sNbKd5mXujHEc4IeS3QToEUfZ5v1kh7H2jrlVL3dw30+9nzPTDzu44Z3jhvc6n28v7G/M1XgmNTcnqM+iPmIyyt6no9afihPx84cy0Q1XlthnZ49sozaYco3dMnNUCTdoQ==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/nebula/-/commits/master?format=atom" + }, + "platformUrl": "https://nebula.tv", + "authentication": { + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", + "loginUrl": "https://nebula.tv/login", + "headersToFind": [ + "Authorization" + ], + "cookiesToFind": [ + "nebula_auth.apiToken" + ], + "completionUrl": "https://users.api.nebula.app/api/v1/authorization/" + }, + "supportedClaimTypes": [ + 19 + ] }, - "platformUrl": "https://patreon.com", - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "loginUrl": "https://www.patreon.com/login", - "cookiesToFind": ["session_id"], - "cookiesExclOthers": false + { + "_tags": [ + "unofficial", + "untested" + ], + "name": "Newgrounds", + "description": "One of the most well known online communities", + "author": "Lofiat", + "authorUrl": "https://www.github.com/Loafiat", + "sourceUrl": "https://github.com/Loafiat/NewgroundsPlugin/NewgroundsConfig.json", + "repositoryUrl": "https://github.com/Loafiat/NewgroundsPlugin/", + "scriptUrl": "./NewgroundsScript.js", + "version": 9, + "iconUrl": "./Newgrounds.png", + "id": "002c7f46-5a93-492d-b5e3-91b621993be8", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "authentication": { + "loginUrl": "https://www.newgrounds.com/passport/mode/iframe", + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "cookiesToFind": [ + "passport-auth" + ], + "loginWarning": "Does not exit automatically" + }, + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_feeds": { + "commits": "https://github.com/Loafiat/NewgroundsPlugin/commits/main.atom", + "releases": "https://github.com/Loafiat/NewgroundsPlugin/releases.atom" + } }, - "supportedClaimTypes": [12] - }, - { - "name": "PeerTube", - "description": "A plugin that adds PeerTube as a source", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/PeerTube/PeerTubeConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/peertube", - "scriptUrl": "./PeerTubeScript.js", - "version": 14, - "iconUrl": "./peertube.png", - "id": "1c291164-294c-4c2d-800d-7bc6d31d0019", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["official", "maintained", "generator"], - "scriptSignature": "YKO/jMicPZFLnJI5LfiOUh8avfQhVzsHztKqOsP9whFAWbVHxqirLCI93gvVBxrphya0s5kwauIcrSe7D3hQQYgI3S3ElxdE8m75MhysA5ktL9IbQL20lEpGDTNIp0toEWEgvkKCGWX4VfLiWBtATK0KMTI6kmPiBcnaYKrLEiGsepvPHhWAQW1mRch+/D8YR/jIG5jMv38AbxhW2P0ktr7CBcPkh73zFuTxAwvX/SDYL3B7x1qgZI82TXpdfaVvxNOjOHEnzlRVWkLSKLepAbxosfmX7LHz15lwUXFXH4kL3HvdpCyPNpNsvPsd2HuiRUBWqsQLnleD53Lw7tiu9A==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/peertube/-/commits/master?format=atom" + { + "name": "Niconico", + "description": "Niconico is the biggest video platform in Japan", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Niconico/NiconicoConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/niconico", + "scriptUrl": "./NiconicoScript.js", + "version": 3, + "iconUrl": "./NiconicoIcon.png", + "id": "94c86b48-eee9-4d49-9f2e-56c8e650936a", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "nvapi.nicovideo.jp", + "sug.search.nicovideo.jp", + "api.search.nicovideo.jp", + "live.nicovideo.jp", + "www.nicovideo.jp", + "public.nvcomment.nicovideo.jp" + ], + "_tags": [ + "official", + "working" + ], + "scriptSignature": "VQJpVQokdiDdZ8T6Wkj0KuRtZHl9HcTUv6NL+vnadG7wnWZMNvZHa6J4MWVsQcFGObQGb/jSdvEn4Fjd3VAvbfqM9d72/LPhUhkzu646N2xj+E29lkiUox67eC0I063hPajDHfxacH5iCoc/7kShFdw0hiCJCs3LldGhfWGliBujlx5TzGYm8r+yNBz+hUA8zKRAvzaflhG5Cj5/NV+Y1TsmxasXknuFTJG4XBfLh5HvcVivUyPeJRirkpc3EisJdEPlmhBNjNDJOU2g1Wdv++Tgslp/V84Lq10VRrhGG0fPoXBEP/tsXzE+HzUUo/lx2IaDFFRVM+pQnRmZBb0y4A==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/niconico/-/commits/master?format=atom" + }, + "platformUrl": "https://www.nicovideo.jp", + "authentication": { + "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0", + "loginUrl": "https://account.nicovideo.jp/login", + "cookiesToFind": [ + "user_session" + ] + }, + "supportedClaimTypes": [ + 21 + ], + "sourceUrl_": "https://plugins.grayjay.app/Niconico/NiconicoConfig.json" }, - "constants": { - "baseUrl": "https://peertube.futo.org" + { + "name": "Odysee", + "description": "A video platform running on the LBRY blockchain.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Odysee/OdyseeConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/odysee", + "scriptUrl": "./OdyseeScript.js", + "version": 56, + "iconUrl": "./OdyseeIcon.png", + "id": "1c05bfc3-08b9-42d0-93d3-6d52e0fd34d8", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "api.na-backend.odysee.com", + "odysee.com", + "recsys.odysee.tv", + "api.odysee.com", + "lighthouse.odysee.tv", + "cdn.lbryplayer.xyz", + "player.odycdn.com", + "comments.odysee.tv", + "watchman.na-backend.odysee.com", + "secure.odycdn.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "JPrwecQdZXNvkkcYZRDDSK6WePmdB7Vs/UxM+KOK7HTrHeSF+dJfqZTZ2jzgoEpN6dmHUPxpW8MXx+ece9IcJlQ5OdbHNLoQ5zJeia5erKmeOdkb5GNlGowa/ppohGMyd6rxhii+ids9r3z5fSTXof+W0jILzN9lBPe37Trgb97LEvcoUuecqC/qutfq9hXga3i+pTJOeE/1fTCy3Oq9GIoKSlHCjszmiqGbVaqxDreYdmLKujPD8k27BM40Ao9gDkcCJjxcX11ul8yZv9TJUh4R2bkfDOTkBLdSt/Zt6kF4j/UJZ4XkEiZbHcXOSVPbOypWW7H3pvwJ/J25mo5K1A==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/odysee/-/commits/master?format=atom" + }, + "platformUrl": "https://odysee.com", + "supportedClaimTypes": [ + 3 + ] }, - "_customButtons": [ - { - "text": "Custom", - "url": "https://pluginhost.grayjay.app/peertube", - "classes": "btn-secondary" - }, - { - "text": "Instances", - "url": "https://grayjay-peertube.github.io/", - "classes": "btn-secondary" - } - ] - }, - { - "name": "Pietsmiet.de (Discontinued)", - "description": "GrayJay source for Pietsmiet.de", - "author": "Bluscream", - "authorUrl": "https://bluscream.github.io", - "sourceUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases/latest/download/config.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/tree/master", - "scriptUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases/latest/download/script.js", - "version": 9, - "iconUrl": "https://i.vgy.me/eHA2U5.png", - "id": "82b8fefc-24ae-11ee-be56-0242aa120002", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowUrls": [ - "pietsmiet.de", - "www.pietsmiet.de", - "lft1.pietcdn.de", - "data-c53e1346fa.pietsmiet.de", - "static-cdn.jtvnw.net", - "pietcdn.de" - ], - "_tags": [ - "unofficial", - "unmaintained", - "missing features", - "discontinued", - "offline", - "archived", - "german" - ], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/commits/master.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases.atom" + { + "name": "Owncast", + "description": "Self-hosted live streaming platform", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins", + "platformUrl": "https://owncast.online", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-owncast/raw/branch/main/grayjay-plugin-owncast-config.json", + "repositoryUrl": "http://localhost:8035/Dev%20Plugins/dev-api/grayjay-plugin-owncast", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-owncast/raw/branch/main/grayjay-plugin-owncast-script.js", + "version": 1, + "iconUrl": "./favicon.png", + "id": "c3b2a1e4-5678-4abc-9def-1234567890ab", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + ".silo.ffmuc.net", + ".owncast.online", + ".owncast.tv", + "tv.theindiebeat.fm", + "otcs.minuspoint.com", + "live.retrostrange.com", + "mthrbord.tv", + "watch.chiptune.fm", + "watch.vapor.fm", + "online.geyetv.com", + "wf.newscentral.ng", + "swimrewind.com", + "live.omroepnet.nl", + "tv.nilustv.com", + "owncast.mellowmountainradio.com", + "wochenschautv.com", + "watch.owncast.online", + "live.24hrkpop.com", + "stream.flash-radio.de", + "live.theroseburgreceiver.com", + "mywbai.us", + "leighton.prcht.host", + "myliveisoc.live", + "tv.kenobisboch.it", + "live.simontv.org", + "live.gillymomo.com", + "stream.radiohoogeveen.nl", + "video.lpam.be", + "cast.otternet.ca", + "live.smittystream.com", + "live.iolambc.com", + "tv.radio90.fm", + "stream.nagafm.in", + "live.nitetime.net", + "myddptv.xyz", + "theupperleft.thesprawl.online", + "live.rokjok.fm", + "videostream.reality-sound.de", + "myddptv.site", + "stream.lalalatvchannel.com", + "livestream.cobrasoft.org", + "livestream.rasat.tv", + "owncast3.zuidwest.cloud", + "ios.eti.br", + "tv.dayaya.net", + "owncast.dvshome.org", + "media.mnrails.com", + "stream.cosigo.io", + "vault.waxmuseumradio.net", + "event.rasat.tv", + "tvrestaurandovidas.ovalcast.com", + "owncast.afterswim.org", + "tv.theblaze983.com", + "leaderboard.sim-racing-center.de", + "admin.mcoctv.us", + "tv.mj00.top", + "live.otternet.se", + "mystream.panafricanssi.org", + "directory.owncast.online" + ], + "supportedClaimTypes": [ + 1, + 2, + 16 + ], + "enableLiveContent": true, + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial release", + "Homepage support", + "Livestream playback" + ] + } }, - "iconUrl_": "https://yt3.ggpht.com/-nm49M5AVi64/AAAAAAAAAAI/AAAAAAAAAAA/h0Scy91ZiZQ/s900-c-k-no-rj-c0xffffff/photo.jpg", - "_installUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases/latest/download/config.json" - }, - { - "_tags": ["unofficial", "untested"], - "name": "Pluto.tv", - "description": "Pluto.tv videos", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins", - "platformUrl": "https://pluto.tv", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-plutotv/raw/branch/main/grayjay-plugin-plutotv-config.json", - "repositoryUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-plutotv", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-plutotv/raw/branch/main/grayjay-plugin-plutotv-script.js", - "version": 3, - "iconUrl": "https://pluto.tv/assets/images/favicon/regular-d820a2316e4e12a928e30d5ccb4318f1.png", - "id": "9af8a030-9164-4981-b20f-1e1c72d11e60", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - ".pluto.tv", - ".plutotv.net", - ".prd.pluto.tv", - ".silo-hybrik.pluto.tv.s3.amazonaws.com", - ".raw.githubusercontent.com" - ], - "supportedClaimTypes": [1, 2, 16], - "enableLiveContent": true, - "authentication": { - "type": "bearer", - "headerName": "authorization", - "helpText": "Enter your Pluto TV Bearer token (optional, for on-demand content)" + { + "_tags": [ + "unofficial", + "nsfw" + ], + "name": "PHUB", + "description": "PHub plugin", + "author": "Djupz", + "authorUrl": "https://github.com/Djupz", + "platformUrl": "https://www.pornhub.com/", + "sourceUrl": "https://github.com/Djupz/grayjay-source-ph/raw/master/phConfig.json", + "repositoryUrl": "https://github.com/Djupz/grayjay-source-ph", + "scriptUrl": "./phScript.js", + "version": 3, + "iconUrl": "./phLogo.png", + "id": "a82a6e4d-4e91-466e-8c46-d7895654e2d0", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "www.pornhub.com", + "pornhub.com" + ], + "_installUrl": "https://github.com/Djupz/grayjay-source-ph/raw/master/phConfig.json", + "_feeds": { + "commits": "https://github.com/Djupz/grayjay-source-ph/commits/main.atom", + "releases": "https://github.com/Djupz/grayjay-source-ph/releases.atom" + } }, - "settings": [ - { - "variable": "enableAlternatePlutoStreams", - "name": "Enable Alternate Pluto Streams", - "description": "Allow the plugin to fall back to alternate Pluto stream URLs when the official endpoint fails.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "showFallbackToasts", - "name": "Show Fallback Toasts", - "description": "Display a toast message whenever an alternate Pluto stream is used.", - "type": "Boolean", - "default": "true" - } - ], - "changelog": { - "1": ["Initial version"], - "2": [ - "Added fallback streams plus user settings for alternate streams and toast notifications", - "Fixed config defaults to ensure plugin installs cleanly" - ], - "3": [ - "Home and search feeds now reuse alternates when Pluto's API fails so users still see live channels" - ] - } - }, - { - "name": "PornHub", - "description": "Basic PornHub plugin for Grayjay", - "author": "mr. X", - "authorUrl": "", - "sourceUrl": "https://github.com/paaspaas00/pornhubGrayjay/raw/main/PornhubConfig.json", - "repositoryUrl": "https://github.com/paaspaas00/pornhubGrayjay/tree/main", - "scriptUrl": "./PornhubScript.js", - "version": 10, - "iconUrl": "./pornhub.png", - "id": "dce06efc-862e-11ee-b9d1-0242ac120002", - "packages": ["Http", "DOMParser"], - "allowEval": true, - "allowUrls": [".pornhub.com"], - "_tags": ["unofficial", "working", "nsfw"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/paaspaas00/pornhubGrayjay/commits/main.atom", - "releases": "https://github.com/paaspaas00/pornhubGrayjay/releases.atom" - } - }, - { - "id": "9c87a5e2-3f41-4b8a-9d2e-7f6c8a1b3d4e", - "_tags": ["working"], - "name": "PreserveTube", - "platformUrl": "https://preservetube.com/donate", - "description": "PreserveTube is a time capsule for YouTube videos!", - "author": "Stefan Cruz", - "authorUrl": "", - "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-preservetube", - "sourceUrl": "https://stefancruz.github.io/grayjay-plugin-preservetube/PreserveTubeConfig.json", - "scriptUrl": "./PreserveTubeScript.js", - "iconUrl": "./PreserveTubeIcon.png", - "version": 1, - "scriptSignature": "VxxgkHH7He7Mj2cLTOwBnpFqtmZxhSlINvfT6v6RD1oADAOHeYO+jCtaEGx5lmQAtm7bRHuCqM/xapZum84+L73E15OnIXQ1NDH/qM/n0eNIJilAc2Xy/J7hZc5VKE7FxDHySzgC40lHpLkP9wnZoT5Kak8OgDwnBi401/0Z3r5Zeh4118gC+v+F31tu+L7E0SXLoNecuI5+eone2MvOO1RCFhN1zzDuPanopXg8LSnQDGn8pK4ZJKFetqAUSkJOfNiHTxWoH40uchK+Nz1trpcVyounQLHE1DTPlUuD+X9Dl018Upahf05tBXxy0eOb+itl5ud/hALMGbRyNXVuNA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["preservetube.com", ".archive.party"], - "captcha": { - "userAgent": "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.200 Mobile Safari/537.36", - "captchaUrl": null, - "completionUrl": "https://preservetube.com/watch?*" + { + "name": "Patreon", + "description": "Patreon is a subscription platform allowing creators to release membership only content.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Patreon/PatreonConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/patreon", + "scriptUrl": "./PatreonScript.js", + "version": 21, + "iconUrl": "./patreon_logo.png", + "id": "aac9e9f0-24b5-11ee-be56-0242ac120002", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "www.patreon.com", + "patreon.com" + ], + "_tags": [ + "official", + "maintained", + "working", + "paid content" + ], + "scriptSignature": "rFIbdmXUQEjo8/hRICu3kktEGgX9fGVEEDpfDSfpX6fgKpno6EiC7HdgeoZZ9QkUEC+aFRzm/H74xrLs37e9oYNdlXZUdY/d+LV+joLbgQX4qY4DX86wgpV6o9tH2oOz1Z5NDiSWZYenh7KC3clJHnNxMXM61JAfocy6VxJbtOafZXqFaKvE9HelQ3nuYJb8FYAu2EEOS8jIFyZkHpG6urN+KZpl2Ydr+DUArqFIMbdkpzsfVoIubvYffMkU2ss82VnAlnSb6YdT99PLE6mzBb9jYJ5+uzlxf6gconvlrTIhMrS0l1Em95bK4lDMBlCZ1Ddi4cOiUse4XUNtGa0E9Q==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/patreon/-/commits/master?format=atom" + }, + "platformUrl": "https://patreon.com", + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "loginUrl": "https://www.patreon.com/login", + "cookiesToFind": [ + "session_id" + ], + "cookiesExclOthers": false + }, + "supportedClaimTypes": [ + 12 + ] }, - "settings": [], - "_installUrl": "https://stefancruz.github.io/grayjay-plugin-preservetube/PreserveTubeConfig.json", - "_feeds": { - "commits": "https://github.com/stefancruz/grayjay-plugin-preservetube/commits/master.atom", - "releases": "https://github.com/stefancruz/grayjay-plugin-preservetube/releases.atom" - } - }, - { - "_tags": ["unofficial", "untested"], - "name": "RuTube", - "description": "Russian video platform", - "author": "Grayjay Plugins", - "authorUrl": "https://codeberg.org/GrayjayPlugins", - "platformUrl": "https://rutube.ru", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-rutube/raw/branch/main/grayjay-plugin-rutube-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-rutube", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-rutube/raw/branch/main/grayjay-plugin-rutube-script.js", - "version": 2, - "iconUrl": "https://www.google.com/s2/favicons?domain=rutube.ru&sz=64", - "id": "d4e5f6a7-b8c9-0123-def0-4567890abcde", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - ".rutube.ru", - "rutube.ru", - "www.rutube.ru", - ".rutubecdn.ru", - ".rutubecdn.com", - "bl.rutube.ru", - "vd.rutube.ru" - ], - "supportedClaimTypes": [1, 2, 16], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial version with video feed and details support", - "Added RuTube CDN domains (rutubecdn.ru, rutubecdn.com) to allowUrls for video streaming", - "Fixed HLS streaming by using HLSSource instead of VideoUrlSource for m3u8 streams" - ], - "2": [ - "Fixed Android playback by safely parsing HLS URLs and author/title fields" - ] - } - }, - { - "name": "Rumble", - "description": "A plugin that adds Rumble as a source", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Rumble/RumbleConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/rumble", - "scriptUrl": "./RumbleScript.js", - "version": 59, - "iconUrl": "./rumble.png", - "id": "2ce7b35e-d2b2-4adb-a728-a34a30d30359", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["rumble.com", "api.ipify.org"], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "MSXkwTgooEyFuA9PzEYWtStcwaWYrzlKZE4DZdoIxxLrVk5PbvVgxG2Uc4Jf8caszzoNM9vQGP/8OF0d62xlUV9+e+3BxMog/2EPpmqmr0YX483PciDXpfhCQvYEPcfEX6L7tkB9uBjNVfw8xhUYG6WZCjfq54RxJK/79trYRgCfEcddlfS+k/fA8To8PpEzRqGG3XNnmAXV+Bdd5mZ9W+JEdjo3KccqrraIz6GF4R8lBGotFXte8iqKgThMSeWNacUr4gL2eUCqM8WCnOVxF6BfBOWqmkUS0f4X1NnGAURysSnznVNOftBbJJ38GvWwdO0V7Ns0mNc5srmVMaxLvQ==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/rumble/-/commits/master?format=atom" + { + "name": "PeerTube", + "description": "A plugin that adds PeerTube as a source", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/PeerTube/PeerTubeConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/peertube", + "scriptUrl": "./PeerTubeScript.js", + "version": 14, + "iconUrl": "./peertube.png", + "id": "1c291164-294c-4c2d-800d-7bc6d31d0019", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_tags": [ + "official", + "maintained", + "generator" + ], + "scriptSignature": "YKO/jMicPZFLnJI5LfiOUh8avfQhVzsHztKqOsP9whFAWbVHxqirLCI93gvVBxrphya0s5kwauIcrSe7D3hQQYgI3S3ElxdE8m75MhysA5ktL9IbQL20lEpGDTNIp0toEWEgvkKCGWX4VfLiWBtATK0KMTI6kmPiBcnaYKrLEiGsepvPHhWAQW1mRch+/D8YR/jIG5jMv38AbxhW2P0ktr7CBcPkh73zFuTxAwvX/SDYL3B7x1qgZI82TXpdfaVvxNOjOHEnzlRVWkLSKLepAbxosfmX7LHz15lwUXFXH4kL3HvdpCyPNpNsvPsd2HuiRUBWqsQLnleD53Lw7tiu9A==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/peertube/-/commits/master?format=atom" + }, + "constants": { + "baseUrl": "https://peertube.futo.org" + }, + "_customButtons": [ + { + "text": "Custom", + "url": "https://pluginhost.grayjay.app/peertube", + "classes": "btn-secondary" + }, + { + "text": "Instances", + "url": "https://grayjay-peertube.github.io/", + "classes": "btn-secondary" + } + ] }, - "platformUrl": "https://rumble.com", - "authentication": { - "loginUrl": "https://rumble.com/login.php", - "userAgent": "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.200 Mobile Safari/537.36", - "cookiesToFind": ["u_s"] + { + "name": "Pietsmiet.de (Discontinued)", + "description": "GrayJay source for Pietsmiet.de", + "author": "Bluscream", + "authorUrl": "https://bluscream.github.io", + "sourceUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases/latest/download/config.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/tree/master", + "scriptUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases/latest/download/script.js", + "version": 9, + "iconUrl": "https://i.vgy.me/eHA2U5.png", + "id": "82b8fefc-24ae-11ee-be56-0242aa120002", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "pietsmiet.de", + "www.pietsmiet.de", + "lft1.pietcdn.de", + "data-c53e1346fa.pietsmiet.de", + "static-cdn.jtvnw.net", + "pietcdn.de" + ], + "_tags": [ + "unofficial", + "unmaintained", + "missing features", + "discontinued", + "offline", + "archived", + "german" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/commits/master.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases.atom" + }, + "iconUrl_": "https://yt3.ggpht.com/-nm49M5AVi64/AAAAAAAAAAI/AAAAAAAAAAA/h0Scy91ZiZQ/s900-c-k-no-rj-c0xffffff/photo.jpg", + "_installUrl": "https://github.com/grayjay-sources/grayjay-source-pietsmietde/releases/latest/download/config.json" }, - "supportedClaimTypes": [4] - }, - { - "_tags": ["unofficial", "german", "streaming", "tv-series"], - "name": "S.to", - "description": "S.to integration for Grayjay - German TV Series Streaming", - "author": "Zerophire, Bluscream, Cursor.AI", - "authorUrl": "https://github.com/Bluscream", - "platformUrl": "https://s.to", - "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-sto/main/config.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-sto", - "scriptUrl": "./script.js", - "version": 1, - "iconUrl": "./icon.png", - "id": "sto-german-series-streaming", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["s.to"], - "supportedClaimTypes": [3], - "authentication": { - "loginUrl": "https://s.to/login", - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "domainHeadersToFind": { - "s.to": [] - } + { + "_tags": [ + "unofficial", + "untested" + ], + "name": "Pluto.tv", + "description": "Pluto.tv videos", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins", + "platformUrl": "https://pluto.tv", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-plutotv/raw/branch/main/grayjay-plugin-plutotv-config.json", + "repositoryUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-plutotv", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-plutotv/raw/branch/main/grayjay-plugin-plutotv-script.js", + "version": 3, + "iconUrl": "https://pluto.tv/assets/images/favicon/regular-d820a2316e4e12a928e30d5ccb4318f1.png", + "id": "9af8a030-9164-4981-b20f-1e1c72d11e60", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + ".pluto.tv", + ".plutotv.net", + ".prd.pluto.tv", + ".silo-hybrik.pluto.tv.s3.amazonaws.com", + ".raw.githubusercontent.com" + ], + "supportedClaimTypes": [ + 1, + 2, + 16 + ], + "enableLiveContent": true, + "authentication": { + "type": "bearer", + "headerName": "authorization", + "helpText": "Enter your Pluto TV Bearer token (optional, for on-demand content)" + }, + "settings": [ + { + "variable": "enableAlternatePlutoStreams", + "name": "Enable Alternate Pluto Streams", + "description": "Allow the plugin to fall back to alternate Pluto stream URLs when the official endpoint fails.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "showFallbackToasts", + "name": "Show Fallback Toasts", + "description": "Display a toast message whenever an alternate Pluto stream is used.", + "type": "Boolean", + "default": "true" + } + ], + "changelog": { + "1": [ + "Initial version" + ], + "2": [ + "Added fallback streams plus user settings for alternate streams and toast notifications", + "Fixed config defaults to ensure plugin installs cleanly" + ], + "3": [ + "Home and search feeds now reuse alternates when Pluto's API fails so users still see live channels" + ] + } }, - "settings": [], - "changelog": { - "1": ["Initial version: Basic search, series listing, episode browsing"] + { + "name": "PornHub", + "description": "Basic PornHub plugin for Grayjay", + "author": "mr. X", + "authorUrl": "", + "sourceUrl": "https://github.com/paaspaas00/pornhubGrayjay/raw/main/PornhubConfig.json", + "repositoryUrl": "https://github.com/paaspaas00/pornhubGrayjay/tree/main", + "scriptUrl": "./PornhubScript.js", + "version": 10, + "iconUrl": "./pornhub.png", + "id": "dce06efc-862e-11ee-b9d1-0242ac120002", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": true, + "allowUrls": [ + ".pornhub.com" + ], + "_tags": [ + "unofficial", + "working", + "nsfw" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/paaspaas00/pornhubGrayjay/commits/main.atom", + "releases": "https://github.com/paaspaas00/pornhubGrayjay/releases.atom" + } }, - "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-sto/main/config.json", - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-sto/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-sto/releases.atom" - } - }, - { - "_tags": ["unofficial", "generator", "german", "framework"], - "name": "S.to-like Framework Generator", - "description": "Universal generator for German streaming sites using S.to/Aniworld framework - Create custom plugins for any compatible site", - "author": "Bluscream, Cursor.AI", - "authorUrl": "https://github.com/Bluscream", - "platformUrl": "https://grayjay-sources.github.io/grayjay-source-sto-like/", - "sourceUrl": "https://grayjay-sources.github.io/grayjay-source-sto-like/", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-sto-like", - "scriptUrl": "./script.js", - "version": 1, - "iconUrl": "./docs/sto-like-icon.svg", - "id": "8e4d9c5a-1b3f-4e2c-9d8a-7f6e5c4b3a2d", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "supportedClaimTypes": [3], - "settings": [], - "changelog": { - "1": [ - "Initial generator release", - "Web-based plugin creation", - "QR code generation", - "Support for custom base URLs" - ] + { + "id": "9c87a5e2-3f41-4b8a-9d2e-7f6c8a1b3d4e", + "_tags": [ + "working" + ], + "name": "PreserveTube", + "platformUrl": "https://preservetube.com/donate", + "description": "PreserveTube is a time capsule for YouTube videos!", + "author": "Stefan Cruz", + "authorUrl": "", + "repositoryUrl": "https://github.com/stefancruz/grayjay-plugin-preservetube", + "sourceUrl": "https://stefancruz.github.io/grayjay-plugin-preservetube/PreserveTubeConfig.json", + "scriptUrl": "./PreserveTubeScript.js", + "iconUrl": "./PreserveTubeIcon.png", + "version": 1, + "scriptSignature": "VxxgkHH7He7Mj2cLTOwBnpFqtmZxhSlINvfT6v6RD1oADAOHeYO+jCtaEGx5lmQAtm7bRHuCqM/xapZum84+L73E15OnIXQ1NDH/qM/n0eNIJilAc2Xy/J7hZc5VKE7FxDHySzgC40lHpLkP9wnZoT5Kak8OgDwnBi401/0Z3r5Zeh4118gC+v+F31tu+L7E0SXLoNecuI5+eone2MvOO1RCFhN1zzDuPanopXg8LSnQDGn8pK4ZJKFetqAUSkJOfNiHTxWoH40uchK+Nz1trpcVyounQLHE1DTPlUuD+X9Dl018Upahf05tBXxy0eOb+itl5ud/hALMGbRyNXVuNA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5shGUhmdmWJtDag0oDSV8KiCvAOmXBOxAVzWQs4uxLJ7IG6p99YlyTHnEi3B1VuIhUz/FcSkL7g/f20JQweNLTCOGlUR44+5dbaP8ZlfdbAmXYwie7nNKJX6rnXw+G9u9QQ1DBQZttIlX+d6acwldAqftVA+GUiN5uHWgtAHnFkTNZMSF3h4vq1ucJdF1CpWcPRW74/S4r841Afs29CAICtcduDoTaX4v4b/wrzDw0coYaEwlk2Gb8rRuD7ZV7G+Df1yZtFWhnMB7VhiHGxxIqoVEFoTZ5/FNhw0HAiMlWPowxInm/zwyI0HunDFB3gwilsPBtnA1WvOvbChVh5fQIDAQAB", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "preservetube.com", + ".archive.party" + ], + "captcha": { + "userAgent": "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.200 Mobile Safari/537.36", + "captchaUrl": null, + "completionUrl": "https://preservetube.com/watch?*" + }, + "settings": [], + "_installUrl": "https://stefancruz.github.io/grayjay-plugin-preservetube/PreserveTubeConfig.json", + "_feeds": { + "commits": "https://github.com/stefancruz/grayjay-plugin-preservetube/commits/master.atom", + "releases": "https://github.com/stefancruz/grayjay-plugin-preservetube/releases.atom" + } }, - "note": "⚠️ This is a generator tool! Visit https://grayjay-sources.github.io/grayjay-source-sto-like/ to create your custom plugin", - "_generatorUrl": "https://grayjay-sources.github.io/grayjay-source-sto-like/", - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-sto-like/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-sto-like/releases.atom" - } - }, - { - "name": "Sample", - "description": "Sample plugin", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://github.com/Bluscream/GrayJay/raw/master/sources/grayjay-sample/SampleConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/sample", - "scriptUrl": "./SampleScript.js", - "version": 23, - "iconUrl": "./sample.png", - "id": "82b8fefc-24aa-11ee-be56-0242ac120002", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [], - "_tags": ["official", "maintained", "broken", "development"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/sample/-/commits/master?format=atom" + { + "_tags": [ + "unofficial", + "untested" + ], + "name": "RuTube", + "description": "Russian video platform", + "author": "Grayjay Plugins", + "authorUrl": "https://codeberg.org/GrayjayPlugins", + "platformUrl": "https://rutube.ru", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-rutube/raw/branch/main/grayjay-plugin-rutube-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-rutube", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-rutube/raw/branch/main/grayjay-plugin-rutube-script.js", + "version": 2, + "iconUrl": "https://www.google.com/s2/favicons?domain=rutube.ru&sz=64", + "id": "d4e5f6a7-b8c9-0123-def0-4567890abcde", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + ".rutube.ru", + "rutube.ru", + "www.rutube.ru", + ".rutubecdn.ru", + ".rutubecdn.com", + "bl.rutube.ru", + "vd.rutube.ru" + ], + "supportedClaimTypes": [ + 1, + 2, + 16 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial version with video feed and details support", + "Added RuTube CDN domains (rutubecdn.ru, rutubecdn.com) to allowUrls for video streaming", + "Fixed HLS streaming by using HLSSource instead of VideoUrlSource for m3u8 streams" + ], + "2": [ + "Fixed Android playback by safely parsing HLS URLs and author/title fields" + ] + } }, - "_installUrl": "https://github.com/Bluscream/GrayJay/raw/master/sources/grayjay-sample/SampleConfig.json" - }, - { - "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", - "name": "Sauceplus", - "description": "A content creation and video streaming website created by Open Sauce Inc.", - "author": "Acidcoke", - "authorUrl": "https://github.com/acidcoke", - "platformUrl": "https://sauceplus.com", - "sourceUrl": "https://github.com/acidcoke/grayjay-sauceplus/releases/latest/download/config.json", - "repositoryUrl": "https://github.com/acidcoke/grayjay-sauceplus", - "scriptUrl": "./script.js", - "version": 3, - "iconUrl": "./icon.png", - "id": "d8643244-633f-4c71-9f45-215b2387dc2c", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "www.sauceplus.com", - "sauceplus.com", - "cdn-vod-drm0.sauceplus.com", - "cdn-vod-drm1.sauceplus.com", - "cdn-vod-drm2.sauceplus.com", - "cdn-vod-drm3.sauceplus.com", - "cdn-vod-drm4.sauceplus.com", - "cdn-vod-drm5.sauceplus.com", - "cdn-vod-drm6.sauceplus.com", - "cdn-vod-drm7.sauceplus.com", - "cdn-vod-drm8.sauceplus.com", - "cdn-vod-drm9.sauceplus.com" - ], - "settings": [ - { - "variable": "stream_format", - "name": "Stream format", - "description": "This will reduce clutter in the source selector, especially if there are lots of attachments", - "type": "Dropdown", - "default": "0", - "options": ["HLS", "Legacy HLS", "Flat MP4"] - }, - { - "variable": "log_toasts", - "name": "Toast Logging", - "description": "Will log details in toasts", - "type": "Boolean", - "default": "false" - } - ], - "authentication": { - "loginUrl": "https://www.sauceplus.com/login", - "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", - "cookiesToFind": ["sails.sid", "muxData"], - "loginWarning": "Login and then open a video. Try using Discord login" + { + "name": "Rumble", + "description": "A plugin that adds Rumble as a source", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Rumble/RumbleConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/rumble", + "scriptUrl": "./RumbleScript.js", + "version": 59, + "iconUrl": "./rumble.png", + "id": "2ce7b35e-d2b2-4adb-a728-a34a30d30359", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "rumble.com", + "api.ipify.org" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "MSXkwTgooEyFuA9PzEYWtStcwaWYrzlKZE4DZdoIxxLrVk5PbvVgxG2Uc4Jf8caszzoNM9vQGP/8OF0d62xlUV9+e+3BxMog/2EPpmqmr0YX483PciDXpfhCQvYEPcfEX6L7tkB9uBjNVfw8xhUYG6WZCjfq54RxJK/79trYRgCfEcddlfS+k/fA8To8PpEzRqGG3XNnmAXV+Bdd5mZ9W+JEdjo3KccqrraIz6GF4R8lBGotFXte8iqKgThMSeWNacUr4gL2eUCqM8WCnOVxF6BfBOWqmkUS0f4X1NnGAURysSnznVNOftBbJJ38GvWwdO0V7Ns0mNc5srmVMaxLvQ==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/rumble/-/commits/master?format=atom" + }, + "platformUrl": "https://rumble.com", + "authentication": { + "loginUrl": "https://rumble.com/login.php", + "userAgent": "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.200 Mobile Safari/537.36", + "cookiesToFind": [ + "u_s" + ] + }, + "supportedClaimTypes": [ + 4 + ] }, - "scriptSignature": "KFa9VHdIFzJyqqS3XeKa/rJBCF7YHOd0CblqQSl8IG/NItj4AnkS/k2NVrCUgetZEOa38dftIyT87Yl6vWeN3lCC9sN+TnFpL772j30BDTMhlUoUy9R8tv5sQC2hMu2WJ+m+qlhn7ipIkulmQ4RU8G6lbnqXrXH9oB7hsCkrhLCT7mkuOjJNopuKhux0KtVaeXcEeHMzEPIMs15ZKLdxniBAeeKwJ4GTDZGdYIF3D8C/BmRyrRp9wKfCwUO+a76iWaCm8k/C1WxVwdondGodFBvTaZhIK9JeMvkoSW7v9GWhVzynPekaLGDaV/RWBLLy0Wyd3f635UcF36uyKq+9MQ==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy14D03XDtfojoBHN1S42tMQ73Tz4PzzyXvtlLBOj58QkR4aDRPEHnnw0qWI7dLWWCidabyTYSv5/Uo+zg/99KypLzEPxTLezYH8DV+hzx2or7i3aW1VQATjVv0pb5of6DHDeQPQP5NFjaqWzND0MpYwfniyvqqB3a8ZmU8VWjCkn8rd8+todiQ1rDCCkkeOHcnHjUY0BX8L8vhiMVa+fjDeXF2nLz87KRaigcpAhMGbmUVk2jmmHyEoQteSN7huXWfFP0FqLB+Gz7ikGyfTi+/Eh0SO+Jw2vuvXXl+qIP2+5IdCtQDbjLKPQz5xEfCd10TPkGuSOB5ASff1s2tD5ZwIDAQAB", - "_tags": [], - "_installUrl": "https://github.com/acidcoke/grayjay-sauceplus/releases/latest/download/config.json", - "_feeds": { - "commits": "https://github.com/acidcoke/grayjay-sauceplus/commits/main.atom", - "releases": "https://github.com/acidcoke/grayjay-sauceplus/releases.atom" - } - }, - { - "name": "SoundCloud", - "description": "One of the biggest music distribution platforms, Privately owned", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Soundcloud/SoundcloudConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/soundcloud", - "scriptUrl": "./SoundcloudScript.js", - "version": 26, - "iconUrl": "./soundcloud.png", - "id": "5fb74e28-2fba-406a-9418-38af04f63c08", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "api-v2.soundcloud.com", - "soundcloud.com", - "a-v2.sndcdn.com", - "m.soundcloud.com", - "on.soundcloud.com" - ], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "BjiLXVZ77K0RYTfcAhnmTf64ZFdcTGAgTauepPQovYRuXNi7HswWAO6UYebpLellDzVEFkUmueyjyGic8w7VGrOA9uKhELUIKck+KicPHjR5gnZyQx4CI9HKxR+5RK2ornilnhNte5tLk0HLMsNs6jXrhG7kGjmEw5xJYr9AeHi3fGAVFH/1raHJzgACL7pp13HOO0jfr5oJtq3mDZbIGrXV2WfrkepkFzROk36FOHj6Et9kZ2mJHPLS/zSqXT1LwoY5VgbAn4RvtlOm3T/uguVKtnFai6IMy+3hEuSk0UB29DB93dvRByxRZSD4ML9mJGs8MNsAwuGSRQB1qC7n8w==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/soundcloud/-/commits/master?format=atom" + { + "_tags": [ + "unofficial", + "german", + "streaming", + "tv-series" + ], + "name": "S.to", + "description": "S.to integration for Grayjay - German TV Series Streaming", + "author": "Zerophire, Bluscream, Cursor.AI", + "authorUrl": "https://github.com/Bluscream", + "platformUrl": "https://s.to", + "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-sto/main/config.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-sto", + "scriptUrl": "./script.js", + "version": 1, + "iconUrl": "./icon.png", + "id": "sto-german-series-streaming", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "s.to" + ], + "supportedClaimTypes": [ + 3 + ], + "authentication": { + "loginUrl": "https://s.to/login", + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "domainHeadersToFind": { + "s.to": [] + } + }, + "settings": [], + "changelog": { + "1": [ + "Initial version: Basic search, series listing, episode browsing" + ] + }, + "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-sto/main/config.json", + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-sto/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-sto/releases.atom" + } }, - "platformUrl": "https://soundcloud.com", - "supportedClaimTypes": [17] - }, - { - "name": "Spotify", - "description": "Listen to millions of songs on Spotify", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Spotify/SpotifyConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/spotify", - "scriptUrl": "./SpotifyScript.js", - "version": 34, - "iconUrl": "./SpotifyIcon.png", - "id": "4e365633-6d3f-4267-8941-fdc36631d813", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "open.spotify.com", - "spclient.wg.spotify.com", - "gue1-spclient.spotify.com", - "seektables.scdn.co", - "api-partner.spotify.com", - "apresolve.spotify.com", - "open.spotifycdn.com" - ], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "IWZ1vDCbcCuQTFHOiwLCCCV9Uupz9UhapVq69Rmm1zm9NuubV0KTkmnVSMgSpx0j0XRWxkgd/BjT/R4Vs553+NhMuM2PNSyIg+HJNfTuSklDG4YZD28hSd1a0JIVkqpqvpaqDEZLT9XL1sOFqpITuNagdrCdaiC11k06gFboAGzleW9u7SeHYVhc9dzZCz6UniqhuH7udBrb30XcJ244D+UQbZOR18tAFvT5flfe+g4+eSueK2BzXfYUQQywz+6/1nLow182KtVbinbdDpZ65gy8EHj+G8a1ufFXnZGdHtvLz13+tNMy7bJj3FV269fp2RkyLq6ykCyVnAwKsonX3Q==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/spotify/-/commits/master?format=atom" + { + "_tags": [ + "unofficial", + "generator", + "german", + "framework" + ], + "name": "S.to-like Framework Generator", + "description": "Universal generator for German streaming sites using S.to/Aniworld framework - Create custom plugins for any compatible site", + "author": "Bluscream, Cursor.AI", + "authorUrl": "https://github.com/Bluscream", + "platformUrl": "https://grayjay-sources.github.io/grayjay-source-sto-like/", + "sourceUrl": "https://grayjay-sources.github.io/grayjay-source-sto-like/", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-sto-like", + "scriptUrl": "./script.js", + "version": 1, + "iconUrl": "./docs/sto-like-icon.svg", + "id": "8e4d9c5a-1b3f-4e2c-9d8a-7f6e5c4b3a2d", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "supportedClaimTypes": [ + 3 + ], + "settings": [], + "changelog": { + "1": [ + "Initial generator release", + "Web-based plugin creation", + "QR code generation", + "Support for custom base URLs" + ] + }, + "note": "⚠️ This is a generator tool! Visit https://grayjay-sources.github.io/grayjay-source-sto-like/ to create your custom plugin", + "_generatorUrl": "https://grayjay-sources.github.io/grayjay-source-sto-like/", + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-sto-like/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-sto-like/releases.atom" + } }, - "platformUrl": "https://spotify.com", - "authentication": { - "loginUrl": "https://accounts.spotify.com/en/login", - "cookiesToFind": ["sp_dc"], - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" - } - }, - { - "_tags": ["working", "unofficial", "audio", "music"], - "name": "Suno", - "description": "Suno is an AI music generation platform that allows users to create and share songs", - "author": "Grayjay Dev", - "authorUrl": "http://localhost", - "platformUrl": "https://suno.com", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-suno/raw/main/grayjay-plugin-suno-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-suno", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-suno/raw/main/grayjay-plugin-suno-script.js", - "version": 1, - "iconUrl": "./icon.png", - "id": "87654321-4321-4321-4321-abcdefabcdef", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - "suno.com", - "cdn1.suno.ai", - "cdn2.suno.ai", - "studio-api.suno.ai", - "studio-api.prod.suno.com" - ], - "supportedClaimTypes": [1, 2, 16], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial version", - "Updated video sources to use MP4 URL for playback", - "Set MP4 as video source for proper video playback", - "Trimmed trailing slash from username in channel functions", - "Switched getChannelContents to use API endpoint for recent clips", - "Updated getChannel to use API for profile info", - "Updated getChannel and getChannelContents to use recent_clips API for profile and clips data", - "Updated getHome to use living_radio API for multiple songs", - "Updated getHome to use recent clips API", - "Updated getHome to use trending clips API", - "Updated getHome to use playlist API for home feed", - "Added playlist support functions", - "Updated getHome to use specific Suno playlist as home feed", - "Fixed getContentDetails to fetch clip data for accurate author and metadata", - "Updated API endpoint for getContentDetails to /api/clip/" - ] - } - }, - { - "name": "TeacherTube", - "description": "Educational video platform", - "author": "Grayjay Plugins", - "authorUrl": "https://codeberg.org/GrayjayPlugins", - "platformUrl": "https://teachertube.com", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-teachertube/raw/branch/main/grayjay-plugin-teachertube-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-teachertube", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-teachertube/raw/branch/main/grayjay-plugin-teachertube-script.js", - "version": 1, - "iconUrl": "https://www.teachertube.com/favicon.ico", - "id": "aaecd394-51ba-4451-9fe9-184b535e6c8a", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowAllHttpHeaderAccess": false, - "allowUrls": [".teachertube.com"], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial release with TeacherTube support", - "Home feed with video browsing and metadata extraction", - "Video playback support for TeacherTube content", - "Search functionality to find TeacherTube videos", - "Partial channel support for browsing user content" - ] - } - }, - { - "_tags": ["official", "working"], - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/tedtalks/-/commits/master?format=atom" + { + "name": "Sample", + "description": "Sample plugin", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://github.com/Bluscream/GrayJay/raw/master/sources/grayjay-sample/SampleConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/sample", + "scriptUrl": "./SampleScript.js", + "version": 23, + "iconUrl": "./sample.png", + "id": "82b8fefc-24aa-11ee-be56-0242ac120002", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [], + "_tags": [ + "official", + "maintained", + "broken", + "development" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/sample/-/commits/master?format=atom" + }, + "_installUrl": "https://github.com/Bluscream/GrayJay/raw/master/sources/grayjay-sample/SampleConfig.json" }, - "name": "Ted Talks (Alpha)", - "platformUrl": "https://www.ted.com/talks", - "description": "TED Talks are influential videos from expert speakers on education, business, science, tech and creativity", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/TedTalks/TedTalksConfig.json", - "scriptUrl": "./TedTalksScript.js", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/tedtalks", - "version": 1, - "iconUrl": "./TedTalksIcon.png", - "id": "8d029a7f-5507-4e36-8bd8-c19a3b77d383", - "scriptSignature": "Phcur3JUJCbakYfIynlTaCU0bMeu1G32onbg2pKJaeEy4dMolrjCXgKhJWgaoecXxaAY2atV/P2Vmey6Qtj07+/2JT8AYmSQ8FZwisbREsal+EU1eJa5mkvUEEtlNKjwkOmmndHX7EWglqT/acS7nKrC49VdSF8Oph0/SEqaqsrYVJeRyJGM/6lTn2E7633QIJIAoEqZiXumgkYx/OUAXofeV7EV/mw0sjVp148ZVjFekXdRF97SEYEofXqZ+kCS/k/13V2qrhLRCeNwUNUZ33WsR3lj18EXhAKLsxtXGWwCFjKQYzw1W9Xv7yuiE1gYlCHPmpKmd6CemYJ0OOThbA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "maxDownloadParallelism": 1, - "subscriptionRateLimit": 10, - "changelog": {}, - "packages": ["Http", "DOMParser"], - "allowUrls": [".ted.com"], - "settings": [], - "_installUrl": "https://plugins.grayjay.app/TedTalks/TedTalksConfig.json" - }, - { - "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", - "name": "TikTok", - "description": "Watch millions of short-form videos on TikTok", - "author": "FUTO", - "authorUrl": "https://futo.org", - "platformUrl": "https://tiktok.com", - "sourceUrl": "https://plugins.grayjay.app/TikTok/TikTokConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/tiktok", - "scriptUrl": "./TikTokScript.js", - "version": 11, - "iconUrl": "./TikTokIcon.png", - "id": "37b3aed3-24b8-4717-8388-dfc439908bf8", - "scriptSignature": "NERpmW9ETbaCAF9ky1vBR37txUvQpdpCuyc+fdMSyWaWxEBSjU70JRFHSTX1jlt90NdGL8WaHI8GWcdGxuJP1ZF5XRe35rvze9hdKS1Kq1KjszvSwEPo7vcrBfklsZ8F2Ely9DeohhrofSa+nTCy9KXgS8jox6E8y6nuOUPII3fwqhj1eblqrd1OtgJtt8D1bSWKwBLJiLK7kCsq+z9q2uv2Id+k++zHp3qTCINa9WGwpyJA8ckqgSHYi5maw4TrVnq0qHREWsOJNoIgYJMxPhMg3yRzo9aIzK0RcI1fhI0Ic73lLYbuRZ1/gloAu2XLPXIHH6GdK96AzoqtDmHrhg==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - "www.tiktok.com", - "lf16-tiktok-web.tiktokcdn-us.com", - "webcast.us.tiktok.com", - "mcs.tiktokw.us", - "v16-webapp-prime.us.tiktok.com", - "mssdk.tiktokw.us", - "sf16-website-login.neutral.ttwstatic.com" - ], - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36", - "loginUrl": "https://www.tiktok.com/login", - "cookiesToFind": ["ttwid", "sessionid"] + { + "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", + "name": "Sauceplus", + "description": "A content creation and video streaming website created by Open Sauce Inc.", + "author": "Acidcoke", + "authorUrl": "https://github.com/acidcoke", + "platformUrl": "https://sauceplus.com", + "sourceUrl": "https://github.com/acidcoke/grayjay-sauceplus/releases/latest/download/config.json", + "repositoryUrl": "https://github.com/acidcoke/grayjay-sauceplus", + "scriptUrl": "./script.js", + "version": 3, + "iconUrl": "./icon.png", + "id": "d8643244-633f-4c71-9f45-215b2387dc2c", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "www.sauceplus.com", + "sauceplus.com", + "cdn-vod-drm0.sauceplus.com", + "cdn-vod-drm1.sauceplus.com", + "cdn-vod-drm2.sauceplus.com", + "cdn-vod-drm3.sauceplus.com", + "cdn-vod-drm4.sauceplus.com", + "cdn-vod-drm5.sauceplus.com", + "cdn-vod-drm6.sauceplus.com", + "cdn-vod-drm7.sauceplus.com", + "cdn-vod-drm8.sauceplus.com", + "cdn-vod-drm9.sauceplus.com" + ], + "settings": [ + { + "variable": "stream_format", + "name": "Stream format", + "description": "This will reduce clutter in the source selector, especially if there are lots of attachments", + "type": "Dropdown", + "default": "0", + "options": [ + "HLS", + "Legacy HLS", + "Flat MP4" + ] + }, + { + "variable": "log_toasts", + "name": "Toast Logging", + "description": "Will log details in toasts", + "type": "Boolean", + "default": "false" + } + ], + "authentication": { + "loginUrl": "https://www.sauceplus.com/login", + "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", + "cookiesToFind": [ + "sails.sid", + "muxData" + ], + "loginWarning": "Login and then open a video. Try using Discord login" + }, + "scriptSignature": "KFa9VHdIFzJyqqS3XeKa/rJBCF7YHOd0CblqQSl8IG/NItj4AnkS/k2NVrCUgetZEOa38dftIyT87Yl6vWeN3lCC9sN+TnFpL772j30BDTMhlUoUy9R8tv5sQC2hMu2WJ+m+qlhn7ipIkulmQ4RU8G6lbnqXrXH9oB7hsCkrhLCT7mkuOjJNopuKhux0KtVaeXcEeHMzEPIMs15ZKLdxniBAeeKwJ4GTDZGdYIF3D8C/BmRyrRp9wKfCwUO+a76iWaCm8k/C1WxVwdondGodFBvTaZhIK9JeMvkoSW7v9GWhVzynPekaLGDaV/RWBLLy0Wyd3f635UcF36uyKq+9MQ==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy14D03XDtfojoBHN1S42tMQ73Tz4PzzyXvtlLBOj58QkR4aDRPEHnnw0qWI7dLWWCidabyTYSv5/Uo+zg/99KypLzEPxTLezYH8DV+hzx2or7i3aW1VQATjVv0pb5of6DHDeQPQP5NFjaqWzND0MpYwfniyvqqB3a8ZmU8VWjCkn8rd8+todiQ1rDCCkkeOHcnHjUY0BX8L8vhiMVa+fjDeXF2nLz87KRaigcpAhMGbmUVk2jmmHyEoQteSN7huXWfFP0FqLB+Gz7ikGyfTi+/Eh0SO+Jw2vuvXXl+qIP2+5IdCtQDbjLKPQz5xEfCd10TPkGuSOB5ASff1s2tD5ZwIDAQAB", + "_tags": [], + "_installUrl": "https://github.com/acidcoke/grayjay-sauceplus/releases/latest/download/config.json", + "_feeds": { + "commits": "https://github.com/acidcoke/grayjay-sauceplus/commits/main.atom", + "releases": "https://github.com/acidcoke/grayjay-sauceplus/releases.atom" + } }, - "_tags": ["official", "maintained", "wip"], - "_feeds": { - "commits": "https://github.com/futo-org/grayjay-plugin-tiktok/commits/main.atom", - "releases": "https://github.com/futo-org/grayjay-plugin-tiktok/releases.atom" + { + "name": "SoundCloud", + "description": "One of the biggest music distribution platforms, Privately owned", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Soundcloud/SoundcloudConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/soundcloud", + "scriptUrl": "./SoundcloudScript.js", + "version": 26, + "iconUrl": "./soundcloud.png", + "id": "5fb74e28-2fba-406a-9418-38af04f63c08", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "api-v2.soundcloud.com", + "soundcloud.com", + "a-v2.sndcdn.com", + "m.soundcloud.com", + "on.soundcloud.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "BjiLXVZ77K0RYTfcAhnmTf64ZFdcTGAgTauepPQovYRuXNi7HswWAO6UYebpLellDzVEFkUmueyjyGic8w7VGrOA9uKhELUIKck+KicPHjR5gnZyQx4CI9HKxR+5RK2ornilnhNte5tLk0HLMsNs6jXrhG7kGjmEw5xJYr9AeHi3fGAVFH/1raHJzgACL7pp13HOO0jfr5oJtq3mDZbIGrXV2WfrkepkFzROk36FOHj6Et9kZ2mJHPLS/zSqXT1LwoY5VgbAn4RvtlOm3T/uguVKtnFai6IMy+3hEuSk0UB29DB93dvRByxRZSD4ML9mJGs8MNsAwuGSRQB1qC7n8w==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/soundcloud/-/commits/master?format=atom" + }, + "platformUrl": "https://soundcloud.com", + "supportedClaimTypes": [ + 17 + ] }, - "sourceUrl_": "https://plugins.grayjay.app/TikTok/TikTokConfig.json" - }, - { - "name": "Tiktok", - "description": "Tiktok plugin", - "author": "IntegerOverflow", - "authorUrl": "https://github.com/IntegerOverfl0w", - "sourceUrl": "https://integeroverfl0w.github.io/grayjay-tiktok/TiktokConfig.json", - "repositoryUrl": "https://github.com/IntegerOverfl0w/grayjay-tiktok", - "scriptUrl": "./TiktokScript.js", - "version": 3, - "iconUrl": "./tiktok.png", - "id": "905bbae8-da0f-4b1a-a35b-527eb337c976", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["unofficial", "maintained", "wip"], - "scriptSignature": "a2HeFaKzRW/sMwBrdagRti/vf1QF+ce47jJJTwH3iKIBdbpyAKR0QFr1xvnpEXIXKN6kBG1M9q3Eqpiyp4ztSaNUYSISXojfuP5hGh18/xfsahrW6a3PXHnQr8hPkl2tnAK7w/f62usVFilsTfhl13lpP/oeggCUE05xy/noSjBiDFdlIckh2V/sq3Dref8WpJtyaJIS/iQ3Ckq9r4aMSf0Y7rC9sNBwA0G0sJ0BQ4MQbjN08RzDAwAkwsHUqsJDLql7nQC8g/Bfnz3OmcoqHn+kcoplvIYMrv2SxQdQjFqvKBX71JRsGRJLhukfGsBgISvoVbTlz90fMY1uSMojYA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuIEFVvy+lLHB4cQoSQu4c/4i+pdjP5RH7CxgIMIs4kqjTf6hh0smO55GVN9Cer18j2pixEPNV5i4P+9iMsrg5bK4TVhbbsCm6UIUf4ohzTr/h0pmRRjNxe6EhFEiWCQSSyNYDeTLgYstxhYO4hsZFYJ5VW8HRw7vQ7LHUwkexJ2GB3SKhtQQy9yQnWaFtaQnAW+hsUZYrQ8AQzUSihoOtrullMpv00hucgs7UybpLW2JAG7De7RbglO2r/wr9ZB6HiGAnWNOx7av5qDJIQFH4C7y9YDHdziMx3QgW+P0xwtNajFig9vM6x0HJtWnpFaKqAlmhU/AWLfwf7OEDTNRjQIDAQAB", - "_feeds": { - "commits": "https://github.com/integeroverfl0w/grayjay-tiktok/commits/main.atom", - "releases": "https://github.com/integeroverfl0w/grayjay-tiktok/releases.atom" + { + "name": "Spotify", + "description": "Listen to millions of songs on Spotify", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Spotify/SpotifyConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/spotify", + "scriptUrl": "./SpotifyScript.js", + "version": 34, + "iconUrl": "./SpotifyIcon.png", + "id": "4e365633-6d3f-4267-8941-fdc36631d813", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "open.spotify.com", + "spclient.wg.spotify.com", + "gue1-spclient.spotify.com", + "seektables.scdn.co", + "api-partner.spotify.com", + "apresolve.spotify.com", + "open.spotifycdn.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "IWZ1vDCbcCuQTFHOiwLCCCV9Uupz9UhapVq69Rmm1zm9NuubV0KTkmnVSMgSpx0j0XRWxkgd/BjT/R4Vs553+NhMuM2PNSyIg+HJNfTuSklDG4YZD28hSd1a0JIVkqpqvpaqDEZLT9XL1sOFqpITuNagdrCdaiC11k06gFboAGzleW9u7SeHYVhc9dzZCz6UniqhuH7udBrb30XcJ244D+UQbZOR18tAFvT5flfe+g4+eSueK2BzXfYUQQywz+6/1nLow182KtVbinbdDpZ65gy8EHj+G8a1ufFXnZGdHtvLz13+tNMy7bJj3FV269fp2RkyLq6ykCyVnAwKsonX3Q==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/spotify/-/commits/master?format=atom" + }, + "platformUrl": "https://spotify.com", + "authentication": { + "loginUrl": "https://accounts.spotify.com/en/login", + "cookiesToFind": [ + "sp_dc" + ], + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36" + } }, - "platformUrl": "https://tiktok.com", - "sourceUrl_": "https://integeroverfl0w.github.io/grayjay-tiktok/TiktokConfig.json", - "allowAllHttpHeaderAccess": true - }, - { - "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", - "name": "Trovo (Beta)", - "description": "A gaming-centric live streaming platform, part of Tencent's portfolio.", - "author": "AlexisBlade2001", - "authorUrl": "https://github.com/AlexisBlade2001", - "platformUrl": "https://trovo.live", - "sourceUrl": "https://alexisblade2001.github.io/Grayjay-Plugins/Trovo/TrovoConfig.json", - "repositoryUrl": "https://github.com/AlexisBlade2001/Grayjay-Trovo", - "scriptUrl": "./TrovoScript.js", - "version": 1, - "iconUrl": "./TrovoIcon.png", - "id": "362458b3-f453-4f7b-b468-08591e580f89", - "scriptSignature": "HgW/KarigyzkHonaLgRP+vkOHHP6f5xpQ3hzogJ7PG/KjjNWJuiwrnTOQJuFzwDeHfOFD4zNsc0VQaiwggzPGpmCut4poIq12e5HWCvn4sEf5ttO280qOU0wnkVikp3qjgwoKZMMFZ548Cy7ER3TOPsEK9dnsLx2ZjSpMQN9a5KZpbnOlzApfh87SFt+l+3PgHxAWnJJ0q4u0c1o0kNm/8KXkRtqB1vz09PfZNyOIvF5oT0RlWERonSkwIgufdB2bk9Ao4C5gd04MuJsh3DmTtSeftqYMKcKTivSxKAyQCvuyQaOXe0cXR1GF18esSrqOWBUURTiSVlxRN8Wm1jO3XLMnidZNLPNnuHN95yCp+DGXr5KrwpYjCCA6xZ83iuUR7QtJOFN83bO6qo86cJyuOu1+n+8eVlEhlIsO4B3zjmM7MeDXk5ahZcRU20H2xeHHZs9hmr1+bnAMXXX7jmT5wSc6mhjssNB1CDRXZBr4Vvs4C7tOGfsx36KDUqHj426Uvo8PfQpvhzc7RzbhqUZ1lg6RYBKLrXivbsPRqAnhGoMroGZ8GPgQn5H5eXsPci7+JyLiMWhhVEGfBfbJAn2hWDKwyx9eIKYKumVu5s1290/tLCi9LKfR7UyGViqzmmEufHqbzsNWyIpuGI/doGzdz93aDSg1wG2rCrDW1h9hgk=", - "scriptPublicKey": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr63Yf0gjJG8rV9IhtUQgxzryQCtacKfdaErLBC4sOhcnHEqWYJoAHGytGggRSyuGZoJFX2Ovd/8bH0YRT1e1oWMgSZFHQ0k3UE94G2Jw1jmmFvZEaMVxDW7RLkkvqYlXBNDLdkxfbyZepKV5mM4Fd5kbueAdfWdhsl5FhlqHCH10kudewcFq4WBTwQW1chsdkI0Iqrgwqzs5vH5cpphxzXUb+V6rtOUystpFwsEXb6m1Kzl0Uy/9AWTdT9JJJ7H88ycO6d6xX9UUjOXCwMWHxPcZ6UVPN2Plr8UBTJvF0uaYkDhNn0rzEe7NiJ8gUmrT0UJB2E5cYv4I4eTGp6RTwKe7UVCGEo8S7vQ0yPjxk8+dta+V6ECvg7VV1Ic00dfYqPsWPsZJ/xkJLeXIeXhjDNLm0pebr6W6bXkVPvS9PcYMoId+YpghojnPnzo/vmAIo4aS90G1zwmCNonv4suy2Kl48Pxz2OO0YepTuAZxJA6vrPcHxqbeAcAvfpk9PXLRmxD/eoiTsJusxkP5h6Z00gWJiFNNSntOShaGfCtloumqFHi5HIDiipo6KvIBvSYFaK0vlcFjdk0cAkMskuGP8B98zlMP5s9C19/uC6WsDmX1oQ0tNRIifBzg1QE0RuvvfqjI3/W4MqmKllbkwj/Pl/irIaeHsTK/+bwko/jK460CAwEAAQ==", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "astatic.trovocdn.net", - "trovo.live", - "cdn.trovo.live", - "intlsdk.trovo.live", - "pubsub.trovo.live", - "aegis.trovo.live", - "open-api.trovo.live", - "api.trovo.live", - "api-web.trovo.live", - "api-web-backup.trovo.live", - "fr-api-web.trovo.live", - "fr-api-web-backup.trovo.live", - "sv-api-web.trovo.live", - "sv-api-web-backup.trovo.live", - "cfgapi.trovo.live", - "chat.trovo.live", - "chat-backup.trovo.live", - "fr-chat.trovo.live", - "fr-chat-backup.trovo.live", - "sv-chat.trovo.live", - "sv-chat-backup.trovo.live", - "custom-file.trovo.live", - "img.trovo.live", - "vod.trovo.live", - "player.trovo.live", - "headicon.trovo.live", - "livecover.trovo.live", - "liveplay.trovo.live", - "liveplay2.trovocdn.net", - "static.trovo.live", - "tdm.trovo.live:8013", - "playback.livepeer.studio", - "playtimeshift.trovo.live" - ], - "authentication": { - "loginUrl": "https://cdn.trovo.live/page/login-page.html", - "headersToFind": ["Authorization", "Cookie"], - "cookiesToFind": [ - "uid", - "openid", - "pgg_pvid", - "token", - "tokenInfos", - "channel" - ] + { + "_tags": [ + "working", + "unofficial", + "audio", + "music" + ], + "name": "Suno", + "description": "Suno is an AI music generation platform that allows users to create and share songs", + "author": "Grayjay Dev", + "authorUrl": "http://localhost", + "platformUrl": "https://suno.com", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-suno/raw/main/grayjay-plugin-suno-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-suno", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-suno/raw/main/grayjay-plugin-suno-script.js", + "version": 1, + "iconUrl": "./icon.png", + "id": "87654321-4321-4321-4321-abcdefabcdef", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + "suno.com", + "cdn1.suno.ai", + "cdn2.suno.ai", + "studio-api.suno.ai", + "studio-api.prod.suno.com" + ], + "supportedClaimTypes": [ + 1, + 2, + 16 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial version", + "Updated video sources to use MP4 URL for playback", + "Set MP4 as video source for proper video playback", + "Trimmed trailing slash from username in channel functions", + "Switched getChannelContents to use API endpoint for recent clips", + "Updated getChannel to use API for profile info", + "Updated getChannel and getChannelContents to use recent_clips API for profile and clips data", + "Updated getHome to use living_radio API for multiple songs", + "Updated getHome to use recent clips API", + "Updated getHome to use trending clips API", + "Updated getHome to use playlist API for home feed", + "Added playlist support functions", + "Updated getHome to use specific Suno playlist as home feed", + "Fixed getContentDetails to fetch clip data for accurate author and metadata", + "Updated API endpoint for getContentDetails to /api/clip/" + ] + } }, - "settings": [ - { - "variable": "allowMatureTag", - "name": "Allow Mature Content", - "description": "Allow searching and watching of mature content", - "type": "Boolean", - "default": "true" - }, - { - "variable": "shouldIncludeChannelClips", - "name": "Show channel clips", - "description": "", - "type": "Boolean", - "default": "false" - } - ], - "changelog": { - "0": [ - "Initial Release", - "Feature: Search Support [Suggestions, Contents(Lives) and Channels]", - "Feature: Content Support [Lives(Experimental), Clips, VODs and Uploads]", - "Feature: Channel Support [Channel Details, Lives, VODs, Uploads and Clips(Disabled by default, need to come up with a better way to handle them)]", - "Issue: Almost everything related to the Follower Count doesn't work, it is not available in the API calls for some reason. The only exception is while Searching." - ], - "1": ["Feature: Comments are working. oh, SubComments too."] + { + "name": "TeacherTube", + "description": "Educational video platform", + "author": "Grayjay Plugins", + "authorUrl": "https://codeberg.org/GrayjayPlugins", + "platformUrl": "https://teachertube.com", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-teachertube/raw/branch/main/grayjay-plugin-teachertube-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-teachertube", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-teachertube/raw/branch/main/grayjay-plugin-teachertube-script.js", + "version": 1, + "iconUrl": "https://www.teachertube.com/favicon.ico", + "id": "aaecd394-51ba-4451-9fe9-184b535e6c8a", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": false, + "allowUrls": [ + ".teachertube.com" + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial release with TeacherTube support", + "Home feed with video browsing and metadata extraction", + "Video playback support for TeacherTube content", + "Search functionality to find TeacherTube videos", + "Partial channel support for browsing user content" + ] + } }, - "_tags": [], - "_installUrl": "https://alexisblade2001.github.io/Grayjay-Plugins/Trovo/TrovoConfig.json", - "_feeds": { - "commits": "https://github.com/AlexisBlade2001/Grayjay-Trovo/commits/main.atom", - "releases": "https://github.com/AlexisBlade2001/Grayjay-Trovo/releases.atom" - } - }, - { - "name": "Twitch (Beta)", - "description": "One of the biggest livestreaming platforms, owned by Amazon.", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Twitch/TwitchConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/twitch", - "scriptUrl": "./TwitchScript.js", - "version": 28, - "iconUrl": "./twitch.png", - "id": "c0f315f9-0992-4508-a061-f2738724c331", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [ - "gql.twitch.tv", - "twitch.tv", - "usher.ttvnw.net", - "production.assets.clips.twitchcdn.net" - ], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "ZMgDgXVwTKI28fskdk5KKAbT5Hjc5VxUcxZzOtkyR9HEgkPCwSLBYb2IqGpuakxN5iZEt+xVf+B/AqS90QzXjaBUsZvqMnDBhVmXjLmN2pMetjWCeh3ZAeUqkhDk8u2p3f1U2SqghRvXZj3G1jo841NixTpfquIc3xXcs4yELrca+FtOZ6iPatqRQd5RJlP3zmKV/31VuA4dYZhdUEQ4aQbLzV7kqbHKMktmf2kAaQSypcMuhMMbMD+2tFTtQ23VxiU0YTKw/AvyOFuiBDVaWC7JCKfCOOjPWshCuQe19MAZvZYOmkoOw3Z7ku1s2W5ilBST4ub598okQ4jT/ugqfw==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/twitch/-/commits/master?format=atom" + { + "_tags": [ + "official", + "working" + ], + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/tedtalks/-/commits/master?format=atom" + }, + "name": "Ted Talks (Alpha)", + "platformUrl": "https://www.ted.com/talks", + "description": "TED Talks are influential videos from expert speakers on education, business, science, tech and creativity", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/TedTalks/TedTalksConfig.json", + "scriptUrl": "./TedTalksScript.js", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/tedtalks", + "version": 1, + "iconUrl": "./TedTalksIcon.png", + "id": "8d029a7f-5507-4e36-8bd8-c19a3b77d383", + "scriptSignature": "Phcur3JUJCbakYfIynlTaCU0bMeu1G32onbg2pKJaeEy4dMolrjCXgKhJWgaoecXxaAY2atV/P2Vmey6Qtj07+/2JT8AYmSQ8FZwisbREsal+EU1eJa5mkvUEEtlNKjwkOmmndHX7EWglqT/acS7nKrC49VdSF8Oph0/SEqaqsrYVJeRyJGM/6lTn2E7633QIJIAoEqZiXumgkYx/OUAXofeV7EV/mw0sjVp148ZVjFekXdRF97SEYEofXqZ+kCS/k/13V2qrhLRCeNwUNUZ33WsR3lj18EXhAKLsxtXGWwCFjKQYzw1W9Xv7yuiE1gYlCHPmpKmd6CemYJ0OOThbA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "maxDownloadParallelism": 1, + "subscriptionRateLimit": 10, + "changelog": {}, + "packages": [ + "Http", + "DOMParser" + ], + "allowUrls": [ + ".ted.com" + ], + "settings": [], + "_installUrl": "https://plugins.grayjay.app/TedTalks/TedTalksConfig.json" }, - "platformUrl": "https://twitch.tv", - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.113 Mobile Safari/537.36", - "loginUrl": "https://www.twitch.tv/login", - "headersToFind": ["Authorization"], - "domainHeadersToFind": { - ".twitch.tv": ["authorization"] - } + { + "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", + "name": "TikTok", + "description": "Watch millions of short-form videos on TikTok", + "author": "FUTO", + "authorUrl": "https://futo.org", + "platformUrl": "https://tiktok.com", + "sourceUrl": "https://plugins.grayjay.app/TikTok/TikTokConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/tiktok", + "scriptUrl": "./TikTokScript.js", + "version": 11, + "iconUrl": "./TikTokIcon.png", + "id": "37b3aed3-24b8-4717-8388-dfc439908bf8", + "scriptSignature": "NERpmW9ETbaCAF9ky1vBR37txUvQpdpCuyc+fdMSyWaWxEBSjU70JRFHSTX1jlt90NdGL8WaHI8GWcdGxuJP1ZF5XRe35rvze9hdKS1Kq1KjszvSwEPo7vcrBfklsZ8F2Ely9DeohhrofSa+nTCy9KXgS8jox6E8y6nuOUPII3fwqhj1eblqrd1OtgJtt8D1bSWKwBLJiLK7kCsq+z9q2uv2Id+k++zHp3qTCINa9WGwpyJA8ckqgSHYi5maw4TrVnq0qHREWsOJNoIgYJMxPhMg3yRzo9aIzK0RcI1fhI0Ic73lLYbuRZ1/gloAu2XLPXIHH6GdK96AzoqtDmHrhg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + "www.tiktok.com", + "lf16-tiktok-web.tiktokcdn-us.com", + "webcast.us.tiktok.com", + "mcs.tiktokw.us", + "v16-webapp-prime.us.tiktok.com", + "mssdk.tiktokw.us", + "sf16-website-login.neutral.ttwstatic.com" + ], + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36", + "loginUrl": "https://www.tiktok.com/login", + "cookiesToFind": [ + "ttwid", + "sessionid" + ] + }, + "_tags": [ + "official", + "maintained", + "wip" + ], + "_feeds": { + "commits": "https://github.com/futo-org/grayjay-plugin-tiktok/commits/main.atom", + "releases": "https://github.com/futo-org/grayjay-plugin-tiktok/releases.atom" + }, + "sourceUrl_": "https://plugins.grayjay.app/TikTok/TikTokConfig.json" }, - "supportedClaimTypes": [14] - }, - { - "name": "Vanillo", - "description": "Vanillo", - "author": "dw5", - "authorUrl": "https://dw5.github.io", - "sourceUrl": "https://dw5.github.io/grayjay-Vanillo/VanilloConfig.json", - "repositoryUrl": "https://github.com/dw5/grayjay-Vanillo/tree/master", - "scriptUrl": "./VanilloScript.js", - "version": 5, - "iconUrl": "./vanillo192.png", - "id": "82b8fefc-24aa-11ee-be56-0242ac120ff2", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["unofficial", "unmaintained", "unknown"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/dw5/grayjay-Vanillo/commits/master.atom", - "releases": "https://github.com/dw5/grayjay-Vanillo/releases.atom" + { + "name": "Tiktok", + "description": "Tiktok plugin", + "author": "IntegerOverflow", + "authorUrl": "https://github.com/IntegerOverfl0w", + "sourceUrl": "https://integeroverfl0w.github.io/grayjay-tiktok/TiktokConfig.json", + "repositoryUrl": "https://github.com/IntegerOverfl0w/grayjay-tiktok", + "scriptUrl": "./TiktokScript.js", + "version": 3, + "iconUrl": "./tiktok.png", + "id": "905bbae8-da0f-4b1a-a35b-527eb337c976", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_tags": [ + "unofficial", + "maintained", + "wip" + ], + "scriptSignature": "a2HeFaKzRW/sMwBrdagRti/vf1QF+ce47jJJTwH3iKIBdbpyAKR0QFr1xvnpEXIXKN6kBG1M9q3Eqpiyp4ztSaNUYSISXojfuP5hGh18/xfsahrW6a3PXHnQr8hPkl2tnAK7w/f62usVFilsTfhl13lpP/oeggCUE05xy/noSjBiDFdlIckh2V/sq3Dref8WpJtyaJIS/iQ3Ckq9r4aMSf0Y7rC9sNBwA0G0sJ0BQ4MQbjN08RzDAwAkwsHUqsJDLql7nQC8g/Bfnz3OmcoqHn+kcoplvIYMrv2SxQdQjFqvKBX71JRsGRJLhukfGsBgISvoVbTlz90fMY1uSMojYA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuIEFVvy+lLHB4cQoSQu4c/4i+pdjP5RH7CxgIMIs4kqjTf6hh0smO55GVN9Cer18j2pixEPNV5i4P+9iMsrg5bK4TVhbbsCm6UIUf4ohzTr/h0pmRRjNxe6EhFEiWCQSSyNYDeTLgYstxhYO4hsZFYJ5VW8HRw7vQ7LHUwkexJ2GB3SKhtQQy9yQnWaFtaQnAW+hsUZYrQ8AQzUSihoOtrullMpv00hucgs7UybpLW2JAG7De7RbglO2r/wr9ZB6HiGAnWNOx7av5qDJIQFH4C7y9YDHdziMx3QgW+P0xwtNajFig9vM6x0HJtWnpFaKqAlmhU/AWLfwf7OEDTNRjQIDAQAB", + "_feeds": { + "commits": "https://github.com/integeroverfl0w/grayjay-tiktok/commits/main.atom", + "releases": "https://github.com/integeroverfl0w/grayjay-tiktok/releases.atom" + }, + "platformUrl": "https://tiktok.com", + "sourceUrl_": "https://integeroverfl0w.github.io/grayjay-tiktok/TiktokConfig.json", + "allowAllHttpHeaderAccess": true }, - "constants": { - "baseUrl": "https://api.vanillo.tv" + { + "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", + "name": "Trovo (Beta)", + "description": "A gaming-centric live streaming platform, part of Tencent's portfolio.", + "author": "AlexisBlade2001", + "authorUrl": "https://github.com/AlexisBlade2001", + "platformUrl": "https://trovo.live", + "sourceUrl": "https://alexisblade2001.github.io/Grayjay-Plugins/Trovo/TrovoConfig.json", + "repositoryUrl": "https://github.com/AlexisBlade2001/Grayjay-Trovo", + "scriptUrl": "./TrovoScript.js", + "version": 1, + "iconUrl": "./TrovoIcon.png", + "id": "362458b3-f453-4f7b-b468-08591e580f89", + "scriptSignature": "HgW/KarigyzkHonaLgRP+vkOHHP6f5xpQ3hzogJ7PG/KjjNWJuiwrnTOQJuFzwDeHfOFD4zNsc0VQaiwggzPGpmCut4poIq12e5HWCvn4sEf5ttO280qOU0wnkVikp3qjgwoKZMMFZ548Cy7ER3TOPsEK9dnsLx2ZjSpMQN9a5KZpbnOlzApfh87SFt+l+3PgHxAWnJJ0q4u0c1o0kNm/8KXkRtqB1vz09PfZNyOIvF5oT0RlWERonSkwIgufdB2bk9Ao4C5gd04MuJsh3DmTtSeftqYMKcKTivSxKAyQCvuyQaOXe0cXR1GF18esSrqOWBUURTiSVlxRN8Wm1jO3XLMnidZNLPNnuHN95yCp+DGXr5KrwpYjCCA6xZ83iuUR7QtJOFN83bO6qo86cJyuOu1+n+8eVlEhlIsO4B3zjmM7MeDXk5ahZcRU20H2xeHHZs9hmr1+bnAMXXX7jmT5wSc6mhjssNB1CDRXZBr4Vvs4C7tOGfsx36KDUqHj426Uvo8PfQpvhzc7RzbhqUZ1lg6RYBKLrXivbsPRqAnhGoMroGZ8GPgQn5H5eXsPci7+JyLiMWhhVEGfBfbJAn2hWDKwyx9eIKYKumVu5s1290/tLCi9LKfR7UyGViqzmmEufHqbzsNWyIpuGI/doGzdz93aDSg1wG2rCrDW1h9hgk=", + "scriptPublicKey": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr63Yf0gjJG8rV9IhtUQgxzryQCtacKfdaErLBC4sOhcnHEqWYJoAHGytGggRSyuGZoJFX2Ovd/8bH0YRT1e1oWMgSZFHQ0k3UE94G2Jw1jmmFvZEaMVxDW7RLkkvqYlXBNDLdkxfbyZepKV5mM4Fd5kbueAdfWdhsl5FhlqHCH10kudewcFq4WBTwQW1chsdkI0Iqrgwqzs5vH5cpphxzXUb+V6rtOUystpFwsEXb6m1Kzl0Uy/9AWTdT9JJJ7H88ycO6d6xX9UUjOXCwMWHxPcZ6UVPN2Plr8UBTJvF0uaYkDhNn0rzEe7NiJ8gUmrT0UJB2E5cYv4I4eTGp6RTwKe7UVCGEo8S7vQ0yPjxk8+dta+V6ECvg7VV1Ic00dfYqPsWPsZJ/xkJLeXIeXhjDNLm0pebr6W6bXkVPvS9PcYMoId+YpghojnPnzo/vmAIo4aS90G1zwmCNonv4suy2Kl48Pxz2OO0YepTuAZxJA6vrPcHxqbeAcAvfpk9PXLRmxD/eoiTsJusxkP5h6Z00gWJiFNNSntOShaGfCtloumqFHi5HIDiipo6KvIBvSYFaK0vlcFjdk0cAkMskuGP8B98zlMP5s9C19/uC6WsDmX1oQ0tNRIifBzg1QE0RuvvfqjI3/W4MqmKllbkwj/Pl/irIaeHsTK/+bwko/jK460CAwEAAQ==", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "astatic.trovocdn.net", + "trovo.live", + "cdn.trovo.live", + "intlsdk.trovo.live", + "pubsub.trovo.live", + "aegis.trovo.live", + "open-api.trovo.live", + "api.trovo.live", + "api-web.trovo.live", + "api-web-backup.trovo.live", + "fr-api-web.trovo.live", + "fr-api-web-backup.trovo.live", + "sv-api-web.trovo.live", + "sv-api-web-backup.trovo.live", + "cfgapi.trovo.live", + "chat.trovo.live", + "chat-backup.trovo.live", + "fr-chat.trovo.live", + "fr-chat-backup.trovo.live", + "sv-chat.trovo.live", + "sv-chat-backup.trovo.live", + "custom-file.trovo.live", + "img.trovo.live", + "vod.trovo.live", + "player.trovo.live", + "headicon.trovo.live", + "livecover.trovo.live", + "liveplay.trovo.live", + "liveplay2.trovocdn.net", + "static.trovo.live", + "tdm.trovo.live:8013", + "playback.livepeer.studio", + "playtimeshift.trovo.live" + ], + "authentication": { + "loginUrl": "https://cdn.trovo.live/page/login-page.html", + "headersToFind": [ + "Authorization", + "Cookie" + ], + "cookiesToFind": [ + "uid", + "openid", + "pgg_pvid", + "token", + "tokenInfos", + "channel" + ] + }, + "settings": [ + { + "variable": "allowMatureTag", + "name": "Allow Mature Content", + "description": "Allow searching and watching of mature content", + "type": "Boolean", + "default": "true" + }, + { + "variable": "shouldIncludeChannelClips", + "name": "Show channel clips", + "description": "", + "type": "Boolean", + "default": "false" + } + ], + "changelog": { + "0": [ + "Initial Release", + "Feature: Search Support [Suggestions, Contents(Lives) and Channels]", + "Feature: Content Support [Lives(Experimental), Clips, VODs and Uploads]", + "Feature: Channel Support [Channel Details, Lives, VODs, Uploads and Clips(Disabled by default, need to come up with a better way to handle them)]", + "Issue: Almost everything related to the Follower Count doesn't work, it is not available in the API calls for some reason. The only exception is while Searching." + ], + "1": [ + "Feature: Comments are working. oh, SubComments too." + ] + }, + "_tags": [], + "_installUrl": "https://alexisblade2001.github.io/Grayjay-Plugins/Trovo/TrovoConfig.json", + "_feeds": { + "commits": "https://github.com/AlexisBlade2001/Grayjay-Trovo/commits/main.atom", + "releases": "https://github.com/AlexisBlade2001/Grayjay-Trovo/releases.atom" + } }, - "websiteUrl": "https://dw5.github.io" - }, - { - "_tags": ["unofficial", "untested"], - "_feeds": {}, - "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", - "name": "Vimeo", - "description": "an up and comming platform", - "author": "Kai DeLorenzo", - "authorUrl": "https://gitlab.com/kaidelorenzo", - "platformUrl": "https://vimeo.com", - "sourceUrl": "https://gitlab.com/kaidelorenzo/grayjay-vimeo-plugin/-/releases/permalink/latest/downloads/src/config.json", - "repositoryUrl": "https://gitlab.com/kaidelorenzo/grayjay-vimeo-plugin", - "scriptUrl": "./script.js", - "version": 3, - "iconUrl": "./icon.png", - "id": "29c6b4d5-f006-402a-8ba0-97125643df63", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["vimeo.com", "api.vimeo.com", "player.vimeo.com"], - "authentication": { - "loginUrl": "https://vimeo.com/login", - "cookiesToFind": ["vimeo"] + { + "name": "Twitch (Beta)", + "description": "One of the biggest livestreaming platforms, owned by Amazon.", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Twitch/TwitchConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/twitch", + "scriptUrl": "./TwitchScript.js", + "version": 28, + "iconUrl": "./twitch.png", + "id": "c0f315f9-0992-4508-a061-f2738724c331", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "gql.twitch.tv", + "twitch.tv", + "usher.ttvnw.net", + "production.assets.clips.twitchcdn.net" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "ZMgDgXVwTKI28fskdk5KKAbT5Hjc5VxUcxZzOtkyR9HEgkPCwSLBYb2IqGpuakxN5iZEt+xVf+B/AqS90QzXjaBUsZvqMnDBhVmXjLmN2pMetjWCeh3ZAeUqkhDk8u2p3f1U2SqghRvXZj3G1jo841NixTpfquIc3xXcs4yELrca+FtOZ6iPatqRQd5RJlP3zmKV/31VuA4dYZhdUEQ4aQbLzV7kqbHKMktmf2kAaQSypcMuhMMbMD+2tFTtQ23VxiU0YTKw/AvyOFuiBDVaWC7JCKfCOOjPWshCuQe19MAZvZYOmkoOw3Z7ku1s2W5ilBST4ub598okQ4jT/ugqfw==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/twitch/-/commits/master?format=atom" + }, + "platformUrl": "https://twitch.tv", + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.113 Mobile Safari/537.36", + "loginUrl": "https://www.twitch.tv/login", + "headersToFind": [ + "Authorization" + ], + "domainHeadersToFind": { + ".twitch.tv": [ + "authorization" + ] + } + }, + "supportedClaimTypes": [ + 14 + ] }, - "scriptSignature": "RS1urloXNwx08DcSwnvAI56M0Qmgp3XQdsk4O1fKMzUq134+YvTcnNAhrOdEGwbMqBfEu7usoiAxKr2Iu9qMLNH2EZiT9u3R2eODKjW7g+wKdMLGYt3GARDc5aKqyZ+IkTdH1ItvHA5+LZ0yr3sG9BHwWJL5Kr6EnK2H0ScyCTITmxGPyj1wsLqBUBxhB5kFy4BPvTGKx3pYYLZDfXm8SfcdDS+b6jDkUtjU0vuYIT9fZ9Bk/BIhY6oqVa+M6caITFRNipPvfpIgZys3GHIDQbuNDzB5z1hasmB5FQqJtrpsEibJ48ib+wyBeTLsOVaw/ZrjRWuwyllGrUap0vNQxA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3XblavsQV/ct8b2EdJmSgiMWPv5evi7MTmpToBoSeqcYYmoqC9y4Fwx40Mg4nYWmC8h3u/dOUnR8XYezESU2KsGhUabyiOAozJs4qjAa1eB6v+v1R+eBK43pThzJLKN+3HwXgScF5qO4z9+HzU0T9tVhURHxi+NfjDBNWGYYpWAAlZa88cT4enzfyCmCfAHabQ+nF32gvmrlijZCNa5V4bpbKKhbaFbsSPO6n4DL3gETiwHTrqM/D88a06+PJM/JFZ5ZF5OJUQ2JO0qze/EX227VUpSSfq/OIR084x9rJEVvZvtSVkeREmVK+OdY3XP9VTOfdeiq3MXFP4dbWp7ewIDAQAB", - "_installUrl": "https://gitlab.com/kaidelorenzo/grayjay-vimeo-plugin/-/releases/permalink/latest/downloads/src/config.json" - }, - { - "_tags": ["unofficial", "wip", "sports", "wrestling", "entertainment"], - "name": "WWE Network", - "description": "WWE Network - Professional wrestling streaming service", - "author": "Bluscream, Cursor.AI", - "authorUrl": "https://github.com/Bluscream", - "platformUrl": "https://watch.wwe.com", - "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-wwe-network/main/config.json", - "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-wwe-network", - "scriptUrl": "./script.js", - "version": 1, - "iconUrl": "./icon.png", - "id": "wwe-network-streaming", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["wwe.com", "www.wwe.com", "watch.wwe.com", "*.wwe.com"], - "supportedClaimTypes": [3], - "authentication": { - "loginUrl": "https://watch.wwe.com/signin", - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "domainHeadersToFind": { - "wwe.com": [] - } + { + "name": "Vanillo", + "description": "Vanillo", + "author": "dw5", + "authorUrl": "https://dw5.github.io", + "sourceUrl": "https://dw5.github.io/grayjay-Vanillo/VanilloConfig.json", + "repositoryUrl": "https://github.com/dw5/grayjay-Vanillo/tree/master", + "scriptUrl": "./VanilloScript.js", + "version": 5, + "iconUrl": "./vanillo192.png", + "id": "82b8fefc-24aa-11ee-be56-0242ac120ff2", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + "_tags": [ + "unofficial", + "unmaintained", + "unknown" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/dw5/grayjay-Vanillo/commits/master.atom", + "releases": "https://github.com/dw5/grayjay-Vanillo/releases.atom" + }, + "constants": { + "baseUrl": "https://api.vanillo.tv" + }, + "websiteUrl": "https://dw5.github.io" }, - "settings": [], - "changelog": { - "1": ["Initial version: Basic plugin structure"] + { + "_tags": [ + "unofficial", + "untested" + ], + "_feeds": {}, + "$schema": "https://github.com/MithrilGoat/GrayJay-Plugin-Schema/releases/latest/download/Schema.json", + "name": "Vimeo", + "description": "an up and comming platform", + "author": "Kai DeLorenzo", + "authorUrl": "https://gitlab.com/kaidelorenzo", + "platformUrl": "https://vimeo.com", + "sourceUrl": "https://gitlab.com/kaidelorenzo/grayjay-vimeo-plugin/-/releases/permalink/latest/downloads/src/config.json", + "repositoryUrl": "https://gitlab.com/kaidelorenzo/grayjay-vimeo-plugin", + "scriptUrl": "./script.js", + "version": 3, + "iconUrl": "./icon.png", + "id": "29c6b4d5-f006-402a-8ba0-97125643df63", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "vimeo.com", + "api.vimeo.com", + "player.vimeo.com" + ], + "authentication": { + "loginUrl": "https://vimeo.com/login", + "cookiesToFind": [ + "vimeo" + ] + }, + "scriptSignature": "RS1urloXNwx08DcSwnvAI56M0Qmgp3XQdsk4O1fKMzUq134+YvTcnNAhrOdEGwbMqBfEu7usoiAxKr2Iu9qMLNH2EZiT9u3R2eODKjW7g+wKdMLGYt3GARDc5aKqyZ+IkTdH1ItvHA5+LZ0yr3sG9BHwWJL5Kr6EnK2H0ScyCTITmxGPyj1wsLqBUBxhB5kFy4BPvTGKx3pYYLZDfXm8SfcdDS+b6jDkUtjU0vuYIT9fZ9Bk/BIhY6oqVa+M6caITFRNipPvfpIgZys3GHIDQbuNDzB5z1hasmB5FQqJtrpsEibJ48ib+wyBeTLsOVaw/ZrjRWuwyllGrUap0vNQxA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3XblavsQV/ct8b2EdJmSgiMWPv5evi7MTmpToBoSeqcYYmoqC9y4Fwx40Mg4nYWmC8h3u/dOUnR8XYezESU2KsGhUabyiOAozJs4qjAa1eB6v+v1R+eBK43pThzJLKN+3HwXgScF5qO4z9+HzU0T9tVhURHxi+NfjDBNWGYYpWAAlZa88cT4enzfyCmCfAHabQ+nF32gvmrlijZCNa5V4bpbKKhbaFbsSPO6n4DL3gETiwHTrqM/D88a06+PJM/JFZ5ZF5OJUQ2JO0qze/EX227VUpSSfq/OIR084x9rJEVvZvtSVkeREmVK+OdY3XP9VTOfdeiq3MXFP4dbWp7ewIDAQAB", + "_installUrl": "https://gitlab.com/kaidelorenzo/grayjay-vimeo-plugin/-/releases/permalink/latest/downloads/src/config.json" }, - "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-wwe-network/main/config.json", - "_feeds": { - "commits": "https://github.com/grayjay-sources/grayjay-source-wwe-network/commits/main.atom", - "releases": "https://github.com/grayjay-sources/grayjay-source-wwe-network/releases.atom" - } - }, - { - "name": "Wien.gv.at Videos", - "description": "Videos der Stadt Wien", - "author": "Matthias Porges", - "authorUrl": "https://nether.at", - "sourceUrl": "https://github.com/Matti-Koopa/grayjay_wienat_videos/releases/download/current/WienAtVideosConfig.json", - "repositoryUrl": "https://github.com/Matti-Koopa/grayjay_wienat_videos/", - "scriptUrl": "./WienAtVideosScript.js", - "version": 1, - "iconUrl": "./Stadt_Wien_Wappen.png", - "id": "33713163-e1c2-46ba-b65e-3f1f08b82f16", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": ["www.wien.gv.at", "ms01.w24.at", "ms02.w24.at"], - "_tags": ["unofficial", "unmaintained", "broken"], - "scriptSignature": "ph0JkQ9xzV4rCy5R6OcptMuFZGoqj6cn9P/u638EehwFsD0UNEMxKNManuqSXokU+E4G6HhvTF+1bg1hFhYc6vvQan4wYWpUDDxfPsYdlFJovsszLMdSXAwd2u8z1sPDWpVmK/onlO8AQhcWzm5jIyMo5HwCAo6fqa0J1rPwc4a4YhMSaFqTEctgqEluPlFBxcoqMqjp4569Ug3XmgpqXnyJ6DAIL953yNYULv7omj7rk8zpLhxT3eZOz3853MEvZzqrvUsdiB9m9aI00WpBFKXPH2IyEHM/kzSKY6W+MWysWt+KZ4tPX83VD3uT37T1pynIk7FUBZ2mZXjCHKrFWw==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxoV9LKqeVZ+7aGirjUrMh0SXhu+qnWSCev4VQCEmjO0BR2sIkJGmflCHQBtt49qrQsBPiu+dWWGTiFPwg9T5E7+rLQ9ccOHWNKOX14o2+ZO+cad6p4xSzIcOHWCDNw1IbTLDYNa9E/cpp/Df6fIEzDqq5Ht8cus1vzmUKpRK4xkF/E2lTXb+i91a7UMEEv+VM63HmmHJnxrB69kbgmk7MqQWacAgE9Fp2y1MxYC5SLh0gZMH6OrLm4GjIPRqf/OLS7EqqfV9BhnstMCQWz2hsk+SUSvxQ34IkHqUN3tMNloamDx+/feFbUdh81yhI1kBV7Omem9b0XwMiu6SiCG6cQIDAQAB", - "_feeds": { - "commits": "https://github.com/Matti-Koopa/grayjay_wienat_videos/commits/master.atom", - "releases": "https://github.com/Matti-Koopa/grayjay_wienat_videos/releases.atom" + { + "_tags": [ + "unofficial", + "wip", + "sports", + "wrestling", + "entertainment" + ], + "name": "WWE Network", + "description": "WWE Network - Professional wrestling streaming service", + "author": "Bluscream, Cursor.AI", + "authorUrl": "https://github.com/Bluscream", + "platformUrl": "https://watch.wwe.com", + "sourceUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-wwe-network/main/config.json", + "repositoryUrl": "https://github.com/grayjay-sources/grayjay-source-wwe-network", + "scriptUrl": "./script.js", + "version": 1, + "iconUrl": "./icon.png", + "id": "wwe-network-streaming", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "wwe.com", + "www.wwe.com", + "watch.wwe.com", + "*.wwe.com" + ], + "supportedClaimTypes": [ + 3 + ], + "authentication": { + "loginUrl": "https://watch.wwe.com/signin", + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "domainHeadersToFind": { + "wwe.com": [] + } + }, + "settings": [], + "changelog": { + "1": [ + "Initial version: Basic plugin structure" + ] + }, + "_installUrl": "https://raw.githubusercontent.com/grayjay-sources/grayjay-source-wwe-network/main/config.json", + "_feeds": { + "commits": "https://github.com/grayjay-sources/grayjay-source-wwe-network/commits/main.atom", + "releases": "https://github.com/grayjay-sources/grayjay-source-wwe-network/releases.atom" + } }, - "_installUrl": "https://github.com/Matti-Koopa/grayjay_wienat_videos/releases/download/current/WienAtVideosConfig.json" - }, - { - "_tags": ["unofficial", "working", "nsfw"], - "name": "XNXX", - "description": "XNXX video platform plugin for Grayjay", - "platformUrl": "https://www.xnxx.com", - "author": "GreyPluginDev", - "authorUrl": "https://github.com/GreyPluginDev", - "sourceUrl": "https://grayjay-plugin-xnxx.pages.dev/XNXXConfig.json", - "repositoryUrl": "https://github.com/GreyPluginDev/grayjay-plugin-xnxx", - "scriptUrl": "./XNXXScript.js", - "version": 2, - "iconUrl": "./icon.png", - "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [".xn-app1.com", ".xnxx-cdn.com", ".xnxx.com"], - "_installUrl": "https://grayjay-plugin-xnxx.pages.dev/XNXXConfig.json", - "_feeds": { - "commits": "https://github.com/GreyPluginDev/grayjay-plugin-xnxx/commits/main.atom", - "releases": "https://github.com/GreyPluginDev/grayjay-plugin-xnxx/releases.atom" - } - }, - { - "_tags": ["unofficial", "working", "nsfw"], - "name": "XVideos", - "description": "XVideos video platform plugin for Grayjay", - "platformUrl": "https://www.xvideos.com", - "author": "GreyPluginDev", - "authorUrl": "https://github.com/GreyPluginDev", - "sourceUrl": "https://grayjay-plugin-xvideos.pages.dev/XVideosConfig.json", - "repositoryUrl": "https://github.com/GreyPluginDev/grayjay-plugin-xvideos", - "scriptUrl": "./XVideosScript.js", - "version": 3, - "iconUrl": "./icon.png", - "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567891", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowUrls": [".xv-app1.com", ".cdn77-pic.xvideos-cdn.com", ".xvideos.com"], - "_installUrl": "https://grayjay-plugin-xvideos.pages.dev/XVideosConfig.json", - "_feeds": { - "commits": "https://github.com/GreyPluginDev/grayjay-plugin-xvideos/commits/main.atom", - "releases": "https://github.com/GreyPluginDev/grayjay-plugin-xvideos/releases.atom" - } - }, - { - "_tags": ["unofficial", "untested"], - "name": "Xumo", - "description": "Xumo free streaming service with 100+ live TV channels", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-xumo", - "platformUrl": "https://xumo.com", - "sourceUrl": "", - "repositoryUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-xumo/raw/main/grayjay-plugin-xumo-config.json", - "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-xumo/raw/main/grayjay-plugin-xumo-script.js", - "version": 1, - "iconUrl": "https://play.xumo.com/favicons/favicon-196x196.png", - "id": "5c47e6ed-ecbe-4817-9443-5fb47ff684ec", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - ".xumo.com", - ".xumo.tv", - ".api.xumo.com", - ".image.xumo.com", - ".images.xumo.com", - ".valencia-app-mds.xumo.com", - ".valencia-app.xumo.com", - ".live-content.xumo.com", - ".live-content-cf.xumo.com", - ".wurl.tv", - ".cloudfront.net", - ".amagi.tv", - ".frequency.stream", - ".otteravision.com", - ".akamaized.net", - "raw.githubusercontent.com" - ], - "supportedClaimTypes": [1, 2, 16], - "enableLiveContent": true, - "authentication": null, - "settings": [], - "changelog": { - "1": ["Initial release", "Homepage support", "Partial playback support"] - } - }, - { - "name": "YouTube Music", - "description": "A new music service with official albums, singles, videos, remixes, live performances and more", - "author": "Tsunami014", - "authorUrl": "https://tsunami014.github.io", - "sourceUrl": "https://tsunami014.github.io/My-Grayjay-plugin/YTMusicConfig.json", - "repositoryUrl": "https://github.com/Tsunami014/My-Grayjay-plugin", - "scriptUrl": "./YTMusicScript.js", - "version": 2, - "iconUrl": "https://github.com/Tsunami014/Grayjay-plugins/blob/main/YTMusic.png?raw=true", - "id": "ff7fee60-202f-4aeb-a270-676862dd854b", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["music.youtube.com", "youtube.com", "www.youtube.com"], - "_tags": ["unofficial", "unmaintained", "unknown"], - "scriptSignature": "A8x7FalRJ5tR5I2vUATEUFjTU2yiBkyBHuUk6wjmS47zA9JAYPz7TvAspl9tGy1EMwn2BoksSDnvRwMtE4X2DmrdHZby4XU/o5L4h4svFqIYmgXkqfbZ9PffDo1Tc5o8neK9LUFkROEpkWunXo8aUhWN/UFFutl/tg7Hbxpf6IVARTe37VXMPrTmVMPzsqmsVyH8r+ji98h5Y+K6KeqSZXhr67qMsbEglB+H3LUkzp0JQaOyYUgw82g/YOZ8P8EG8WEdLFPRkFgXvW8PkX/fjSnbDBm/LlRkjS7l/J+nvv9WW3VGyPLXBBjPlsyu20eWaf17NF/7azX52ehHsIMQsi+FHHGA58F2YCLCtJW1HUuNqG9qukypYELgO14wsyyGnEeKQ4aLES2Jk7TrK/Hh2JjWRRzOEPKGWpZx4SKPcXqpPhhpfMYGC2r9XHPbunFqGsqvtD5+s41wfW2iNA+TGR+o25G6U5VsNGUL0jYO57mxn9iy0n/jjWC5HeuWNc5X", - "scriptPublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuNJJK3A0D4NhOqMZSrtEyl0JTYZxUVXqosKT7ZopuGvq+zT5LzinI8kxr+wjMHlmN1EjNkrBitkGQEvRDpXDxIpe4IiHZRkrbFDYvxsZA3h0N0sKn8pJzMHP/orFsBi0CUWck2ynyqIsHGqqF3ziHHZi4DUIMTvdaqGAwJIYo5dDS+T/L70CfyqZhJnGMAGGMGXW0JHbmtURDz0hgMWkz/eREkYbce8aYV31JBImTosFADLQ6JPSi3rDEZagwMO2ipvK3fGsDdQfJ1CsBNR/8xJLTsJYrNoMnqLvWZRkcEBpbYB+7N6aSOVO+GdJ4S93f25Deru7BkWM/wHrJtvGDT7/a9GxfFl08jU5f7JRchn+zoqyn7db1d7rtrNiW8a4X5MNqASSkzJPPZgMrqDlCilSYkkRYsUvkhmzRPUhxYG0mv69gOqKrpLoMX3Y1IkA8iG6SWNTKiCnsrKexb+pKoZWg/76jdB1UoChBqd1divqW1Te7VUvRir400D5tjg1AgMBAAE=", - "_feeds": { - "commits": "https://github.com/Tsunami014/My-Grayjay-plugin/commits/main.atom", - "releases": "https://github.com/Tsunami014/My-Grayjay-plugin/releases.atom" + { + "name": "Wien.gv.at Videos", + "description": "Videos der Stadt Wien", + "author": "Matthias Porges", + "authorUrl": "https://nether.at", + "sourceUrl": "https://github.com/Matti-Koopa/grayjay_wienat_videos/releases/download/current/WienAtVideosConfig.json", + "repositoryUrl": "https://github.com/Matti-Koopa/grayjay_wienat_videos/", + "scriptUrl": "./WienAtVideosScript.js", + "version": 1, + "iconUrl": "./Stadt_Wien_Wappen.png", + "id": "33713163-e1c2-46ba-b65e-3f1f08b82f16", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "www.wien.gv.at", + "ms01.w24.at", + "ms02.w24.at" + ], + "_tags": [ + "unofficial", + "unmaintained", + "broken" + ], + "scriptSignature": "ph0JkQ9xzV4rCy5R6OcptMuFZGoqj6cn9P/u638EehwFsD0UNEMxKNManuqSXokU+E4G6HhvTF+1bg1hFhYc6vvQan4wYWpUDDxfPsYdlFJovsszLMdSXAwd2u8z1sPDWpVmK/onlO8AQhcWzm5jIyMo5HwCAo6fqa0J1rPwc4a4YhMSaFqTEctgqEluPlFBxcoqMqjp4569Ug3XmgpqXnyJ6DAIL953yNYULv7omj7rk8zpLhxT3eZOz3853MEvZzqrvUsdiB9m9aI00WpBFKXPH2IyEHM/kzSKY6W+MWysWt+KZ4tPX83VD3uT37T1pynIk7FUBZ2mZXjCHKrFWw==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxoV9LKqeVZ+7aGirjUrMh0SXhu+qnWSCev4VQCEmjO0BR2sIkJGmflCHQBtt49qrQsBPiu+dWWGTiFPwg9T5E7+rLQ9ccOHWNKOX14o2+ZO+cad6p4xSzIcOHWCDNw1IbTLDYNa9E/cpp/Df6fIEzDqq5Ht8cus1vzmUKpRK4xkF/E2lTXb+i91a7UMEEv+VM63HmmHJnxrB69kbgmk7MqQWacAgE9Fp2y1MxYC5SLh0gZMH6OrLm4GjIPRqf/OLS7EqqfV9BhnstMCQWz2hsk+SUSvxQ34IkHqUN3tMNloamDx+/feFbUdh81yhI1kBV7Omem9b0XwMiu6SiCG6cQIDAQAB", + "_feeds": { + "commits": "https://github.com/Matti-Koopa/grayjay_wienat_videos/commits/master.atom", + "releases": "https://github.com/Matti-Koopa/grayjay_wienat_videos/releases.atom" + }, + "_installUrl": "https://github.com/Matti-Koopa/grayjay_wienat_videos/releases/download/current/WienAtVideosConfig.json" }, - "platformUrl": "https://music.youtube.com", - "authentication": { - "loginUrl": "https://accounts.google.com/ServiceLogin?ltmpl=music&service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fmusic.youtube.com%252F%26feature%3D__FEATURE__&hl=en", - "cookiesToFind": ["SIDCC"], - "headersToFind": ["Authorization"], - "cookiesExclOthers": false, - "completionUrl": "https://music.youtube.com/", - "domainHeadersToFind": { - ".youtube.com": ["authorization"] - } + { + "_tags": [ + "unofficial", + "working", + "nsfw" + ], + "name": "XNXX", + "description": "XNXX video platform plugin for Grayjay", + "platformUrl": "https://www.xnxx.com", + "author": "GreyPluginDev", + "authorUrl": "https://github.com/GreyPluginDev", + "sourceUrl": "https://grayjay-plugin-xnxx.pages.dev/XNXXConfig.json", + "repositoryUrl": "https://github.com/GreyPluginDev/grayjay-plugin-xnxx", + "scriptUrl": "./XNXXScript.js", + "version": 2, + "iconUrl": "./icon.png", + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + ".xn-app1.com", + ".xnxx-cdn.com", + ".xnxx.com" + ], + "_installUrl": "https://grayjay-plugin-xnxx.pages.dev/XNXXConfig.json", + "_feeds": { + "commits": "https://github.com/GreyPluginDev/grayjay-plugin-xnxx/commits/main.atom", + "releases": "https://github.com/GreyPluginDev/grayjay-plugin-xnxx/releases.atom" + } }, - "settings": [ - { - "variable": "header", - "name": "Loader", - "description": "Change which algorithm loads specific parts of the app. Faster algorithm may not have as much information (e.g. author name may be missing).\nThe `Everything` option loads everything, which is very slow.\nThe Most things loads at a medium speed and loads everything but the thumbnails on the authours, which is why it is recommended\nAnd Just the necesities loads really fast (~1 sec) but only loads the picture, the title of the song and half the time the author name. Other things will be missing", - "type": "Header" - }, - { - "variable": "HomePageType", - "name": "Home Page Loader", - "description": "Change the home page loader algorithm", - "type": "Dropdown", - "default": "1", - "options": [ - "Everything (slow)", - "Most things (recommended)", - "Just the necesities (fast)" - ] - }, - { - "variable": "SearchPageType", - "name": "Search Page Loader", - "description": "Change the search page loader algorithm (when you search for a song)", - "type": "Dropdown", - "default": "1", - "options": [ - "Everything (slow)", - "Most things (recommended)", - "Just the necesities (fast)" - ] - } - ], - "supportedClaimTypes": [3] - }, - { - "name": "Youtube", - "description": "One of the biggest video platforms owned by Google", - "author": "FUTO", - "authorUrl": "https://futo.org", - "sourceUrl": "https://plugins.grayjay.app/Youtube/YoutubeConfig.json", - "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/youtube", - "scriptUrl": "./YoutubeScript.js", - "version": 298, - "iconUrl": "./youtube.png", - "id": "35ae969a-a7db-11ed-afa1-0242ac120002", - "packages": ["Http", "Utilities", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "youtube.com", - "m.youtube.com", - "www.youtube.com", - "youtu.be", - "www.youtu.be", - "m.youtu.be", - "s.youtube.com", - "consent.youtube.com", - "suggestqueries-clients6.youtube.com", - "youtubei.googleapis.com", - "www.google.com", - "google.com", - "returnyoutubedislikeapi.com", - "sponsor.ajay.app", - ".googlevideo.com", - "jnn-pa.googleapis.com" - ], - "_tags": ["official", "maintained", "working"], - "scriptSignature": "L/pWKLJn2EmHB+9GnuO3JuzEKh704UGpmNBYEU34kLhBAmaD35Xz7ZHEQ+/kWr+ZY+d4NyCisHGBSY4kNMpx+pChcMmx1vw79YuWkuqc4V47hh26CMS+q8PWIdH+MIpe+OKChXLER+ofJFaxI1lssSWa1u3x3TVi00qPiW5bdvX4uFEG4kW+nXAo706T4kEA6BDXTx8Y9p8oDpJV8Lmylo28SJ50hGS8pnW2+H22qJp+uMGxYCAHpqA8V+2ZrjX/0Mu9keJuSU+3ZlEa9NburgNR1pIzo1gHHktt3JU9GMa6jD/Bjz2e4eNJg2tVGmfQfrGfMb9rbGiM21IZPQ3EOA==", - "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", - "_feeds": { - "commits": "https://gitlab.futo.org/videostreaming/plugins/youtube/-/commits/master?format=atom" + { + "_tags": [ + "unofficial", + "working", + "nsfw" + ], + "name": "XVideos", + "description": "XVideos video platform plugin for Grayjay", + "platformUrl": "https://www.xvideos.com", + "author": "GreyPluginDev", + "authorUrl": "https://github.com/GreyPluginDev", + "sourceUrl": "https://grayjay-plugin-xvideos.pages.dev/XVideosConfig.json", + "repositoryUrl": "https://github.com/GreyPluginDev/grayjay-plugin-xvideos", + "scriptUrl": "./XVideosScript.js", + "version": 3, + "iconUrl": "./icon.png", + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567891", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + ".xv-app1.com", + ".cdn77-pic.xvideos-cdn.com", + ".xvideos.com" + ], + "_installUrl": "https://grayjay-plugin-xvideos.pages.dev/XVideosConfig.json", + "_feeds": { + "commits": "https://github.com/GreyPluginDev/grayjay-plugin-xvideos/commits/main.atom", + "releases": "https://github.com/GreyPluginDev/grayjay-plugin-xvideos/releases.atom" + } }, - "platformUrl": "https://youtube.com", - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "completionUrl": "https://m.youtube.com/youtubei/v1/guide?*", - "loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620", - "headersToFind": ["authorization"], - "domainHeadersToFind": { - ".youtube.com": ["authorization"] - }, - "cookiesToFind": ["SIDCC"], - "cookiesExclOthers": false, - "loginWarning": "You must select a profile after login for authentication to complete.", - "loginWarnings": [ - { - "url": "[a-z]+://www.youtube\\.com\\/channel_switcher.*", - "text": "Please select which profile to use", - "details": "This affects which profile will be used for recommendations and history", - "once": true + { + "_tags": [ + "unofficial", + "untested" + ], + "name": "Xumo", + "description": "Xumo free streaming service with 100+ live TV channels", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-xumo", + "platformUrl": "https://xumo.com", + "sourceUrl": "", + "repositoryUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-xumo/raw/main/grayjay-plugin-xumo-config.json", + "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-xumo/raw/main/grayjay-plugin-xumo-script.js", + "version": 1, + "iconUrl": "https://play.xumo.com/favicons/favicon-196x196.png", + "id": "5c47e6ed-ecbe-4817-9443-5fb47ff684ec", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + ".xumo.com", + ".xumo.tv", + ".api.xumo.com", + ".image.xumo.com", + ".images.xumo.com", + ".valencia-app-mds.xumo.com", + ".valencia-app.xumo.com", + ".live-content.xumo.com", + ".live-content-cf.xumo.com", + ".wurl.tv", + ".cloudfront.net", + ".amagi.tv", + ".frequency.stream", + ".otteravision.com", + ".akamaized.net", + "raw.githubusercontent.com" + ], + "supportedClaimTypes": [ + 1, + 2, + 16 + ], + "enableLiveContent": true, + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial release", + "Homepage support", + "Partial playback support" + ] } - ] }, - "settings": [ - { - "variable": "authChannels", - "name": "Use Login for Channels", - "description": "Use authenticated client for channel (videos) requests. (eg. for member videos)", - "type": "Boolean", - "default": "false", - "warningDialog": "Only enable this if you need it for channel membership content.\n\nTry disabling if you have issues when loading channels." - }, - { - "variable": "authDetails", - "name": "Use Login for video details", - "description": "Use authenticated client for video requests. (eg. for member videos)", - "type": "Boolean", - "default": "false", - "warningDialog": "Only enable this if you need it for channel membership content.\n\nTry disabling if you have issues when loading videos and comments." - }, - { - "variable": "allowLoginFallback", - "name": "Allow Loginfallback", - "description": "Allow usage of login in case where login required (eg. bot check)", - "type": "Boolean", - "default": "true" - }, - { - "variable": "youtubeActivity", - "name": "Provide Youtube Activity", - "description": "Use authenticated client for playback, telling Youtube what you watched.", - "type": "Boolean", - "default": "false" - }, - { - "variable": "channelRssOnly", - "name": "Only Use Channel RSS Feeds (Inferior)", - "description": "Exclusively use channel RSS feeds for channel content, may result in inferior results, and only recent videos. But may be faster and reduce rate limiting.", - "type": "Boolean", - "default": "false", - "warningDialog": "Using RSS feeds will have inferior results, and may add shorts in the channel videos and subscriptions.\n\nOld videos may also be unavailable." - }, - { - "variable": "allowAgeRestricted", - "name": "Allow Age Restricted", - "description": "Allow watching of age restricted videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allowControversialRestricted", - "name": "Allow Controversial Restricted", - "description": "Allow watching of controversial restricted videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allowMemberContent", - "name": "Allow Member Content", - "description": "Allow listing of member content (will prefix \"[MEMBER]\")", - "type": "Boolean", - "default": "false" - }, - { - "variable": "useAndroid", - "name": "Enable Android Streams", - "description": "Attempts to use Android streams if available, may be smoother experience. May not always be available.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "useiOS", - "name": "Enable iOS Streams", - "description": "Attempts to use iOS streams if available, may be smoother experience. May not always be available.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "useUMP", - "name": "Force UMP Streams", - "description": "Force usage of implementation of UMP. May be unstable and cost more performance.", - "type": "Boolean", - "default": "false" - }, - { - "variable": "useAggressiveUMPRecovery", - "name": "Use Aggressive UMP Recovery", - "description": "This feature allows UMP to refetch the entire page to recover from ip changes and such.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "showVerboseToasts", - "name": "Show Verbose Messages", - "description": "Show messages that give more information about what is happening, might be considered annoying for some.", - "type": "Boolean", - "default": "false" - }, - { - "variable": "youtubeDislikerHeader", - "name": "Return Youtube Dislike", - "description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)", - "type": "Header" - }, - { - "variable": "youtubeDislikes", - "name": "Enable", - "description": "Use Return YoutubeDislike to provide dislikes for videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "sponsorBlockHeader", - "name": "SponsorBlock", - "description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.", - "type": "Header" - }, - { - "variable": "sponsorBlock", - "name": "Enable", - "description": "If enabled support creators in other ways.\nDo not freeload.", - "type": "Boolean", - "default": "false", - "warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways." - }, - { - "variable": "sponsorBlockNoVotes", - "name": "Allow No Vote Segments", - "description": "Allow segments without votes, this may cause questionable video skips.", - "type": "Boolean", - "default": "false", - "dependency": "sponsorBlock" - }, - { - "variable": "sponsorBlockCat_Sponsor", - "name": "Skip Sponsors", - "description": "Skip segments labeled as sponsors", - "type": "Dropdown", - "default": "1", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "sponsorBlockCat_Intro", - "name": "Skip Intros", - "description": "Skip segments labeled as intros", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "sponsorBlockCat_Outro", - "name": "Skip Outros", - "description": "Skip segments labeled as outros", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "sponsorBlockCat_Self", - "name": "Skip Self-Promos", - "description": "Skip segments labeled as self-promos", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "sponsorBlockCat_Offtopic", - "name": "Skip Music-Offtopic", - "description": "Skip segments labeled as music-offtopic", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "sponsorBlockCat_Preview", - "name": "Skip Preview", - "description": "Skip segments labeled as previews", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "sponsorBlockCat_Filler", - "name": "Skip Fillers", - "description": "Skip segments labeled as fillers", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["No skip", "Manual", "Automatic"] - }, - { - "variable": "advanced", - "name": "Advanced", - "description": "These are settings not intended for most users, but may help development or power users.", - "type": "Header" - }, - { - "variable": "allow_av1", - "name": "Allow AV1", - "description": "Adds AV1 option when available, MAY NOT BE SUPPORTED YET!", - "type": "Boolean", - "default": "false", - "warningDialog": "AV1 support might not work yet, this allows you to return the stream even if its not supported (for testing).\n\nAV1 exclusively works on UMP for now." - }, - { - "variable": "notify_cipher", - "name": "Show Cipher every Video", - "description": "Shows a toast with the cipher when loading a video", - "type": "Boolean", - "default": "false" - }, - { - "variable": "notify_bg", - "name": "Show every new Botguard Token", - "description": "Shows a toast with the botguard token used changed", - "type": "Boolean", - "default": "false" - }, - { - "variable": "notify_ump_recovery", - "name": "Show every time UMP disconnects", - "description": "Shows a toast whenever UMP goes into a reconnection mode", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allow_ump_plugin_reloads", - "name": "Allow UMP to reload plugin", - "description": "Allows the UMP protocol to reload a plugin if it deems required and supported.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "fallback_home_trending", - "name": "Fallback to Trending if Home unavailable", - "description": "Will fallback to Trending if home is unavailable (eg. no login)", - "type": "Boolean", - "default": "true" - }, - { - "variable": "detect_session_pot", - "name": "Detect Session POT", - "description": "Try to detect if a session or video pot is required, from our experience this can backfire.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "use_html5_livestreams", - "name": "Use HTML5 Livestreams instead of iOS", - "description": "We recently found that iOS livestreams sometimes misbehave, html5 sometimes didnt have that issue", - "type": "Boolean", - "default": "true" - }, - { - "variable": "use_html5_livestreams_pot", - "name": "Use HTML5 Livestreams POT Tokens", - "description": "Adds POT to livestream urls", - "type": "Boolean", - "default": "true" - } - ], - "supportedClaimTypes": [2], - "subscriptionRateLimit": 140, - "captcha": { - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "captchaUrl": null, - "cookiesToFind": ["GOOGLE_ABUSE_EXEMPTION"] + { + "name": "YouTube Music", + "description": "A new music service with official albums, singles, videos, remixes, live performances and more", + "author": "Tsunami014", + "authorUrl": "https://tsunami014.github.io", + "sourceUrl": "https://tsunami014.github.io/My-Grayjay-plugin/YTMusicConfig.json", + "repositoryUrl": "https://github.com/Tsunami014/My-Grayjay-plugin", + "scriptUrl": "./YTMusicScript.js", + "version": 2, + "iconUrl": "https://github.com/Tsunami014/Grayjay-plugins/blob/main/YTMusic.png?raw=true", + "id": "ff7fee60-202f-4aeb-a270-676862dd854b", + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "music.youtube.com", + "youtube.com", + "www.youtube.com" + ], + "_tags": [ + "unofficial", + "unmaintained", + "unknown" + ], + "scriptSignature": "A8x7FalRJ5tR5I2vUATEUFjTU2yiBkyBHuUk6wjmS47zA9JAYPz7TvAspl9tGy1EMwn2BoksSDnvRwMtE4X2DmrdHZby4XU/o5L4h4svFqIYmgXkqfbZ9PffDo1Tc5o8neK9LUFkROEpkWunXo8aUhWN/UFFutl/tg7Hbxpf6IVARTe37VXMPrTmVMPzsqmsVyH8r+ji98h5Y+K6KeqSZXhr67qMsbEglB+H3LUkzp0JQaOyYUgw82g/YOZ8P8EG8WEdLFPRkFgXvW8PkX/fjSnbDBm/LlRkjS7l/J+nvv9WW3VGyPLXBBjPlsyu20eWaf17NF/7azX52ehHsIMQsi+FHHGA58F2YCLCtJW1HUuNqG9qukypYELgO14wsyyGnEeKQ4aLES2Jk7TrK/Hh2JjWRRzOEPKGWpZx4SKPcXqpPhhpfMYGC2r9XHPbunFqGsqvtD5+s41wfW2iNA+TGR+o25G6U5VsNGUL0jYO57mxn9iy0n/jjWC5HeuWNc5X", + "scriptPublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuNJJK3A0D4NhOqMZSrtEyl0JTYZxUVXqosKT7ZopuGvq+zT5LzinI8kxr+wjMHlmN1EjNkrBitkGQEvRDpXDxIpe4IiHZRkrbFDYvxsZA3h0N0sKn8pJzMHP/orFsBi0CUWck2ynyqIsHGqqF3ziHHZi4DUIMTvdaqGAwJIYo5dDS+T/L70CfyqZhJnGMAGGMGXW0JHbmtURDz0hgMWkz/eREkYbce8aYV31JBImTosFADLQ6JPSi3rDEZagwMO2ipvK3fGsDdQfJ1CsBNR/8xJLTsJYrNoMnqLvWZRkcEBpbYB+7N6aSOVO+GdJ4S93f25Deru7BkWM/wHrJtvGDT7/a9GxfFl08jU5f7JRchn+zoqyn7db1d7rtrNiW8a4X5MNqASSkzJPPZgMrqDlCilSYkkRYsUvkhmzRPUhxYG0mv69gOqKrpLoMX3Y1IkA8iG6SWNTKiCnsrKexb+pKoZWg/76jdB1UoChBqd1divqW1Te7VUvRir400D5tjg1AgMBAAE=", + "_feeds": { + "commits": "https://github.com/Tsunami014/My-Grayjay-plugin/commits/main.atom", + "releases": "https://github.com/Tsunami014/My-Grayjay-plugin/releases.atom" + }, + "platformUrl": "https://music.youtube.com", + "authentication": { + "loginUrl": "https://accounts.google.com/ServiceLogin?ltmpl=music&service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fmusic.youtube.com%252F%26feature%3D__FEATURE__&hl=en", + "cookiesToFind": [ + "SIDCC" + ], + "headersToFind": [ + "Authorization" + ], + "cookiesExclOthers": false, + "completionUrl": "https://music.youtube.com/", + "domainHeadersToFind": { + ".youtube.com": [ + "authorization" + ] + } + }, + "settings": [ + { + "variable": "header", + "name": "Loader", + "description": "Change which algorithm loads specific parts of the app. Faster algorithm may not have as much information (e.g. author name may be missing).\nThe `Everything` option loads everything, which is very slow.\nThe Most things loads at a medium speed and loads everything but the thumbnails on the authours, which is why it is recommended\nAnd Just the necesities loads really fast (~1 sec) but only loads the picture, the title of the song and half the time the author name. Other things will be missing", + "type": "Header" + }, + { + "variable": "HomePageType", + "name": "Home Page Loader", + "description": "Change the home page loader algorithm", + "type": "Dropdown", + "default": "1", + "options": [ + "Everything (slow)", + "Most things (recommended)", + "Just the necesities (fast)" + ] + }, + { + "variable": "SearchPageType", + "name": "Search Page Loader", + "description": "Change the search page loader algorithm (when you search for a song)", + "type": "Dropdown", + "default": "1", + "options": [ + "Everything (slow)", + "Most things (recommended)", + "Just the necesities (fast)" + ] + } + ], + "supportedClaimTypes": [ + 3 + ] }, - "primaryClaimFieldType": 1 - }, - { - "name": "Youtube SB", - "description": "Fork with full SponsorBlock", - "author": "pantsufan", - "authorUrl": "https://github.com/pantsufan/grayspon", - "sourceUrl": "https://pantsufan.github.io/grayspon/YoutubeConfig.json", - "repositoryUrl": "https://github.com/pantsufan/grayspon", - "scriptUrl": "https://pantsufan.github.io/grayspon/YoutubeScript.js", - "version": 168, - "iconUrl": "https://pantsufan.github.io/grayspon/youtube.png", - "id": "73b80cf3-8fa5-4969-a5a0-03713d80aeb4", - "packages": ["Http", "Utilities", "DOMParser"], - "allowEval": false, - "allowUrls": [ - "youtube.com", - "m.youtube.com", - "www.youtube.com", - "youtu.be", - "www.youtu.be", - "m.youtu.be", - "s.youtube.com", - "consent.youtube.com", - "suggestqueries-clients6.youtube.com", - "youtubei.googleapis.com", - "www.google.com", - "google.com", - "returnyoutubedislikeapi.com", - "sponsor.ajay.app" - ], - "_tags": ["unofficial", "unmaintained", "unknown"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/pantsufan/grayspon/commits/main.atom", - "releases": "https://github.com/pantsufan/grayspon/releases.atom" + { + "name": "Youtube", + "description": "One of the biggest video platforms owned by Google", + "author": "FUTO", + "authorUrl": "https://futo.org", + "sourceUrl": "https://plugins.grayjay.app/Youtube/YoutubeConfig.json", + "repositoryUrl": "https://gitlab.futo.org/videostreaming/plugins/youtube", + "scriptUrl": "./YoutubeScript.js", + "version": 298, + "iconUrl": "./youtube.png", + "id": "35ae969a-a7db-11ed-afa1-0242ac120002", + "packages": [ + "Http", + "Utilities", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "youtube.com", + "m.youtube.com", + "www.youtube.com", + "youtu.be", + "www.youtu.be", + "m.youtu.be", + "s.youtube.com", + "consent.youtube.com", + "suggestqueries-clients6.youtube.com", + "youtubei.googleapis.com", + "www.google.com", + "google.com", + "returnyoutubedislikeapi.com", + "sponsor.ajay.app", + ".googlevideo.com", + "jnn-pa.googleapis.com" + ], + "_tags": [ + "official", + "maintained", + "working" + ], + "scriptSignature": "L/pWKLJn2EmHB+9GnuO3JuzEKh704UGpmNBYEU34kLhBAmaD35Xz7ZHEQ+/kWr+ZY+d4NyCisHGBSY4kNMpx+pChcMmx1vw79YuWkuqc4V47hh26CMS+q8PWIdH+MIpe+OKChXLER+ofJFaxI1lssSWa1u3x3TVi00qPiW5bdvX4uFEG4kW+nXAo706T4kEA6BDXTx8Y9p8oDpJV8Lmylo28SJ50hGS8pnW2+H22qJp+uMGxYCAHpqA8V+2ZrjX/0Mu9keJuSU+3ZlEa9NburgNR1pIzo1gHHktt3JU9GMa6jD/Bjz2e4eNJg2tVGmfQfrGfMb9rbGiM21IZPQ3EOA==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoFJU4AReDyUnSQI9A99UjLCwkY8OH+1o8cdtf2EjSb+fO2qmP8MGMTAvfvgmq5d2QBJE2XHRkRO3JKcTlcc1j0WlOlU8P9W272DYCeX6oYaavpKNqGKoGEuodp9wtiyNwyH46++JfpU/uIUacZbZKkHv9gIGchmNvpKYZQjFd/8pUqXGpcXZP54tGSC9PLcY+5TozZThK7Oy1+3YEf1bZ44UinRYYATbLk/wNuAfsupvlt6nxZOcJhABhdo9V+gY0FE6Ayg5+1cd1noWhnRtLF+sPdEr3z8Nt15JEK5a/524t25FMhwz8yKxlGW5qW3QLJHSUgLQncL6a1zlZ1s8QIDAQAB", + "_feeds": { + "commits": "https://gitlab.futo.org/videostreaming/plugins/youtube/-/commits/master?format=atom" + }, + "platformUrl": "https://youtube.com", + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "completionUrl": "https://m.youtube.com/youtubei/v1/guide?*", + "loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620", + "headersToFind": [ + "authorization" + ], + "domainHeadersToFind": { + ".youtube.com": [ + "authorization" + ] + }, + "cookiesToFind": [ + "SIDCC" + ], + "cookiesExclOthers": false, + "loginWarning": "You must select a profile after login for authentication to complete.", + "loginWarnings": [ + { + "url": "[a-z]+://www.youtube\\.com\\/channel_switcher.*", + "text": "Please select which profile to use", + "details": "This affects which profile will be used for recommendations and history", + "once": true + } + ] + }, + "settings": [ + { + "variable": "authChannels", + "name": "Use Login for Channels", + "description": "Use authenticated client for channel (videos) requests. (eg. for member videos)", + "type": "Boolean", + "default": "false", + "warningDialog": "Only enable this if you need it for channel membership content.\n\nTry disabling if you have issues when loading channels." + }, + { + "variable": "authDetails", + "name": "Use Login for video details", + "description": "Use authenticated client for video requests. (eg. for member videos)", + "type": "Boolean", + "default": "false", + "warningDialog": "Only enable this if you need it for channel membership content.\n\nTry disabling if you have issues when loading videos and comments." + }, + { + "variable": "allowLoginFallback", + "name": "Allow Loginfallback", + "description": "Allow usage of login in case where login required (eg. bot check)", + "type": "Boolean", + "default": "true" + }, + { + "variable": "youtubeActivity", + "name": "Provide Youtube Activity", + "description": "Use authenticated client for playback, telling Youtube what you watched.", + "type": "Boolean", + "default": "false" + }, + { + "variable": "channelRssOnly", + "name": "Only Use Channel RSS Feeds (Inferior)", + "description": "Exclusively use channel RSS feeds for channel content, may result in inferior results, and only recent videos. But may be faster and reduce rate limiting.", + "type": "Boolean", + "default": "false", + "warningDialog": "Using RSS feeds will have inferior results, and may add shorts in the channel videos and subscriptions.\n\nOld videos may also be unavailable." + }, + { + "variable": "allowAgeRestricted", + "name": "Allow Age Restricted", + "description": "Allow watching of age restricted videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allowControversialRestricted", + "name": "Allow Controversial Restricted", + "description": "Allow watching of controversial restricted videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allowMemberContent", + "name": "Allow Member Content", + "description": "Allow listing of member content (will prefix \"[MEMBER]\")", + "type": "Boolean", + "default": "false" + }, + { + "variable": "useAndroid", + "name": "Enable Android Streams", + "description": "Attempts to use Android streams if available, may be smoother experience. May not always be available.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "useiOS", + "name": "Enable iOS Streams", + "description": "Attempts to use iOS streams if available, may be smoother experience. May not always be available.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "useUMP", + "name": "Force UMP Streams", + "description": "Force usage of implementation of UMP. May be unstable and cost more performance.", + "type": "Boolean", + "default": "false" + }, + { + "variable": "useAggressiveUMPRecovery", + "name": "Use Aggressive UMP Recovery", + "description": "This feature allows UMP to refetch the entire page to recover from ip changes and such.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "showVerboseToasts", + "name": "Show Verbose Messages", + "description": "Show messages that give more information about what is happening, might be considered annoying for some.", + "type": "Boolean", + "default": "false" + }, + { + "variable": "youtubeDislikerHeader", + "name": "Return Youtube Dislike", + "description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)", + "type": "Header" + }, + { + "variable": "youtubeDislikes", + "name": "Enable", + "description": "Use Return YoutubeDislike to provide dislikes for videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "sponsorBlockHeader", + "name": "SponsorBlock", + "description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.", + "type": "Header" + }, + { + "variable": "sponsorBlock", + "name": "Enable", + "description": "If enabled support creators in other ways.\nDo not freeload.", + "type": "Boolean", + "default": "false", + "warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways." + }, + { + "variable": "sponsorBlockNoVotes", + "name": "Allow No Vote Segments", + "description": "Allow segments without votes, this may cause questionable video skips.", + "type": "Boolean", + "default": "false", + "dependency": "sponsorBlock" + }, + { + "variable": "sponsorBlockCat_Sponsor", + "name": "Skip Sponsors", + "description": "Skip segments labeled as sponsors", + "type": "Dropdown", + "default": "1", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "sponsorBlockCat_Intro", + "name": "Skip Intros", + "description": "Skip segments labeled as intros", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "sponsorBlockCat_Outro", + "name": "Skip Outros", + "description": "Skip segments labeled as outros", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "sponsorBlockCat_Self", + "name": "Skip Self-Promos", + "description": "Skip segments labeled as self-promos", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "sponsorBlockCat_Offtopic", + "name": "Skip Music-Offtopic", + "description": "Skip segments labeled as music-offtopic", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "sponsorBlockCat_Preview", + "name": "Skip Preview", + "description": "Skip segments labeled as previews", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "sponsorBlockCat_Filler", + "name": "Skip Fillers", + "description": "Skip segments labeled as fillers", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "No skip", + "Manual", + "Automatic" + ] + }, + { + "variable": "advanced", + "name": "Advanced", + "description": "These are settings not intended for most users, but may help development or power users.", + "type": "Header" + }, + { + "variable": "allow_av1", + "name": "Allow AV1", + "description": "Adds AV1 option when available, MAY NOT BE SUPPORTED YET!", + "type": "Boolean", + "default": "false", + "warningDialog": "AV1 support might not work yet, this allows you to return the stream even if its not supported (for testing).\n\nAV1 exclusively works on UMP for now." + }, + { + "variable": "notify_cipher", + "name": "Show Cipher every Video", + "description": "Shows a toast with the cipher when loading a video", + "type": "Boolean", + "default": "false" + }, + { + "variable": "notify_bg", + "name": "Show every new Botguard Token", + "description": "Shows a toast with the botguard token used changed", + "type": "Boolean", + "default": "false" + }, + { + "variable": "notify_ump_recovery", + "name": "Show every time UMP disconnects", + "description": "Shows a toast whenever UMP goes into a reconnection mode", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allow_ump_plugin_reloads", + "name": "Allow UMP to reload plugin", + "description": "Allows the UMP protocol to reload a plugin if it deems required and supported.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "fallback_home_trending", + "name": "Fallback to Trending if Home unavailable", + "description": "Will fallback to Trending if home is unavailable (eg. no login)", + "type": "Boolean", + "default": "true" + }, + { + "variable": "detect_session_pot", + "name": "Detect Session POT", + "description": "Try to detect if a session or video pot is required, from our experience this can backfire.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "use_html5_livestreams", + "name": "Use HTML5 Livestreams instead of iOS", + "description": "We recently found that iOS livestreams sometimes misbehave, html5 sometimes didnt have that issue", + "type": "Boolean", + "default": "true" + }, + { + "variable": "use_html5_livestreams_pot", + "name": "Use HTML5 Livestreams POT Tokens", + "description": "Adds POT to livestream urls", + "type": "Boolean", + "default": "true" + } + ], + "supportedClaimTypes": [ + 2 + ], + "subscriptionRateLimit": 140, + "captcha": { + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "captchaUrl": null, + "cookiesToFind": [ + "GOOGLE_ABUSE_EXEMPTION" + ] + }, + "primaryClaimFieldType": 1 }, - "platformUrl": "https://youtube.com", - "authentication": { - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "completionUrl": "https://m.youtube.com/youtubei/v1/guide?*", - "loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620", - "headersToFind": ["authorization"], - "domainHeadersToFind": { - ".youtube.com": ["authorization"] - }, - "cookiesToFind": ["SIDCC"], - "cookiesExclOthers": false, - "loginWarning": "You must select a profile after login for authentication to complete." + { + "name": "Youtube SB", + "description": "Fork with full SponsorBlock", + "author": "pantsufan", + "authorUrl": "https://github.com/pantsufan/grayspon", + "sourceUrl": "https://pantsufan.github.io/grayspon/YoutubeConfig.json", + "repositoryUrl": "https://github.com/pantsufan/grayspon", + "scriptUrl": "https://pantsufan.github.io/grayspon/YoutubeScript.js", + "version": 168, + "iconUrl": "https://pantsufan.github.io/grayspon/youtube.png", + "id": "73b80cf3-8fa5-4969-a5a0-03713d80aeb4", + "packages": [ + "Http", + "Utilities", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + "youtube.com", + "m.youtube.com", + "www.youtube.com", + "youtu.be", + "www.youtu.be", + "m.youtu.be", + "s.youtube.com", + "consent.youtube.com", + "suggestqueries-clients6.youtube.com", + "youtubei.googleapis.com", + "www.google.com", + "google.com", + "returnyoutubedislikeapi.com", + "sponsor.ajay.app" + ], + "_tags": [ + "unofficial", + "unmaintained", + "unknown" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/pantsufan/grayspon/commits/main.atom", + "releases": "https://github.com/pantsufan/grayspon/releases.atom" + }, + "platformUrl": "https://youtube.com", + "authentication": { + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "completionUrl": "https://m.youtube.com/youtubei/v1/guide?*", + "loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620", + "headersToFind": [ + "authorization" + ], + "domainHeadersToFind": { + ".youtube.com": [ + "authorization" + ] + }, + "cookiesToFind": [ + "SIDCC" + ], + "cookiesExclOthers": false, + "loginWarning": "You must select a profile after login for authentication to complete." + }, + "settings": [ + { + "variable": "authChannels", + "name": "Use Login for Channels", + "description": "Use authenticated client for channel (videos) requests. (eg. for member videos)", + "type": "Boolean", + "default": "false" + }, + { + "variable": "authDetails", + "name": "Use Login for video details", + "description": "Use authenticated client for video requests. (eg. for member videos)", + "type": "Boolean", + "default": "false" + }, + { + "variable": "youtubeActivity", + "name": "Provide Youtube Activity", + "description": "Use authenticated client for playback, telling Youtube what you watched.", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allowAgeRestricted", + "name": "Allow Age Restricted", + "description": "Allow watching of age restricted videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allowControversialRestricted", + "name": "Allow Controversial Restricted", + "description": "Allow watching of controversial restricted videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "youtubeDislikerHeader", + "name": "Return Youtube Dislike", + "description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)", + "type": "Header" + }, + { + "variable": "youtubeDislikes", + "name": "Enable", + "description": "Use Return YoutubeDislike to provide dislikes for videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "sponsorBlockHeader", + "name": "SponsorBlock", + "description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.", + "type": "Header" + }, + { + "variable": "sponsorBlock", + "name": "Enable", + "description": "If enabled support creators in other ways.\nDo not freeload.", + "type": "Boolean", + "default": "false", + "warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways." + }, + { + "variable": "sponsorBlockNoVotes", + "name": "Allow No Vote Segments", + "description": "Allow segments without votes, this may cause questionable video skips.", + "type": "Boolean", + "default": "false", + "dependency": "sponsorBlock" + }, + { + "variable": "sponsorBlockType", + "name": "Skip Type", + "description": "Change skip behavior for SponsorBlock. Automatic may cause unexpected skipping for some users, and thus not recommended.", + "type": "Dropdown", + "default": "0", + "dependency": "sponsorBlock", + "options": [ + "Manual", + "Automatic" + ] + } + ], + "supportedClaimTypes": [ + 2 + ], + "subscriptionRateLimit": 140, + "captcha": { + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "captchaUrl": null, + "cookiesToFind": [ + "GOOGLE_ABUSE_EXEMPTION" + ] + }, + "primaryClaimFieldType": 1, + "_installUrl": "https://pantsufan.github.io/grayspon/YoutubeConfig.json" }, - "settings": [ - { - "variable": "authChannels", - "name": "Use Login for Channels", - "description": "Use authenticated client for channel (videos) requests. (eg. for member videos)", - "type": "Boolean", - "default": "false" - }, - { - "variable": "authDetails", - "name": "Use Login for video details", - "description": "Use authenticated client for video requests. (eg. for member videos)", - "type": "Boolean", - "default": "false" - }, - { - "variable": "youtubeActivity", - "name": "Provide Youtube Activity", - "description": "Use authenticated client for playback, telling Youtube what you watched.", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allowAgeRestricted", - "name": "Allow Age Restricted", - "description": "Allow watching of age restricted videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allowControversialRestricted", - "name": "Allow Controversial Restricted", - "description": "Allow watching of controversial restricted videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "youtubeDislikerHeader", - "name": "Return Youtube Dislike", - "description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)", - "type": "Header" - }, - { - "variable": "youtubeDislikes", - "name": "Enable", - "description": "Use Return YoutubeDislike to provide dislikes for videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "sponsorBlockHeader", - "name": "SponsorBlock", - "description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.", - "type": "Header" - }, - { - "variable": "sponsorBlock", - "name": "Enable", - "description": "If enabled support creators in other ways.\nDo not freeload.", - "type": "Boolean", - "default": "false", - "warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways." - }, - { - "variable": "sponsorBlockNoVotes", - "name": "Allow No Vote Segments", - "description": "Allow segments without votes, this may cause questionable video skips.", - "type": "Boolean", - "default": "false", - "dependency": "sponsorBlock" - }, - { - "variable": "sponsorBlockType", - "name": "Skip Type", - "description": "Change skip behavior for SponsorBlock. Automatic may cause unexpected skipping for some users, and thus not recommended.", - "type": "Dropdown", - "default": "0", - "dependency": "sponsorBlock", - "options": ["Manual", "Automatic"] - } - ], - "supportedClaimTypes": [2], - "subscriptionRateLimit": 140, - "captcha": { - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "captchaUrl": null, - "cookiesToFind": ["GOOGLE_ABUSE_EXEMPTION"] + { + "name": "Youtube with DeArrow", + "description": "One of the biggest video platforms owned by Google - now with DeArrow support (Requires a custom GrayJay version)", + "author": "netux", + "authorUrl": "https://futo.org", + "sourceUrl": "https://github.com/netux/grayjay-source-youtube/releases/latest/download/YoutubeConfig.json", + "repositoryUrl": "https://github.com/netux/grayjay-source-youtube/tree/with-dearrow", + "scriptUrl": "./YoutubeScript.js", + "version": 168, + "iconUrl": "https://raw.githubusercontent.com/netux/grayjay-source-youtube/52deb90661442a29767b755645d86b9965cc7da5/youtube_dearrow.png", + "id": "35ae969a-a7db-11ed-afa1-0242ac120002", + "packages": [ + "Http", + "Utilities" + ], + "allowEval": false, + "allowUrls": [ + "youtube.com", + "m.youtube.com", + "www.youtube.com", + "youtu.be", + "www.youtu.be", + "m.youtu.be", + "s.youtube.com", + "consent.youtube.com", + "suggestqueries-clients6.youtube.com", + "youtubei.googleapis.com", + "www.google.com", + "google.com", + "returnyoutubedislikeapi.com", + "sponsor.ajay.app" + ], + "_tags": [ + "unofficial", + "unmaintained", + "unknown" + ], + "scriptSignature": "", + "scriptPublicKey": "", + "_feeds": { + "commits": "https://github.com/netux/grayjay-source-youtube/commits/with-dearrow.atom", + "releases": "https://github.com/netux/grayjay-source-youtube/releases.atom" + }, + "platformUrl": "https://youtube.com", + "authentication": { + "loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620", + "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", + "cookiesToFind": [ + "SIDCC" + ], + "headersToFind": [ + "authorization" + ], + "cookiesExclOthers": false, + "completionUrl": "https://m.youtube.com/youtubei/v1/guide?*", + "domainHeadersToFind": { + ".youtube.com": [ + "authorization" + ] + }, + "loginWarning": "You must select a profile after login for authentication to complete." + }, + "settings": [ + { + "variable": "authChannels", + "name": "Use Login for Channels", + "description": "Use authenticated client for channel (videos) requests. (eg. for member videos)", + "type": "Boolean", + "default": "false" + }, + { + "variable": "authDetails", + "name": "Use Login for video details", + "description": "Use authenticated client for video requests. (eg. for member videos)", + "type": "Boolean", + "default": "false" + }, + { + "variable": "youtubeActivity", + "name": "Provide Youtube Activity", + "description": "Use authenticated client for playback, telling Youtube what you watched.", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allowAgeRestricted", + "name": "Allow Age Restricted", + "description": "Allow watching of age restricted videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "allowControversialRestricted", + "name": "Allow Controversial Restricted", + "description": "Allow watching of controversial restricted videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "youtubeDislikerHeader", + "name": "Return Youtube Dislike", + "description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)", + "type": "Header" + }, + { + "variable": "youtubeDislikes", + "name": "Enable", + "description": "Use Return YoutubeDislike to provide dislikes for videos", + "type": "Boolean", + "default": "false" + }, + { + "variable": "sponsorBlockHeader", + "name": "SponsorBlock", + "description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.", + "type": "Header" + }, + { + "variable": "sponsorBlock", + "name": "Enable", + "description": "If enabled support creators in other ways.\nDo not freeload.", + "type": "Boolean", + "default": "false", + "warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways." + }, + { + "variable": "sponsorBlockNoVotes", + "name": "Allow No Vote Segments", + "description": "Allow segments without votes, this may cause questionable video skips.", + "type": "Boolean", + "default": "false", + "dependency": "sponsorBlock" + }, + { + "variable": "sponsorBlockType", + "name": "Skip Type", + "description": "Change skip behavior for SponsorBlock. Automatic may cause unexpected skipping for some users, and thus not recommended.", + "type": "Dropdown", + "default": "0", + "options": [ + "Manual", + "Automatic" + ], + "dependency": "sponsorBlock" + }, + { + "variable": "deArrowHeader", + "name": "DeArrow", + "description": "DeArrow replaces video titles and thumbnails with better ones, which are more accurate and less prone to sensationalism (Using https://dearrow.ajay.app)", + "type": "Header" + }, + { + "variable": "deArrowEnabledTitles", + "name": "Enable on Titles", + "description": "If enabled, replace titles with ones coming from DeArrow.", + "type": "Boolean", + "default": "true" + }, + { + "variable": "deArrowEnabledThumbnails", + "name": "Enable on Thumbnails", + "description": "If enabled, replace thumbnails with ones coming from DeArrow.", + "type": "Boolean", + "default": "true" + } + ], + "supportedClaimTypes": [ + 2 + ], + "subscriptionRateLimit": 140, + "captcha": { + "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", + "captchaUrl": null, + "cookiesToFind": [ + "GOOGLE_ABUSE_EXEMPTION" + ] + }, + "primaryClaimFieldType": 1, + "_installUrl": "https://github.com/netux/grayjay-source-youtube/releases/latest/download/YoutubeConfig.json" }, - "primaryClaimFieldType": 1, - "_installUrl": "https://pantsufan.github.io/grayspon/YoutubeConfig.json" - }, - { - "name": "Youtube with DeArrow", - "description": "One of the biggest video platforms owned by Google - now with DeArrow support (Requires a custom GrayJay version)", - "author": "netux", - "authorUrl": "https://futo.org", - "sourceUrl": "https://github.com/netux/grayjay-source-youtube/releases/latest/download/YoutubeConfig.json", - "repositoryUrl": "https://github.com/netux/grayjay-source-youtube/tree/with-dearrow", - "scriptUrl": "./YoutubeScript.js", - "version": 168, - "iconUrl": "https://raw.githubusercontent.com/netux/grayjay-source-youtube/52deb90661442a29767b755645d86b9965cc7da5/youtube_dearrow.png", - "id": "35ae969a-a7db-11ed-afa1-0242ac120002", - "packages": ["Http", "Utilities"], - "allowEval": false, - "allowUrls": [ - "youtube.com", - "m.youtube.com", - "www.youtube.com", - "youtu.be", - "www.youtu.be", - "m.youtu.be", - "s.youtube.com", - "consent.youtube.com", - "suggestqueries-clients6.youtube.com", - "youtubei.googleapis.com", - "www.google.com", - "google.com", - "returnyoutubedislikeapi.com", - "sponsor.ajay.app" - ], - "_tags": ["unofficial", "unmaintained", "unknown"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/netux/grayjay-source-youtube/commits/with-dearrow.atom", - "releases": "https://github.com/netux/grayjay-source-youtube/releases.atom" + { + "name": "beatfly-music-xyz", + "description": "Music and audio platform", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins", + "platformUrl": "https://beatfly-music.xyz/", + "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-beatfly-music-xyz/raw/main/grayjay-plugin-beatfly-music-xyz-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-beatfly-music-xyz", + "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-beatfly-music-xyz/raw/main/grayjay-plugin-beatfly-music-xyz-script.js", + "version": 1, + "iconUrl": "https://player.beatfly-music.xyz/favicon.ico", + "id": "0759a307-9586-4531-84e3-303655ca2e92", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": false, + "allowUrls": [ + ".beatfly-music.xyz", + ".player.beatfly-music.xyz" + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Homepage with featured albums", + "Search for tracks", + "Album/playlist support with track playback", + "Direct track playback with audio streaming", + "Recommendations showing featured albums", + "Caching for homepage and playlists (5 min TTL)" + ] + } }, - "platformUrl": "https://youtube.com", - "authentication": { - "loginUrl": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fchannel_switcher&hl=en&ec=65620", - "userAgent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 Mobile Safari/537.36", - "cookiesToFind": ["SIDCC"], - "headersToFind": ["authorization"], - "cookiesExclOthers": false, - "completionUrl": "https://m.youtube.com/youtubei/v1/guide?*", - "domainHeadersToFind": { - ".youtube.com": ["authorization"] - }, - "loginWarning": "You must select a profile after login for authentication to complete." + { + "_tags": [ + "working", + "unofficial", + "meditation" + ], + "name": "earthcam-com", + "description": "EarthCam live webcams and streams", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins", + "platformUrl": "https://earthcam.com", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-earthcam-com/raw/branch/main/grayjay-plugin-earthcam-com-config.json", + "repositoryUrl": "http://localhost:8035/grayjay-plugin-earthcam-com", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-earthcam-com/raw/branch/main/grayjay-plugin-earthcam-com-script.js", + "version": 1, + "iconUrl": "https://www.google.com/s2/favicons?domain=earthcam.com&sz=64", + "id": "3267523f-eadf-4541-a18c-4b18e05f9d33", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser", + "Utilities" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": true, + "allowUrls": [ + ".earthcam.com", + ".earthcam.net", + ".myearthcam.com", + ".youtube.com", + ".youtube-nocookie.com", + ".youtu.be" + ], + "supportedClaimTypes": [ + 1, + 2, + 3, + 16 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Live stream playback support", + "Playlist-based stream extraction", + "Archive playback support", + "Timelapse support", + "Search and channel discovery", + "Detail pages link back to channel pages" + ] + } }, - "settings": [ - { - "variable": "authChannels", - "name": "Use Login for Channels", - "description": "Use authenticated client for channel (videos) requests. (eg. for member videos)", - "type": "Boolean", - "default": "false" - }, - { - "variable": "authDetails", - "name": "Use Login for video details", - "description": "Use authenticated client for video requests. (eg. for member videos)", - "type": "Boolean", - "default": "false" - }, - { - "variable": "youtubeActivity", - "name": "Provide Youtube Activity", - "description": "Use authenticated client for playback, telling Youtube what you watched.", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allowAgeRestricted", - "name": "Allow Age Restricted", - "description": "Allow watching of age restricted videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "allowControversialRestricted", - "name": "Allow Controversial Restricted", - "description": "Allow watching of controversial restricted videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "youtubeDislikerHeader", - "name": "Return Youtube Dislike", - "description": "This is a third-party database of video dislikes that combines historic data, crowd-sourced data, and estimations, and may not be accurate.\n\n(Using https://returnyoutubedislike.com)", - "type": "Header" - }, - { - "variable": "youtubeDislikes", - "name": "Enable", - "description": "Use Return YoutubeDislike to provide dislikes for videos", - "type": "Boolean", - "default": "false" - }, - { - "variable": "sponsorBlockHeader", - "name": "SponsorBlock", - "description": "This is NOT Adblock. SponsorBlock allows you to (automatically) skip in-video sponsor segments.\nIt will harm creators.\n\n(Using https://sponsor.ajay.app)\n\nFUTO respects your decision to use SponsorBlock. But only if you're supporting creators in other ways.", - "type": "Header" - }, - { - "variable": "sponsorBlock", - "name": "Enable", - "description": "If enabled support creators in other ways.\nDo not freeload.", - "type": "Boolean", - "default": "false", - "warningDialog": "SponsorBlock will harm creators.\nDo not freeload, support creators in other ways." - }, - { - "variable": "sponsorBlockNoVotes", - "name": "Allow No Vote Segments", - "description": "Allow segments without votes, this may cause questionable video skips.", - "type": "Boolean", - "default": "false", - "dependency": "sponsorBlock" - }, - { - "variable": "sponsorBlockType", - "name": "Skip Type", - "description": "Change skip behavior for SponsorBlock. Automatic may cause unexpected skipping for some users, and thus not recommended.", - "type": "Dropdown", - "default": "0", - "options": ["Manual", "Automatic"], - "dependency": "sponsorBlock" - }, - { - "variable": "deArrowHeader", - "name": "DeArrow", - "description": "DeArrow replaces video titles and thumbnails with better ones, which are more accurate and less prone to sensationalism (Using https://dearrow.ajay.app)", - "type": "Header" - }, - { - "variable": "deArrowEnabledTitles", - "name": "Enable on Titles", - "description": "If enabled, replace titles with ones coming from DeArrow.", - "type": "Boolean", - "default": "true" - }, - { - "variable": "deArrowEnabledThumbnails", - "name": "Enable on Thumbnails", - "description": "If enabled, replace thumbnails with ones coming from DeArrow.", - "type": "Boolean", - "default": "true" - } - ], - "supportedClaimTypes": [2], - "subscriptionRateLimit": 140, - "captcha": { - "userAgent": "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.153 Mobile Safari/537.36", - "captchaUrl": null, - "cookiesToFind": ["GOOGLE_ABUSE_EXEMPTION"] + { + "name": "media.ccc.de", + "description": "media.ccc.de is the video portal of the Chaos Computer Club. Browse and search 15,000+ recordings from CCC congresses, camps, and community events.", + "author": "OnlinePersona & PixelMelt", + "authorUrl": "https://github.com/PixelMelt", + "platformUrl": "https://media.ccc.de", + "sourceUrl": "https://raw.githubusercontent.com/PixelMelt/grayjay-source-ccc/master/MediaCCCConfig.json", + "repositoryUrl": "https://github.com/PixelMelt/grayjay-source-ccc", + "scriptUrl": "./MediaCCCScript.js", + "version": 2, + "iconUrl": "./MediaCCCIcon.png", + "id": "c6a1e360-1d8a-4b9d-8c1a-2e3b4c5d6e7f", + "scriptSignature": "LcpwYqkm/BaBWKLpeiNtiZ0zIUwDuA57bsqVnw8WaBcoci2+sDpATeIvsE5f9WaEZZDHT1ZuX7EApwyghQVfW1OAn7TcUhZaKrMXCoVELgtvhz8sgXAxyJ4dKXF1HfGyIJWYv4dgOyHvX0OEZJxSqrsYfYVkPkUsj/VHoD74vHb50h70Wt3KPifFN3xcdAMtUe0nP2tSwGjLcRBVgjRSed9saiWf0nJtDblYd/3JF6FW8oRZsP3QVxhBcEkBOdICHxbyfxfBDgeVQsIovE4nYKlNXRJZMVR7l7pz+b5BsYaBtEh9eBOf+gGgkSnSJzXDzUudD+zT9zRZapfp9JOZWg==", + "scriptPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8OnaJTpaY93P/X21djOEkZs9YmZhAnfEXUXT4FTa9CdaFE9HOVCFALvPeTV30kl/WLqss8/i4mkapinNfA3gmp0/te/IBl86Qf6yc/x/2brHFlM6YCRHOUA9C5m9N57s59WUYUvDnXat0iRO5g2tn3n83F+mBD/Q4ObNk1M1p3QEO7Wle0xL/UzWYW/ZmeRTn6o/5sLdD8Hj193/uCJ9/W27ex0LF7qTcDzjDBDHGJuo/eL9hkS2lWGBIqC9aL6gzSdirA+zN5+q+oRDdsRoljOXRisT2qB2+NRLuyjcNzCdoKZRxPOC/LpqifIPFbhPnqCFRWHyxVHo4SKPK29VJwIDAQAB", + "maxDownloadParallelism": 1, + "subscriptionRateLimit": 10, + "packages": [ + "Http" + ], + "allowEval": false, + "allowUrls": [ + "media.ccc.de", + "static.media.ccc.de", + "cdn.media.ccc.de", + "api.media.ccc.de" + ], + "settings": [ + { + "variable": "preferredLanguage", + "name": "Preferred Language", + "description": "Filter video/audio sources to show only recordings in this language. 'All Languages' shows every available recording.", + "type": "Dropdown", + "default": "0", + "options": [ + "All Languages", + "English", + "Deutsch", + "Français" + ] + } + ], + "changelog": { + "1": [ + "Initial release for media.ccc.de" + ], + "2": [ + "Video recommendations (shuffled talks from the same conference)", + "Subtitles (VTT) with auto-generated indicator and language labels", + "Audio-only sources (MP3, Opus) with human-readable language names, translation tagging, and bitrate display", + "Home feed pagination into full event archive", + "Search within conferences (searchChannelContents)", + "Conference search with description matching", + "Language filter setting for recordings", + "Rich descriptions with speakers, tags, language, and event links", + "High-quality poster thumbnails", + "Proper frontend URLs for author/channel links", + "Bitrate estimation from file size metadata", + "Correct error handling with ScriptException" + ] + }, + "_tags": [ + "unofficial", + "working", + "maintained" + ], + "_feeds": { + "commits": "https://github.com/PixelMelt/grayjay-source-ccc/commits/master.atom", + "releases": "https://github.com/PixelMelt/grayjay-source-ccc/releases.atom" + }, + "_installUrl": "https://raw.githubusercontent.com/PixelMelt/grayjay-source-ccc/master/MediaCCCConfig.json" }, - "primaryClaimFieldType": 1, - "_installUrl": "https://github.com/netux/grayjay-source-youtube/releases/latest/download/YoutubeConfig.json" - }, - { - "name": "beatfly-music-xyz", - "description": "Music and audio platform", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins", - "platformUrl": "https://beatfly-music.xyz/", - "sourceUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-beatfly-music-xyz/raw/main/grayjay-plugin-beatfly-music-xyz-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-beatfly-music-xyz", - "scriptUrl": "https://bitbucket.org/grayjayplugins/grayjay-plugin-beatfly-music-xyz/raw/main/grayjay-plugin-beatfly-music-xyz-script.js", - "version": 1, - "iconUrl": "https://player.beatfly-music.xyz/favicon.ico", - "id": "0759a307-9586-4531-84e3-303655ca2e92", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowAllHttpHeaderAccess": false, - "allowUrls": [".beatfly-music.xyz", ".player.beatfly-music.xyz"], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Homepage with featured albums", - "Search for tracks", - "Album/playlist support with track playback", - "Direct track playback with audio streaming", - "Recommendations showing featured albums", - "Caching for homepage and playlists (5 min TTL)" - ] - } - }, - { - "_tags": ["working", "unofficial", "meditation"], - "name": "earthcam-com", - "description": "EarthCam live webcams and streams", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins", - "platformUrl": "https://earthcam.com", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-earthcam-com/raw/branch/main/grayjay-plugin-earthcam-com-config.json", - "repositoryUrl": "http://localhost:8035/grayjay-plugin-earthcam-com", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-earthcam-com/raw/branch/main/grayjay-plugin-earthcam-com-script.js", - "version": 1, - "iconUrl": "https://www.google.com/s2/favicons?domain=earthcam.com&sz=64", - "id": "3267523f-eadf-4541-a18c-4b18e05f9d33", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser", "Utilities"], - "allowEval": false, - "allowAllHttpHeaderAccess": true, - "allowUrls": [ - ".earthcam.com", - ".earthcam.net", - ".myearthcam.com", - ".youtube.com", - ".youtube-nocookie.com", - ".youtu.be" - ], - "supportedClaimTypes": [1, 2, 3, 16], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Live stream playback support", - "Playlist-based stream extraction", - "Archive playback support", - "Timelapse support", - "Search and channel discovery", - "Detail pages link back to channel pages" - ] - } - }, - { - "name": "media.ccc.de", - "description": "A video platform which offers a wide variety of video and audio material distributed by the Chaos Computer Club", - "author": "Alex", - "authorUrl": "https://github.com/Alex-451", - "sourceUrl": "https://raw.githubusercontent.com/Alex-451/grayjay-media.ccc-plugin/main/MediaCccConfig.json", - "repositoryUrl": "https://github.com/Alex-451/grayjay-media.ccc-plugin", - "scriptUrl": "https://raw.githubusercontent.com/Alex-451/grayjay-media.ccc-plugin/main/src/MediaCccScript.js", - "version": 1, - "iconUrl": "https://raw.githubusercontent.com/Alex-451/grayjay-media.ccc-plugin/main/MediaCccLogo.png", - "id": "ccc221a2-4845-4ecf-9fa4-8b12958d2455", - "packages": ["Http"], - "allowEval": false, - "allowUrls": ["everywhere"], - "_tags": ["unofficial", "broken", "unmaintained"], - "scriptSignature": "", - "scriptPublicKey": "", - "_feeds": { - "commits": "https://github.com/Alex-451/grayjay-media.ccc-plugin/commits/main.atom", - "releases": "https://github.com/Alex-451/grayjay-media.ccc-plugin/releases.atom" + { + "_tags": [ + "working", + "unofficial", + "podcast" + ], + "name": "podcastindex-org", + "description": "Podcast platform", + "author": "Grayjay Plugins", + "authorUrl": "https://bitbucket.org/grayjayplugins", + "platformUrl": "https://podcastindex.org", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org/raw/branch/main/grayjay-plugin-podcastindex-org-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org/raw/branch/main/grayjay-plugin-podcastindex-org-script.js", + "version": 2, + "iconUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org/raw/branch/main/favicon.png", + "id": "78ad78c6-c355-4ed5-901d-dbec1a262de5", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http" + ], + "allowEval": false, + "allowAllHttpHeaderAccess": false, + "allowUrls": [ + ".podcastindex.org", + ".anchor.fm", + ".cloudfront.net", + ".simplecast.com", + ".cdn.simplecast.com", + ".transistor.fm", + ".rss.com", + ".blubrry.com", + ".podserve.fm", + ".op3.dev", + ".podtrac.com", + ".radiolaser.fr", + ".acast.com", + ".sphinx.acast.com", + ".stitcher2.acast.com", + ".americaoutloud.news", + ".www.americaoutloud.news", + ".animenewsnetwork.com", + ".www.animenewsnetwork.com", + ".buzzsprout.com", + ".audio.buzzsprout.com", + ".storage.buzzsprout.com", + ".www.buzzsprout.com", + ".captivate.fm", + ".artwork.captivate.fm", + ".castos.com", + ".episodes.castos.com", + ".cjsw.com", + ".d3cthc4vkm06yo.cloudfront.net", + ".d3ctxlq1ktw2nl.cloudfront.net", + ".d3mww1g1pfq2pt.cloudfront.net", + ".d3t3ozftmdmh3i.cloudfront.net", + ".d3wo5wojvuv7l.cloudfront.net", + ".fastcast.ai", + ".api.fastcast.ai", + ".audio.fastcast.ai", + ".image.fastcast.ai", + ".feedpress.com", + ".tracking.feedpress.com", + ".feedpress.me", + ".firstory-cdn.me", + ".image.firstory-cdn.me", + ".firstory.me", + ".file.cdn.firstory.me", + ".fm.cdn.cloudflare.net", + ".audio.transistor.fm.cdn.cloudflare.net", + ".audio.transistor.fm", + ".joshbersin.com", + ".kabbalahmedia.info", + ".cdn.kabbalahmedia.info", + ".files.kabbalahmedia.info", + ".libsyn.com", + ".content.libsyn.com", + ".static.libsyn.com", + ".traffic.libsyn.com", + ".pippa.io", + ".assets.pippa.io", + ".podigee-cdn.net", + ".adswizz.podigee-cdn.net", + ".audio.podigee-cdn.net", + ".images.podigee-cdn.net", + ".pscrb.fm", + ".radio-pub.be", + ".radiofrance.fr", + ".api.radiofrance.fr", + ".www.radiofrance.fr", + ".redcircle.com", + ".media.redcircle.com", + ".rss.com", + ".content.rss.com", + ".media.rss.com", + ".s3-us-west-2.amazonaws.com", + ".simplecastaudio.com", + ".injector.simplecastaudio.com", + ".simplecastcdn.com", + ".image.simplecastcdn.com", + ".sports56whbq.com", + ".transistor.fm", + ".audio.transistor.fm", + ".media.transistor.fm", + ".transistorcdn.com", + ".img.transistorcdn.com" + ], + "supportedClaimTypes": [ + 1, + 2, + 16, + 19 + ], + "authentication": null, + "settings": [], + "changelog": { + "1": [ + "Initial release with channel/podcast search and episode playback; Enclosure handling and thumbnail improvements; Expanded allowUrls for common podcast CDNs and trackers" + ] + } }, - "_installUrl": "https://raw.githubusercontent.com/Alex-451/grayjay-media.ccc-plugin/main/MediaCccConfig.json" - }, - { - "_tags": ["working", "unofficial", "podcast"], - "name": "podcastindex-org", - "description": "Podcast platform", - "author": "Grayjay Plugins", - "authorUrl": "https://bitbucket.org/grayjayplugins", - "platformUrl": "https://podcastindex.org", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org/raw/branch/main/grayjay-plugin-podcastindex-org-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org/raw/branch/main/grayjay-plugin-podcastindex-org-script.js", - "version": 2, - "iconUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-podcastindex-org/raw/branch/main/favicon.png", - "id": "78ad78c6-c355-4ed5-901d-dbec1a262de5", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http"], - "allowEval": false, - "allowAllHttpHeaderAccess": false, - "allowUrls": [ - ".podcastindex.org", - ".anchor.fm", - ".cloudfront.net", - ".simplecast.com", - ".cdn.simplecast.com", - ".transistor.fm", - ".rss.com", - ".blubrry.com", - ".podserve.fm", - ".op3.dev", - ".podtrac.com", - ".radiolaser.fr", - ".acast.com", - ".sphinx.acast.com", - ".stitcher2.acast.com", - ".americaoutloud.news", - ".www.americaoutloud.news", - ".animenewsnetwork.com", - ".www.animenewsnetwork.com", - ".buzzsprout.com", - ".audio.buzzsprout.com", - ".storage.buzzsprout.com", - ".www.buzzsprout.com", - ".captivate.fm", - ".artwork.captivate.fm", - ".castos.com", - ".episodes.castos.com", - ".cjsw.com", - ".d3cthc4vkm06yo.cloudfront.net", - ".d3ctxlq1ktw2nl.cloudfront.net", - ".d3mww1g1pfq2pt.cloudfront.net", - ".d3t3ozftmdmh3i.cloudfront.net", - ".d3wo5wojvuv7l.cloudfront.net", - ".fastcast.ai", - ".api.fastcast.ai", - ".audio.fastcast.ai", - ".image.fastcast.ai", - ".feedpress.com", - ".tracking.feedpress.com", - ".feedpress.me", - ".firstory-cdn.me", - ".image.firstory-cdn.me", - ".firstory.me", - ".file.cdn.firstory.me", - ".fm.cdn.cloudflare.net", - ".audio.transistor.fm.cdn.cloudflare.net", - ".audio.transistor.fm", - ".joshbersin.com", - ".kabbalahmedia.info", - ".cdn.kabbalahmedia.info", - ".files.kabbalahmedia.info", - ".libsyn.com", - ".content.libsyn.com", - ".static.libsyn.com", - ".traffic.libsyn.com", - ".pippa.io", - ".assets.pippa.io", - ".podigee-cdn.net", - ".adswizz.podigee-cdn.net", - ".audio.podigee-cdn.net", - ".images.podigee-cdn.net", - ".pscrb.fm", - ".radio-pub.be", - ".radiofrance.fr", - ".api.radiofrance.fr", - ".www.radiofrance.fr", - ".redcircle.com", - ".media.redcircle.com", - ".rss.com", - ".content.rss.com", - ".media.rss.com", - ".s3-us-west-2.amazonaws.com", - ".simplecastaudio.com", - ".injector.simplecastaudio.com", - ".simplecastcdn.com", - ".image.simplecastcdn.com", - ".sports56whbq.com", - ".transistor.fm", - ".audio.transistor.fm", - ".media.transistor.fm", - ".transistorcdn.com", - ".img.transistorcdn.com" - ], - "supportedClaimTypes": [1, 2, 16, 19], - "authentication": null, - "settings": [], - "changelog": { - "1": [ - "Initial release with channel/podcast search and episode playback; Enclosure handling and thumbnail improvements; Expanded allowUrls for common podcast CDNs and trackers" - ] - } - }, - { - "name": "xboxclips", - "description": "Xbox game clips and videos", - "author": "Grayjay Plugins", - "authorUrl": "https://codeberg.org/GrayjayPlugins", - "platformUrl": "https://www.xboxclips.com", - "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-xboxclips/raw/branch/main/grayjay-plugin-xboxclips-config.json", - "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-xboxclips", - "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-xboxclips/raw/branch/main/grayjay-plugin-xboxclips-script.js", - "version": 1, - "iconUrl": "https://www.xboxclips.com/favicon.ico", - "id": "8a7b2c3d-4e5f-6789-abcd-ef1234567890", - "scriptSignature": "", - "scriptPublicKey": "", - "packages": ["Http", "DOMParser"], - "allowEval": false, - "allowUrls": [".xboxclips.com", ".xboxlive.com", ".xbox.com"], - "settings": [], - "changelog": { - "1": [ - "Initial release with support for Xbox Clips homepage, game pages, channel pages, and video playback" - ] + { + "name": "xboxclips", + "description": "Xbox game clips and videos", + "author": "Grayjay Plugins", + "authorUrl": "https://codeberg.org/GrayjayPlugins", + "platformUrl": "https://www.xboxclips.com", + "sourceUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-xboxclips/raw/branch/main/grayjay-plugin-xboxclips-config.json", + "repositoryUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-xboxclips", + "scriptUrl": "https://codeberg.org/GrayjayPlugins/grayjay-plugin-xboxclips/raw/branch/main/grayjay-plugin-xboxclips-script.js", + "version": 1, + "iconUrl": "https://www.xboxclips.com/favicon.ico", + "id": "8a7b2c3d-4e5f-6789-abcd-ef1234567890", + "scriptSignature": "", + "scriptPublicKey": "", + "packages": [ + "Http", + "DOMParser" + ], + "allowEval": false, + "allowUrls": [ + ".xboxclips.com", + ".xboxlive.com", + ".xbox.com" + ], + "settings": [], + "changelog": { + "1": [ + "Initial release with support for Xbox Clips homepage, game pages, channel pages, and video playback" + ] + } } - } -] +] \ No newline at end of file diff --git a/super-linter-output/super-linter-summary.md b/super-linter-output/super-linter-summary.md index 0fe7bc6..5ac24c1 100644 --- a/super-linter-output/super-linter-summary.md +++ b/super-linter-output/super-linter-summary.md @@ -1,20 +1,15 @@ # Super-linter summary -| Language | Validation result | -| -------------------------- | ----------------- | -| BIOME_FORMAT | Fail ❌ | -| BIOME_LINT | Fail ❌ | -| GITLEAKS | Pass ✅ | -| GIT_MERGE_CONFLICT_MARKERS | Pass ✅ | -| JSON | Pass ✅ | -| JSON_PRETTIER | Pass ✅ | -| PRE_COMMIT | Pass ✅ | -| SPELL_CODESPELL | Fail ❌ | -| TRIVY | Pass ✅ | +| Language | Validation result | +| ------------ | ----------------- | +| BIOME_FORMAT | Fail ❌ | +| BIOME_LINT | Fail ❌ | +| PRE_COMMIT | Pass ✅ | +| TRIVY | Pass ✅ | Super-linter detected linting errors -For more information, see the [GitHub Actions workflow run](https://github.com/grayjay-sources/grayjay-sources.github.io/actions/runs/22034901377) +For more information, see the [GitHub Actions workflow run](https://github.com/grayjay-sources/grayjay-sources.github.io/actions/runs/23072765864) Powered by [Super-linter](https://github.com/super-linter/super-linter) @@ -23,7 +18,7 @@ Powered by [Super-linter](https://github.com/super-linter/super-linter) BIOME_FORMAT ```text -Checked 10 files in 577ms. No fixes applied. +Checked 10 files in 585ms. No fixes applied. Found 10 errors..vscode/launch.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Formatter would have printed the following content: @@ -1189,7 +1184,7 @@ sources.json format ━━━━━━━━━━━━━━━━━━━━ 148 │ - ················"Support·for·getHome", 149 │ - ················"Added·Faster·Randomizer·setting·for·logged·in·users", 150 │ - ················"Added·Content·Groupings·setting", - 9855 more lines truncated + 9930 more lines truncated sources.schema.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ @@ -1364,7 +1359,7 @@ format ━━━━━━━━━━━━━━━━━━━━━━━━ ```text The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. Diagnostics not shown: 4082. -Checked 13 files in 81s. No fixes applied. +Checked 13 files in 83s. No fixes applied. Found 277 errors. Found 3814 warnings. Found 11 infos.assets/js/site.js:77:20 lint/style/useTemplate FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ @@ -1772,23 +1767,3 @@ lint ━━━━━━━━━━━━━━━━━━━━━━━━━ ``` - -
- -SPELL_CODESPELL - -```text -/github/workspace/sources.json:1377: Nam ==> Name -/github/workspace/sources.json:1670: Nam ==> Name -/github/workspace/sources.json:1807: ommitted ==> omitted -/github/workspace/sources.json:1808: ommitted ==> omitted -/github/workspace/sources.json:3473: comming ==> coming -/github/workspace/sources.json:3681: necesities ==> necessities -/github/workspace/sources.json:3693: necesities ==> necessities -/github/workspace/sources.json:3705: necesities ==> necessities -/github/workspace/sources.json:4021: didnt ==> didn't -/github/workspace/sources.json:4428: ommitted ==> omitted -/github/workspace/sources.json:4429: ommitted ==> omitted -``` - -