diff --git a/searx/engines/invidious.py b/searx/engines/invidious.py index 540f89a2f..d51c371d0 100644 --- a/searx/engines/invidious.py +++ b/searx/engines/invidious.py @@ -1,6 +1,13 @@ # SPDX-License-Identifier: AGPL-3.0-or-later """Invidious (Videos) + +If you want to use invidious with SearXNG you should setup one locally. +No public instance offer a public API now + +- https://github.com/searxng/searxng/issues/2722#issuecomment-2884993248 + """ +from __future__ import annotations import time import random @@ -13,7 +20,7 @@ from searx.utils import humanize_number about = { "website": 'https://api.invidious.io/', "wikidata_id": 'Q79343316', - "official_api_documentation": 'https://github.com/iv-org/documentation/blob/master/API.md', + "official_api_documentation": 'https://docs.invidious.io/api/', "use_official_api": True, "require_api_key": False, "results": 'JSON', @@ -25,7 +32,12 @@ paging = True time_range_support = True # base_url can be overwritten by a list of URLs in the settings.yml -base_url = 'https://vid.puffyan.us' +base_url: list | str = [] + + +def init(_): + if not base_url: + raise ValueError("missing invidious base_url") def request(query, params): diff --git a/searx/settings.yml b/searx/settings.yml index 7e0455701..fc654450c 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -252,8 +252,8 @@ plugins: # # hostnames: # replace: -# '(.*\.)?youtube\.com$': 'invidious.example.com' -# '(.*\.)?youtu\.be$': 'invidious.example.com' +# '(.*\.)?youtube\.com$': 'yt.example.com' +# '(.*\.)?youtu\.be$': 'yt.example.com' # '(.*\.)?reddit\.com$': 'teddit.example.com' # '(.*\.)?redd\.it$': 'teddit.example.com' # '(www\.)?twitter\.com$': 'nitter.example.com' @@ -270,8 +270,8 @@ plugins: # replace: 'rewrite-hosts.yml' # # Content of 'rewrite-hosts.yml' (place the file in the same directory as 'settings.yml'): -# '(.*\.)?youtube\.com$': 'invidious.example.com' -# '(.*\.)?youtu\.be$': 'invidious.example.com' +# '(.*\.)?youtube\.com$': 'yt.example.com' +# '(.*\.)?youtu\.be$': 'yt.example.com' # checker: @@ -1152,16 +1152,15 @@ engines: timeout: 6.0 disabled: true - - name: invidious - engine: invidious - # Instanes will be selected randomly, see https://api.invidious.io/ for - # instances that are stable (good uptime) and close to you. - base_url: - - https://invidious.adminforge.de - - https://inv.nadeko.net - shortcut: iv - timeout: 3.0 - disabled: true + # - name: invidious + # engine: invidious + # # if you want to use invidious with SearXNG you should setup one locally + # # https://github.com/searxng/searxng/issues/2722#issuecomment-2884993248 + # base_url: + # - https://invidious.example1.com + # - https://invidious.example2.com + # shortcut: iv + # timeout: 3.0 - name: ipernity engine: ipernity