Compare commits

..

No commits in common. "master" and "1.0" have entirely different histories.
master ... 1.0

67 changed files with 20741 additions and 715 deletions

11
.editorconfig Normal file
View file

@ -0,0 +1,11 @@
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

4
.eslintignore Normal file
View file

@ -0,0 +1,4 @@
assets/js/index.js
assets/js/katex.js
assets/js/vendor
node_modules

31
.eslintrc.json Normal file
View file

@ -0,0 +1,31 @@
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"rules": {
"no-console": 0,
"quotes": ["error", "single"],
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "ignore"
}
]
}
}

11
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"

62
.github/workflows/codeql-analysis.yml vendored Normal file
View file

@ -0,0 +1,62 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches: [master]
pull_request:
# The branches below must be a subset of the branches above
branches: [master]
schedule:
- cron: '0 11 * * 5'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['javascript']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View file

@ -1,35 +0,0 @@
---
name: Build and release container
on:
push:
branches:
- "master"
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to registry
uses: docker/login-action@v1
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v2
with:
push: true
tags: quay.io/invidious/invidious.io:latest

7
.gitignore vendored Normal file
View file

@ -0,0 +1,7 @@
bin
node_modules
public
resources
# Local Netlify folder
.netlify
TODO

10
.markdownlint.json Normal file
View file

@ -0,0 +1,10 @@
{
"comment": "Hyas rules",
"default": true,
"line_length": false,
"no-inline-html": false,
"no-trailing-punctuation": false,
"no-duplicate-heading": false,
"no-bare-urls": false
}

3
.markdownlintignore Normal file
View file

@ -0,0 +1,3 @@
node_modules
CHANGELOG.md
README.md

3
.stylelintignore Normal file
View file

@ -0,0 +1,3 @@
assets/scss/components/_syntax.scss
assets/scss/vendor
node_modules

34
.stylelintrc.json Normal file
View file

@ -0,0 +1,34 @@
{
"extends": "stylelint-config-standard",
"rules": {
"no-empty-source": null,
"string-quotes": "double",
"at-rule-no-unknown": [
true,
{
"ignoreAtRules": [
"extend",
"at-root",
"debug",
"warn",
"error",
"if",
"else",
"for",
"each",
"while",
"mixin",
"include",
"content",
"return",
"function",
"tailwind",
"apply",
"responsive",
"variants",
"screen"
]
}
]
}
}

View file

@ -1,2 +0,0 @@
FROM docker.io/library/nginx:alpine
COPY /public/ /usr/share/nginx/html/

41
assets/scss/app.scss Normal file
View file

@ -0,0 +1,41 @@
// Mostly taken from doks's own app scss. The only addition would be
// the `@import "variables" in order to overwrite color settings.
/** Import Bootstrap functions */
@import "bootstrap/scss/functions";
/** Import theme variables */
@import "../../node_modules/@hyas/doks/assets/scss/common/variables";
/** Overwrite variables */
@import "variables";
/** Import Bootstrap */
@import "bootstrap/scss/bootstrap";
/** Import highlight.js */
// @import "highlight.js/scss/github-dark-dimmed";
/** Import KaTeX */
@import "katex/dist/katex";
/** Import theme styles */
@import "../../node_modules/@hyas/doks/assets/scss/common/fonts";
@import "../../node_modules/@hyas/doks/assets/scss/common/global";
@import "../../node_modules/@hyas/doks/assets/scss/common/dark";
@import "../../node_modules/@hyas/doks/assets/scss/components/alerts";
@import "../../node_modules/@hyas/doks/assets/scss/components/buttons";
@import "../../node_modules/@hyas/doks/assets/scss/components/code";
@import "../../node_modules/@hyas/doks/assets/scss/components/syntax";
@import "../../node_modules/@hyas/doks/assets/scss/components/comments";
@import "../../node_modules/@hyas/doks/assets/scss/components/forms";
@import "../../node_modules/@hyas/doks/assets/scss/components/images";
@import "../../node_modules/@hyas/doks/assets/scss/components/mermaid";
@import "../../node_modules/@hyas/doks/assets/scss/components/search";
@import "../../node_modules/@hyas/doks/assets/scss/components/tables";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/footer";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/header";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/pages";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/posts";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/sidebar";

View file

@ -0,0 +1,5 @@
// Same hue as hsl(195, 100%, 47%) (#00b6f0) or the invidious accent color,
// but modified with different lightness and saturation for better readability
// with black text.
$invidious: hsl(195, 85%, 65%);
$primary: $invidious;

17
babel.config.js Normal file
View file

@ -0,0 +1,17 @@
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
browsers: [
// Best practice: https://github.com/babel/babel/issues/7789
'>=1%',
'not ie 11',
'not op_mini all'
]
}
}
]
]
};

125
config/_default/config.toml Normal file
View file

@ -0,0 +1,125 @@
baseurl = "/"
canonifyURLs = false
disableAliases = true
disableHugoGeneratorInject = true
enableEmoji = true
enableGitInfo = false
enableRobotsTXT = true
languageCode = "en-US"
paginate = 7
rssLimit = 10
# add redirects/headers
[outputs]
home = ["HTML", "RSS", "REDIRECTS", "HEADERS"]
section = ["HTML", "RSS", "SITEMAP"]
# remove .{ext} from text/netlify
[mediaTypes."text/netlify"]
suffixes = [""]
delimiter = ""
# add output format for netlify _redirects
[outputFormats.REDIRECTS]
mediaType = "text/netlify"
baseName = "_redirects"
isPlainText = true
notAlternative = true
# add output format for netlify _headers
[outputFormats.HEADERS]
mediaType = "text/netlify"
baseName = "_headers"
isPlainText = true
notAlternative = true
# add output format for section sitemap.xml
[outputFormats.SITEMAP]
mediaType = "application/xml"
baseName = "sitemap"
isHTML = false
isPlainText = true
noUgly = true
rel = "sitemap"
[markup]
[markup.goldmark]
[markup.goldmark.extensions]
linkify = false
[markup.goldmark.parser]
autoHeadingID = true
autoHeadingIDType = "github"
[markup.goldmark.parser.attribute]
block = true
title = true
[markup.goldmark.renderer]
unsafe = true
[markup.highlight]
codeFences = false
guessSyntax = false
hl_Lines = ""
lineNoStart = 1
lineNos = false
lineNumbersInTable = true
noClasses = false
style = "dracula"
tabWidth = 4
[sitemap]
changefreq = "weekly"
filename = "sitemap.xml"
priority = 0.5
[taxonomies]
contributor = "contributors"
[permalinks]
blog = "/blog/:title/"
[module]
[module.hugoVersion]
extended = true
min = "0.80.0"
max = ""
[[module.mounts]]
source = "node_modules/@hyas/doks/archetypes"
target = "archetypes"
[[module.mounts]]
source = "node_modules/@hyas/doks/assets"
target = "assets"
# [[module.mounts]]
# source = "node_modules/@hyas/doks/content"
# target = "content"
[[module.mounts]]
source = "node_modules/@hyas/doks/data"
target = "data"
[[module.mounts]]
source = "node_modules/@hyas/doks/layouts"
target = "layouts"
[[module.mounts]]
source = "node_modules/@hyas/doks/static"
target = "static"
[[module.mounts]]
source = "node_modules/flexsearch"
target = "assets/js/vendor/flexsearch"
[[module.mounts]]
source = "node_modules/katex"
target = "assets/js/vendor/katex"
[[module.mounts]]
source = "assets"
target = "assets"
[[module.mounts]]
source = "static"
target = "static"
[[module.mounts]]
source = "content"
target = "content"
[[module.mounts]]
source = "layouts"
target = "layouts"
[[module.mounts]]
source = "archetypes"
target = "archetypes"
[[module.mounts]]
source = "data"
target = "data"

View file

@ -0,0 +1,36 @@
[[main]]
name = "Documentation"
url = "https://docs.invidious.io/"
weight = 10
#[[main]]
# name = "Blog"
# url = "/blog/"
# weight = 20
[[main]]
name = "Contribute"
url = "https://github.com/iv-org/invidious#contribute"
weight = 20
[[main]]
name = "Donate"
url = "/donate/"
weight = 30
[[social]]
name = "GitHub"
pre = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-github\"><path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"></path></svg>"
url = "https://github.com/iv-org"
post = "v0.1.0"
weight = 20
# [[footer]]
# name = "Privacy"
# url = "/privacy-policy/"
# weight = 10
[[footer]]
name = "Website Source Code"
url = "https://github.com/iv-org/invidious.io"
weight = 10

View file

@ -0,0 +1,40 @@
# Meta Data for SEO
## Homepage
title = "Invidious"
titleSeparator = "-"
titleAddition = "An open source alternative front-end to YouTube"
description = "Invidious is an open source alternative front-end to YouTube "
## Sitelinks Search Box
siteLinksSearchBox = false
## Chrome Browser
themeColor = "#fff"
# Images
quality = 85
bgColor = "#fff"
landscapePhotoWidths = [900, 800, 700, 600, 500]
portraitPhotoWidths = [800, 700, 600, 500]
lqipWidth = "20x"
# Footer
footer = "Powered by <a href=\"https://gohugo.io/\">Hugo</a>, and <a href=\"https://getdoks.org/\">Doks</a>. Illustrations by <a href=\"https://undraw.co/\">unDraw</a>."
copyRight = ""
# Edit Page
docsRepo = "https://github.com/iv-org/invidious.io"
editPage = false
[options]
lazySizes = true
clipBoard = true
instantPage = true
flexSearch = true
darkMode = true
bootStrapJs = true
breadCrumb = false
highLight = true
kaTex = false
collapsibleSidebar = false

2
config/next/config.toml Normal file
View file

@ -0,0 +1,2 @@
baseurl = "https://invidious.io/"
canonifyURLs = true

36
config/postcss.config.js Normal file
View file

@ -0,0 +1,36 @@
const autoprefixer = require('autoprefixer');
const purgecss = require('@fullhuman/postcss-purgecss');
const whitelister = require('purgecss-whitelister');
module.exports = {
plugins: [
autoprefixer(),
purgecss({
content: [
'./node_modules/@hyas/doks/layouts/**/*.html',
'./node_modules/@hyas/doks/content/**/*.md',
'./layouts/**/*.html',
'./content/**/*.md',
],
safelist: [
'lazyloaded',
'table',
'thead',
'tbody',
'tr',
'th',
'td',
'h5',
...whitelister([
'./node_modules/@hyas/doks/assets/scss/common/_variables.scss',
'./node_modules/@hyas/doks/assets/scss/components/_buttons.scss',
'./node_modules/@hyas/doks/assets/scss/components/_code.scss',
'./node_modules/@hyas/doks/assets/scss/components/_syntax.scss',
'./node_modules/@hyas/doks/assets/scss/components/_search.scss',
'./node_modules/@hyas/doks/assets/scss/common/_dark.scss',
'./node_modules/katex/dist/katex.css',
]),
],
}),
],
}

View file

@ -0,0 +1,2 @@
baseurl = "https://invidious.io/"
canonifyURLs = true

9
content/_index.md Normal file
View file

@ -0,0 +1,9 @@
---
title : "Invidious"
description: "Invidious is an open source alternative front-end to YouTube."
lead: "Invidious is an open source alternative front-end to YouTube."
date: 2020-10-06T08:47:36+00:00
lastmod: 2020-10-06T08:47:36+00:00
draft: false
images: []
---

View file

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Before After
Before After

8
content/blog/_index.md Normal file
View file

@ -0,0 +1,8 @@
---
title: "Blog"
description: "The Doks Blog."
date: 2020-10-06T08:49:55+00:00
lastmod: 2020-10-06T08:49:55+00:00
draft: true
images: []
---

10
content/contact/index.md Normal file
View file

@ -0,0 +1,10 @@
---
title: "Contact"
description: "Drop us an email."
date: 2020-08-27T19:25:12+02:00
lastmod: 2020-08-27T19:25:12+02:00
draft: true
images: []
---
{{< email user="hello" domain="getdoks.org" >}}

View file

@ -0,0 +1,10 @@
---
title: "Contributors"
description: "The Doks contributors."
date: 2020-10-06T08:50:29+00:00
lastmod: 2020-10-06T08:50:29+00:00
draft: true
images: []
---
The Doks contributors.

View file

@ -0,0 +1,12 @@
---
title: "Henk Verlinde"
description: "Creator of Hyas."
date: 2020-10-06T08:50:45+00:00
lastmod: 2020-10-06T08:50:45+00:00
draft: false
images: []
---
Creator of Hyas.
[@HenkVerlinde](https://twitter.com/henkverlinde)

9
content/docs/_index.md Normal file
View file

@ -0,0 +1,9 @@
---
title : "Docs"
description: "Docs Doks."
lead: ""
date: 2020-10-06T08:48:23+00:00
lastmod: 2020-10-06T08:48:23+00:00
draft: true
images: []
---

16
content/donate/index.md Normal file
View file

@ -0,0 +1,16 @@
---
title: "Donate"
description: "Donate to the Invidious project."
date: 2020-08-27T19:23:18+02:00
lastmod: 2020-08-27T19:23:18+02:00
draft: false
images: []
---
Bitcoin (BTC): [bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr](bitcoin:bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr)
Monero (XMR): [41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR](monero:41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR)
Ethereum (ETH): [0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B](ethereum:0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B)
Litecoin (LTC): [ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9](litecoin:ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9)

View file

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 589 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

View file

@ -0,0 +1,36 @@
---
title: "Privacy Policy"
description: "We do not use cookies and we do not collect any personal data."
date: 2020-08-27T19:23:18+02:00
lastmod: 2020-08-27T19:23:18+02:00
draft: true
images: []
---
__TLDR__: We do not use cookies and we do not collect any personal data.
## Website visitors
- No personal information is collected.
- No information is stored in the browser.
- No information is shared with, sent to or sold to third-parties.
- No information is shared with advertising companies.
- No information is mined and harvested for personal and behavioral trends.
- No information is monetized.
### Information we collect and what we use it for
We run [Plausible](https://plausible.io/) analytics on getdoks.org. The following information is collected:
- __Page URL__. We track the page URL of each page view on this website. We use this to understand which pages have been viewed and how many times a particular page has been viewed. For example: _https://getdoks.org/_.
- __HTTP Referrer__. We use the referrer string to understand the number of visitors referred to this website from links on other sites. For example: _https://github.com/_.
- __Browser__. We use this to understand what browsers people use when visiting this website. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _Chrome_.
- __Operating system__. We use this to understand what operating systems people use when visiting this website. We only use the brand of the operating system and dont include the version number or any other details. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _GNU/Linux_.
- __Device type__. We use this to understand what devices people use when visiting this website. This is derived from window.innerWidth. The actual width of the browser in pixels is discarded. For example: _Desktop_.
- __Visitor Country__. We look up the visitors country using the IP address. We do not track anything more granular than the country of origin and the IP address of the visitor is discarded. We never store IP addresses in our database or logs. For example: _Canada_.
## Contact us
[Contact us]({{< ref "contact/index.md" >}}) if you have any questions.
Effective Date: _27th August 2020_

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Before After
Before After

View file

@ -0,0 +1,11 @@
exports.handler = (event, context, callback) => {
callback (null, {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: 'Hi from Lambda.',
}),
});
}

BIN
images/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
images/tn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

77
layouts/index.html Normal file
View file

@ -0,0 +1,77 @@
{{ define "main" }}
<section class="section container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-12 text-center">
<h1><img src="invidious-colored-vector.svg" width="192" height="192" alt="Invidious logo"></h1>
<h1 class="mt-0">{{ .Title }}</h1>
</div>
<div class="col-lg-9 col-xl-8 text-center">
<p class="lead">{{ .Params.lead | safeHTML }}</p>
<a class="btn btn-primary btn-lg px-4 mb-2" href="{{ "https://instances.invidious.io/" | relURL }}" role="button">Use Invidious</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href="{{ "https://docs.invidious.io/Installation.md" | relURL }}" role="button">Host Invidious</a>
<p class="meta">Invidious is <a href="https://github.com/iv-org/invidious">Free (Libre) and Open Source software</a> licensed under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPL-3.0</a>.</p>
<h5 class="mt-0">Chat with us:</h5>
<a href="https://matrix.to/#/#invidious:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/invidious:matrix.org?label=Matrix&color=darkgreen"></a>
<a href="https://web.libera.chat/?channel=#invidious"><img alt="Libera.chat (IRC)" src="https://img.shields.io/badge/IRC%20%28Libera.chat%29-%23invidious-darkgreen"></a>
<br/> <br/>
</div>
</div>
</section>
{{ end }}
{{ define "sidebar-prefooter" }}
<hr>
<section class="section section-sm">
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-5">
<img src="undraw_privacy_protection_nlwy.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Privacy focused</h2>
<p>Invidious protects you from the prying eyes of Google. It won't track you either!</p>
</div>
<div class="col-lg-5">
<img src="undraw_design_inspiration_fmjm.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Ethically designed</h2>
<p>Invidious helps you regain focus through a humane-design — no more shall your day be wasted away!</p>
</div>
<div class="col-lg-5">
<img src="undraw_subscriptions_re_k7jj.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Accounts</h2>
<p>Invidious allows you to subscribe to channels and create playlists, without needing a YouTube account.</p>
</div>
</div>
</div>
<br/> <br/>
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-5">
<img src="undraw_Around_the_world_re_n353.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Multilingual</h2>
<p>Thanks to our <a href="https://hosted.weblate.org/engage/invidious/">translators</a>, Invidious is available in many different languages.</p>
</div>
<div class="col-lg-5">
<img src="undraw_Placeholders_re_pvr4.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">No Ads</h2>
<p>Invidious allows you to watch videos without being disturbed by annoying ads. Also 100% supported by <a href="https://sponsor.ajay.app/">Sponsorblock</a></p>
</div>
<div class="col-lg-5">
<img src="undraw_Coding_re_iv62.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Developer API</h2>
<p>Invidious has a <a href="https://docs.invidious.io/API.md">fully featured and documented REST API</a> for developers.</p>
</div>
</div>
</div>
</section>
{{ end }}
{{ define "sidebar-footer" }}
<section class="section section-sm container-fluid">
<div class="row justify-content-center text-center">
<div class="col-lg-9">
{{- .Content -}}
</div>
</div>
</section>
{{ end }}

4
layouts/robots.txt Normal file
View file

@ -0,0 +1,4 @@
User-agent: *
Disallow:
Sitemap: https://invidious.io/sitemap.xml

31
netlify.toml Normal file
View file

@ -0,0 +1,31 @@
[build]
publish = "public"
functions = "functions"
[build.environment]
NODE_VERSION = "16.3.0"
NPM_VERSION = "7.16.0"
HUGO_VERSION = "0.84.4"
[context.production]
command = "hugo --gc --minify"
[context.deploy-preview]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.branch-deploy]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.next]
command = "hugo --gc --minify"
[context.next.environment]
HUGO_ENV = "next"
[dev]
framework = "#custom"
command = "shx rm -rf public resources && hugo server --bind=0.0.0.0 --disableFastRender"
targetPort = 1313
port = 8888
publish = "public"
autoLaunch = false

19948
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

66
package.json Normal file
View file

@ -0,0 +1,66 @@
{
"name": "doks-child-theme",
"description": "Doks child theme",
"version": "0.3.3",
"browserslist": [
"defaults"
],
"repository": "https://github.com/h-enk/doks",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"scripts": {
"init": "shx rm -rf .git && git init -b main",
"create": "exec-bin bin/hugo/hugo new",
"prestart": "npm run clean",
"start": "exec-bin bin/hugo/hugo server --bind=0.0.0.0 --disableFastRender",
"prebuild": "npm run clean",
"build": "exec-bin bin/hugo/hugo --gc --minify",
"build:preview": "npm run build -D -F",
"clean": "shx rm -rf public resources",
"clean:install": "shx rm -rf package-lock.json bin node_modules ",
"lint": "npm run -s lint:scripts && npm run -s lint:styles && npm run -s lint:markdown",
"lint:scripts": "eslint assets/js config functions",
"lint:styles": "stylelint \"assets/scss/**/*.{css,sass,scss,sss,less}\"",
"lint:markdown": "markdownlint \"*.md\" \"content/**/*.md\"",
"server": "exec-bin bin/hugo/hugo server",
"test": "npm run -s lint",
"env": "env",
"precheck": "npm version",
"check": "exec-bin bin/hugo/hugo version",
"copy:katex-fonts": "shx cp ./node_modules/katex/dist/fonts/* ./static/fonts/",
"postinstall": "hugo-installer --version otherDependencies.hugo --extended",
"version": "auto-changelog -p && git add CHANGELOG.md"
},
"devDependencies": {
"@babel/cli": "^7.14",
"@babel/core": "^7.15",
"@babel/preset-env": "^7.15",
"@fullhuman/postcss-purgecss": "^4.0",
"@hyas/doks": "^0.3",
"auto-changelog": "^2.3.0",
"autoprefixer": "^10.3",
"bootstrap": "^5.1",
"clipboard": "^2.0",
"eslint": "^7.32",
"exec-bin": "^1.0.0",
"hugo-installer": "^3.1",
"flexsearch": "^0.7.21",
"highlight.js": "^11.0",
"instant.page": "^5.1",
"katex": "^0.13",
"lazysizes": "^5.3",
"markdownlint-cli": "^0.28",
"mermaid": "^8.11",
"postcss": "^8.3",
"postcss-cli": "^8.3",
"purgecss-whitelister": "^2.4",
"shx": "^0.3.3",
"stylelint": "^13.13",
"stylelint-config-standard": "^22.0"
},
"otherDependencies": {
"hugo": "0.87.0"
}
}

View file

@ -1,116 +0,0 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=../css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Contact - Invidious</title>
<meta name=description content="Contact the Invidious project.">
<link rel=canonical href=/contact/>
<meta property="og:locale" content>
<meta property="og:type" content="article">
<meta property="og:title" content="Contact">
<meta property="og:description" content="Contact the Invidious project.">
<meta property="og:url" content="/contact/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Contact">
<meta name=twitter:description content="Contact the Invidious project.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Contact">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="page single">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2">
<li class="nav-item">
<a class=nav-link href=https://invidious.io/screenshots/>Screenshots</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class="nav-item">
<a class=nav-link href=https://invidious.io/team/>Team</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
<li class="nav-item active">
<a class=nav-link href=https://invidious.io/contact/>Contact</a>
</li>
</ul>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<div class="row justify-content-center">
<div class="col-md-12 col-lg-10 col-xl-8">
<article>
<h1>Contact</h1>
<h2>Chat with us and our users:</h2>
<p>Matrix: <a href=https://matrix.to/#/#invidious:matrix.org>#invidious:matrix.org</a></p>
<p>IRC: <a href=https://web.libera.chat/?channel=#invidious>#invidious</a> on <a href=https://libera.chat/>Libera Chat</a></p>
<p>Fediverse: <a href=https://social.tchncs.de/@invidious>@invidious@social.tchncs.de</a></p>
<h2>Contact the team directly:</h2>
<p class="text-muted">Remove `+SPAMGUARD` from the addresses.</p>
<p>General Inquiries <em>(forwarded to all team members)</em>:
<br>
<code>contact +SPAMGUARD [at] invidious [dot] io</code></p>
<p>Security issues <em>(forwarded to <a href="https://github.com/TheFrenchGhosty">@TheFrenchGhosty</a> and <a href="https://github.com/Perflyst">@Perflyst</a>)</em>:
<br>
<code>security +SPAMGUARD [at] invidious [dot] io</code>
<br>
<i class="text-muted">The creation of a PGP key for this address is planned</i>
</p>
</article>
</div>
</div>
</div>
</div>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=../js/main.js></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View file

@ -1,105 +0,0 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=../css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Donate - Invidious</title>
<meta name=description content="Donate to the Invidious project.">
<link rel=canonical href=/donate/>
<meta property="og:locale" content>
<meta property="og:type" content="article">
<meta property="og:title" content="Donate">
<meta property="og:description" content="Donate to the Invidious project.">
<meta property="og:url" content="/donate/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Donate">
<meta name=twitter:description content="Donate to the Invidious project.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Donate">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="page single">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2">
<li class="nav-item">
<a class=nav-link href=https://invidious.io/screenshots/>Screenshots</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class="nav-item">
<a class=nav-link href=https://invidious.io/team/>Team</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class="nav-item active">
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/contact/>Contact</a>
</li>
</ul>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<div class="row justify-content-center">
<div class="col-md-12 col-lg-10 col-xl-8">
<article>
<h1>Donate</h1>
<p>Bitcoin (BTC): <a href=bitcoin:bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr>bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr</a></p>
<p>Monero (XMR): <a href=monero:41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR>41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR</a></p>
<p>Ethereum (ETH): <a href=ethereum:0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B>0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B</a></p>
<p>Litecoin (LTC): <a href=litecoin:ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9>ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9</a></p>
</article>
</div>
</div>
</div>
</div>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=../js/main.js></script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

View file

@ -1,161 +0,0 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Invidious - An open source alternative front-end to YouTube</title>
<meta name=description content="Invidious is an open source alternative front-end to YouTube.">
<link rel=canonical href=/>
<meta property="og:locale" content>
<meta property="og:type" content="website">
<meta property="og:title" content="Invidious">
<meta property="og:description" content="Invidious is an open source alternative front-end to YouTube.">
<meta property="og:url" content="/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Invidious">
<meta name=twitter:description content="Invidious is an open source alternative front-end to YouTube.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Invidious">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="home">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2">
<li class="nav-item">
<a class=nav-link href=https://invidious.io/screenshots/>Screenshots</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class="nav-item">
<a class=nav-link href=https://invidious.io/team/>Team</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/contact/>Contact</a>
</li>
</ul>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<section class="section container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-12 text-center">
<h1><img src=invidious-colored-vector.svg width=192 height=192 alt="Invidious logo"></h1>
<h1 class=mt-0>Invidious</h1>
</div>
<div class="col-lg-9 col-xl-8 text-center">
<p class=lead>Invidious is an open source alternative front-end to YouTube.</p>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://instances.invidious.io/ role=button>Use Invidious</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://docs.invidious.io/installation/ role=button>Host Invidious</a>
<p class=meta>Invidious is <a href=https://github.com/iv-org/invidious>Free (Libre) and Open Source software</a> licensed under the <a href=https://www.gnu.org/licenses/agpl-3.0.en.html>AGPL-3.0</a>.</p>
<h5 class=mt-0>Chat with us:</h5>
<a href=https://matrix.to/#/#invidious:matrix.org><img alt=Matrix src="https://img.shields.io/matrix/invidious:matrix.org?label=Matrix&color=darkgreen"></a>
<a href="https://web.libera.chat/?channel=#invidious"><img alt="Libera.chat (IRC)" src=https://img.shields.io/badge/IRC%20%28Libera.chat%29-%23invidious-darkgreen></a>
<br>
<a rel="me" href="https://social.tchncs.de/@invidious"><img alt="Fediverse: @invidious@social.tchncs.de" src="https://img.shields.io/badge/Fediverse-%40invidious%40social.tchncs.de-darkgreen"></a>
<br> <br>
</div>
</div>
</section>
</div>
</div>
<hr>
<section class="section section-sm">
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-5>
<img src=images/undraw_privacy_protection_nlwy.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Privacy focused</h2>
<p>Invidious protects you from the prying eyes of Google. It won't track you either!</p>
</div>
<div class=col-lg-5>
<img src=images/undraw_design_inspiration_fmjm.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Ethically designed</h2>
<p>Invidious helps you regain focus through a humane-design — no more shall your day be wasted away!</p>
</div>
<div class=col-lg-5>
<img src=images/undraw_subscriptions_re_k7jj.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Accounts</h2>
<p>Invidious allows you to subscribe to channels and create playlists, without needing a YouTube account.</p>
</div>
</div>
</div>
<br> <br>
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-5>
<img src=images/undraw_Around_the_world_re_n353.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Multilingual</h2>
<p>Thanks to our <a href=https://hosted.weblate.org/engage/invidious/>translators</a>, Invidious is available in many different languages.</p>
</div>
<div class=col-lg-5>
<img src=images/undraw_Placeholders_re_pvr4.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>No Ads</h2>
<p>Invidious allows you to watch videos without being disturbed by annoying ads. Also 100% supported by <a href=https://sponsor.ajay.app/>Sponsorblock</a></p>
</div>
<div class=col-lg-5>
<img src=images/undraw_Coding_re_iv62.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Developer API</h2>
<p>Invidious has a <a href=https://docs.invidious.io/api/>fully featured and documented REST API</a> for developers.</p>
</div>
</div>
</div>
</section>
<section class="section section-sm container-fluid">
<div class="row justify-content-center text-center">
<div class=col-lg-9></div>
</div>
</section>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=js/main.js></script>
</body>
</html>

View file

@ -1,7 +0,0 @@
(() => {
document.getElementById('mode').addEventListener('click', () => {
document.body.classList.toggle('dark'),
localStorage.setItem('theme', document.body.classList.contains('dark') ? 'dark' : 'light')
}),
localStorage.getItem('theme') === 'dark' && document.body.classList.add('dark')
})()

View file

@ -1,2 +0,0 @@
User-agent: *
Disallow:

View file

@ -1,140 +0,0 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=../css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Invidious - An open source alternative front-end to YouTube</title>
<meta name=description content="Invidious is an open source alternative front-end to YouTube.">
<link rel=canonical href=/>
<meta property="og:locale" content>
<meta property="og:type" content="website">
<meta property="og:title" content="Invidious">
<meta property="og:description" content="Invidious is an open source alternative front-end to YouTube.">
<meta property="og:url" content="/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Invidious">
<meta name=twitter:description content="Invidious is an open source alternative front-end to YouTube.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Invidious">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="home">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2">
<li class="nav-item active">
<a class=nav-link href=https://invidious.io/screenshots/>Screenshots</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class="nav-item">
<a class=nav-link href=https://invidious.io/team/>Team</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/contact/>Contact</a>
</li>
</ul>
</div>
</header>
<section class="section section-sm">
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-5>
<h2 class=h4>Player</h2>
<a href="../images/01_player.png">
<img src=../images/01_player.png alt="Player" width=350/>
</a>
</div>
<div class=col-lg-5>
<h2 class=h4>Preferences</h2>
<a href="../images/02_preferences.png">
<img src=../images/02_preferences.png alt="Preferences" width=350/>
</a>
</div>
<div class=col-lg-5>
<h2 class=h4>Subscriptions</h2>
<a href="../images/03_subscriptions.png">
<img src=../images/03_subscriptions.png alt="Subscriptions" width=350/>
</a>
</div>
</div>
</div>
<br> <br>
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-5>
<a href="../images/04_description.png">
<img src=../images/04_description.png alt="Description" width=350/>
</a>
</div>
<div class=col-lg-5>
<a href="../images/05_preferences.png">
<img src=../images/05_preferences.png alt="Preferences" width=350/>
</a>
</div>
<div class=col-lg-5>
<a href="../images/06_subscriptions.png">
<img src=../images/06_subscriptions.png alt="Subscriptions" width=350/>
</a>
</div>
</div>
</div>
</section>
<section class="section section-sm container-fluid">
<div class="row justify-content-center text-center">
<div class=col-lg-9></div>
</div>
</section>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=../js/main.js></script>
</body>
</html>

View file

@ -1,141 +0,0 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=../css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Team - Invidious</title>
<meta name=description content="Team of the Invidious project.">
<link rel=canonical href=/team/>
<meta property="og:locale" content>
<meta property="og:type" content="article">
<meta property="og:title" content="Team">
<meta property="og:description" content="Team of the Invidious project.">
<meta property="og:url" content="/team/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Team">
<meta name=twitter:description content="Team of the Invidious project.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Team">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="page single">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2">
<li class="nav-item">
<a class=nav-link href=https://invidious.io/screenshots/>Screenshots</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class="nav-item active">
<a class=nav-link href=https://invidious.io/team/>Team</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
<li class="nav-item">
<a class=nav-link href=https://invidious.io/contact/>Contact</a>
</li>
</ul>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<div class="row justify-content-center">
<div class="col-md-12 col-lg-10 col-xl-8">
<article>
<h1>The Team</h1>
<p>
Invidious is a community maintained project, the following lists are the main people who work on it.
</p>
<p>
<a href="https://github.com/TheFrenchGhosty">TheFrenchGhosty</a>
<br>
<a href="https://github.com/Perflyst">Perflyst</a>
<br>
<a href="https://github.com/SamantazFox">Samantaz Fox</a>
<br>
<a href="https://github.com/unixfox">unixfox</a>
<br>
<a href="https://github.com/syeopite">syeopite</a>
</p>
<p class="text-muted">Both TheFrenchGhosty and Perflyst have full access to everything related to the project (including the cryptocurrency wallets) (making the project <a href="https://en.wikipedia.org/wiki/Bus_factor">bus factor</a> resistant).</p>
<br>
<h1>Main contributors</h1>
<p>
<a href="https://github.com/TeamNewPipe">The NewPipe team</a>, mainly <a href="https://github.com/AudricV">AudricV</a>
<br>
<a href="https://github.com/FreeTubeApp">The FreeTube team</a>, mainly <a href="https://github.com/absidue">Absidue</a> and <a href="https://github.com/ChunkyProgrammer">ChunkyProgrammer</a>
<br>
<a href="https://github.com/yt-dlp">The yt-dlp team</a>
<br>
<a href="https://github.com/bugmaschine">einfachzocken</a>
<br>
<a href="https://github.com/perennialtech">perennial</a>
</p>
<br>
<h1>Past contributors</h1>
<p><a href="https://github.com/omarroth">Omar Roth</a>: Original developer
<br>
<a href="https://github.com/saltycrys">saltycrys</a>
<br>
<a href="https://github.com/leonklingele">leonklingele</a>
<br>
<a href="https://github.com/matthewmcgarvey">Matthew McGarvey</a>
<br><br>
And <a href="https://github.com/iv-org/invidious/graphs/contributors">more!</a>
</p>
</article>
</div>
</div>
</div>
</div>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=../js/main.js></script>
</body>
</html>

14
theme.toml Normal file
View file

@ -0,0 +1,14 @@
name = "Doks child theme"
license = "MIT"
licenselink = "https://github.com/h-enk/doks/blob/master/LICENSE"
description = "Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default."
homepage = "https://github.com/h-enk/doks-child-theme"
demosite = "https://doks-child-theme.netlify.app"
tags = ["landing page", "documentation", "blog", "minimal", "modern", "customizable", "search", "dark mode", "bootstrap"]
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "dark mode"]
[author]
name = "Henk Verlinde"
homepage = "https://henkverlinde.com"