2 Commits

4 changed files with 35 additions and 24 deletions

View File

@@ -32,7 +32,7 @@
"svgo": "^3.3.2", "svgo": "^3.3.2",
"swiped-events": "^1.2.0", "swiped-events": "^1.2.0",
"vite": "^6.3.5", "vite": "^6.3.5",
"vite-plugin-static-copy": "^2.3.1", "vite-plugin-static-copy": "^3.0.0",
"vite-plugin-stylelint": "^6.0.0", "vite-plugin-stylelint": "^6.0.0",
"webpack": "^5.99.8", "webpack": "^5.99.8",
"webpack-cli": "^6.0.1" "webpack-cli": "^6.0.1"
@@ -7911,17 +7911,17 @@
} }
}, },
"node_modules/vite-plugin-static-copy": { "node_modules/vite-plugin-static-copy": {
"version": "2.3.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz", "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-3.0.0.tgz",
"integrity": "sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==", "integrity": "sha512-Uki9pPUQ4ZnoMEdIFabvoh9h6Bh9Q1m3iF7BrZvoiF30reREpJh2gZb4jOnW1/uYFzyRiLCmFSkM+8hwiq1vWQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"fast-glob": "^3.2.11", "fs-extra": "^11.3.0",
"fs-extra": "^11.1.0",
"p-map": "^7.0.3", "p-map": "^7.0.3",
"picocolors": "^1.0.0" "picocolors": "^1.1.1",
"tinyglobby": "^0.2.13"
}, },
"engines": { "engines": {
"node": "^18.0.0 || >=20.0.0" "node": "^18.0.0 || >=20.0.0"

View File

@@ -30,7 +30,7 @@
"svgo": "^3.3.2", "svgo": "^3.3.2",
"swiped-events": "^1.2.0", "swiped-events": "^1.2.0",
"vite": "^6.3.5", "vite": "^6.3.5",
"vite-plugin-static-copy": "^2.3.1", "vite-plugin-static-copy": "^3.0.0",
"vite-plugin-stylelint": "^6.0.0", "vite-plugin-stylelint": "^6.0.0",
"webpack": "^5.99.8", "webpack": "^5.99.8",
"webpack-cli": "^6.0.1" "webpack-cli": "^6.0.1"

View File

@@ -1,6 +1,13 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
"""Invidious (Videos) """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 time
import random import random
@@ -13,7 +20,7 @@ from searx.utils import humanize_number
about = { about = {
"website": 'https://api.invidious.io/', "website": 'https://api.invidious.io/',
"wikidata_id": 'Q79343316', "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, "use_official_api": True,
"require_api_key": False, "require_api_key": False,
"results": 'JSON', "results": 'JSON',
@@ -25,7 +32,12 @@ paging = True
time_range_support = True time_range_support = True
# base_url can be overwritten by a list of URLs in the settings.yml # 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): def request(query, params):

View File

@@ -252,8 +252,8 @@ plugins:
# #
# hostnames: # hostnames:
# replace: # replace:
# '(.*\.)?youtube\.com$': 'invidious.example.com' # '(.*\.)?youtube\.com$': 'yt.example.com'
# '(.*\.)?youtu\.be$': 'invidious.example.com' # '(.*\.)?youtu\.be$': 'yt.example.com'
# '(.*\.)?reddit\.com$': 'teddit.example.com' # '(.*\.)?reddit\.com$': 'teddit.example.com'
# '(.*\.)?redd\.it$': 'teddit.example.com' # '(.*\.)?redd\.it$': 'teddit.example.com'
# '(www\.)?twitter\.com$': 'nitter.example.com' # '(www\.)?twitter\.com$': 'nitter.example.com'
@@ -270,8 +270,8 @@ plugins:
# replace: 'rewrite-hosts.yml' # replace: 'rewrite-hosts.yml'
# #
# Content of 'rewrite-hosts.yml' (place the file in the same directory as 'settings.yml'): # Content of 'rewrite-hosts.yml' (place the file in the same directory as 'settings.yml'):
# '(.*\.)?youtube\.com$': 'invidious.example.com' # '(.*\.)?youtube\.com$': 'yt.example.com'
# '(.*\.)?youtu\.be$': 'invidious.example.com' # '(.*\.)?youtu\.be$': 'yt.example.com'
# #
checker: checker:
@@ -1152,16 +1152,15 @@ engines:
timeout: 6.0 timeout: 6.0
disabled: true disabled: true
- name: invidious # - name: invidious
engine: invidious # engine: invidious
# Instanes will be selected randomly, see https://api.invidious.io/ for # # if you want to use invidious with SearXNG you should setup one locally
# instances that are stable (good uptime) and close to you. # # https://github.com/searxng/searxng/issues/2722#issuecomment-2884993248
base_url: # base_url:
- https://invidious.adminforge.de # - https://invidious.example1.com
- https://inv.nadeko.net # - https://invidious.example2.com
shortcut: iv # shortcut: iv
timeout: 3.0 # timeout: 3.0
disabled: true
- name: ipernity - name: ipernity
engine: ipernity engine: ipernity