Commit Graph
5869 Commits
Author SHA1 Message Date
Hosted WeblateandOğuz Ersen be9874cad1 Update Turkish translation
Update Turkish translation

Update Turkish translation

Update Turkish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
2026-08-02 22:29:48 +02:00
Hosted Weblateandninjum eb4998c1fc Update Galician translation
Update Galician translation

Update Galician translation

Update Galician translation

Add Galician translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ninjum <ninhum@gmx.com>
2026-08-02 22:29:48 +02:00
Fijxu ad4b1c69ce chore: add more development dependencies to packages.nix + some notes 2026-08-02 16:29:05 -04:00
FijxuandGitHub 21a3434850 fix: skip non comment commentFilterContextViewModel key in comments (#5870)
Some YouTube videos like https://www.youtube.com/watch?v=Ajkr_Wg-k8g
had an non comment key that was inside the Array that contained some
comment information that Invidious parses (like comment_key and
toolbar_key), that being the `commentFilterContextViewModel` key, which
is just an indicator on how comments are sorted:

```
{
    "commentThreadRenderer": { ... } <- comment information that is
    handled by line 134 of youtube.cr
},
{
    "commentFilterContextViewModel": {
        "text": {
            "content": "Top is selected, so you'll see featured comments"
        },
        "accessibility": {
            "accessibilityData": {
                "label": "Top is selected, so you'll see featured comments"
            }
        }
    } <- Useless information, this is not a comment
}
```
2026-08-02 16:20:43 -04:00
FijxuandGitHub 51dd4fefd0 fix: fix comments html rendering (#5862)
Now the structure no longer has an array of author thumbnails, is a
single URL:

```json
"author": {
    "channelId": "UCiLGHgWdQvfl1G8BPgcO55w",
    "displayName": "@uber_nerd-l7r",
    "avatarThumbnailUrl": "https://yt3.ggpht.com/ee1_iFgiBvgKHUr3r0_qUVqUpGKhDZaePYq8Q4tIsyVS9L1oRHHJLcHtXrSxyS63AmvldKicbw=s88-c-k-c0x00ffffff-no-rj",
    "isVerified": false,
    "isCurrentUser": false,
    "isCreator": false,
```
2026-08-02 03:48:25 -04:00
FijxuandGitHub 1a0fd8287d chore: Move nix files out of root directory (#5861) 2026-08-02 00:06:13 -04:00
Fijxu 40378a2dc0 Fix lint and formatting 2026-08-01 21:29:31 -04:00
FijxuandGitHub 9c3266ef64 CI: Pin Crystal to 1.20.3 for linting task so ameba can build (#5859) 2026-08-01 21:29:03 -04:00
Fijxu a6f206b21f CI: ignore nix files 2026-08-01 18:55:40 -04:00
FijxuandGitHub 67bfb56bbe chore: Add Nix development files (#5856)
* chore: Add Nix development files

* chore: add dir env flakes support and add it's directory to gitignore

* chore: add shards
2026-08-01 18:50:15 -04:00
TheFrenchGhostyandGitHub 6e13814c9e Remove the awesome humane tech badge (#5853) 2026-08-01 19:33:48 +02:00
Fijxu c5fb30c509 CI: add Crystal 1.21.0 in ci.yml matrix 2026-07-31 22:38:52 -04:00
Fijxu 111ae066a1 CI: update Crystal 1.20.2 to 1.20.3 in ci.yml matrix 2026-07-31 22:34:34 -04:00
TheFrenchGhostyandGitHub 76ff3c006b Update the AI policy to properly ban AI slop (#5849)
* Update the AI policy to mention AI slop

* Better wording

* Typo
2026-07-31 11:17:04 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9d1291a0b8 chore(deps): bump actions/setup-python from 5 to 7 (#5829)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-28 10:10:43 +02:00
Emilien 59bb97cdc3 chore: put back -dev in shards.yml 2026-07-23 23:10:25 +02:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
5953859e29 Release v2.20260723.0 (#5824)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
v2.20260723.0
2026-07-23 23:08:02 +02:00
Émilien (perso)andGitHub 5510657e80 feat: add release script + trigger from github action (#5823) 2026-07-23 23:02:46 +02:00
adfec7646b Hotfix - Fix YouTube change(#5818)
Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>
2026-07-23 06:04:24 +02:00
bunchy7ssandGitHub 30c0656a93 Hotfix - Fix YouTube change (#5819)
Credit to https://git.miningtcup.me/MiningTcup
2026-07-23 05:57:07 +02:00
FijxuandGitHub e5bde4bc60 chore: update openssl to 3.6.3 in OCI (#5808) 2026-07-14 02:38:21 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
c84acc10ad chore(deps): bump int128/docker-manifest-create-action (#5807)
Bumps [int128/docker-manifest-create-action](https://github.com/int128/docker-manifest-create-action) from 2.22.0 to 2.25.0.
- [Release notes](https://github.com/int128/docker-manifest-create-action/releases)
- [Commits](https://github.com/int128/docker-manifest-create-action/compare/v2.22.0...v2.25.0)

---
updated-dependencies:
- dependency-name: int128/docker-manifest-create-action
  dependency-version: 2.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 22:46:19 -04:00
TheFrenchGhostyandGitHub 029a496578 Various enhancements and rewording to the issues/PRs templates (#5804)
* Various enhancements and rewording to the issues/PRs templates

* Remove the "explain how" from the checkboxes since the explanation is
below

* Make the checkbox valid markdown so that they don't appear as text next
to the rendered checked one

* Add comma to make the sentences flow better

* Consistency
2026-07-12 09:29:21 +02:00
1111ea7294 Add a field for AI policy compliance in the issues/PRs templates (#5803)
* Convert issue templates to Issue Forms with AI policy disclosure

Convert the 3 markdown issue templates (.md) to GitHub Issue Forms (.yml)
to enable interactive form elements, and add an AI disclosure section per
the AI Policy (AI_POLICY.md):

- Required checkbox to acknowledge having read the AI Policy
- Required dropdown for AI usage (none / fully / partially with explanation)
- Optional input for model(s) used (open-weight examples in placeholder)
- Optional input for tool(s) used (FOSS examples in placeholder)
- Optional textarea to explain how AI was used (for the partial option)

The existing template content and structure is preserved, only converted
from markdown to the Issue Forms schema.

* Align pull request template with AI policy disclosure

Update the pull request template to match the AI disclosure standards
introduced in the issue templates:

- Use relative link to AI_POLICY.md instead of absolute GitHub URL
- Update dropdown wording to match issue forms
- Use open-weight models in placeholder examples
- Use FOSS tools in placeholder examples
- Add 'How was AI used?' section for the partial-usage explanation

* Fix assignees field type in issue templates

Use an empty array instead of an empty string for the assignees field,
as required by the GitHub Issue Forms schema.

* Enhance the PR template

* Reword the issue templates to be consistent with the PR template

* Enhance the PR template

* Typo coming from the original template

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Better wording for what comes from the original templates

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Switch to full URLs since relative URL break inconsistently

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-11 11:34:32 +02:00
absidueandGitHub 9e8d102c94 Fix videos being incorrectly labelled as isUpcoming = true (#5800) 2026-07-11 07:33:23 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6373ac7814 chore(deps): bump 84codes/crystal in /docker (#5797)
Bumps 84codes/crystal from 1.20.2-alpine to 1.20.3-alpine.

---
updated-dependencies:
- dependency-name: 84codes/crystal
  dependency-version: 1.20.3-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 16:39:57 +02:00
31ecdd85f9 Create AI_POLICY.md (#5791)
* Create AI_POLICY.md

* Add some more

* Typo

* Update AI_POLICY.md

Co-authored-by: Émilien (perso) <4016501+unixfox@users.noreply.github.com>

* Various minor enhancements

* Various small rewording

* Add a line about it being mostly done by the maintainers

---------

Co-authored-by: Émilien (perso) <4016501+unixfox@users.noreply.github.com>
2026-07-04 08:20:07 +02:00
FijxuandGitHub 9c62c8b660 Add option to disable easy to abuse API endpoints (#5630)
* Add option to disable easy to abuse API endpoints

The API endpoints that will be disabled when this option are:
 - /api/v1/videos
 - /api/v1/clips
 - /api/v1/transcripts

There is still API endponts that need some sort of validation or
connection/proxying to Invidious companion like
`/api/v1/captions` and `/api/v1/storyboards` since they also do a video
request to Invidious companion. I'm not sure if the `/next` API endpoint
could be used to gather that type of information, if so, that would be
better.

Closes #5599

* Rename configuration variable, add additional comment for the option
2026-06-30 11:55:47 +02:00
unrealtournamentandGitHub d61dd7205c [RefreshChannelsJob] Reduce backoff if no errors occur (#5759)
* [RefreshChannelsJob] Reduce backoff if no errors occur

* Change log level for backoff decrease
2026-06-30 10:29:03 +02:00
Émilien (perso)andGitHub 77ad41678b fix: security issue playlist deletion cross user (#5790)
fixes #5777
2026-06-30 10:28:51 +02:00
FijxuandGitHub ab099e46cf chore: update User-Agent header for Youtube requests (#5794) 2026-06-30 10:28:26 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fe2b6dbd67 chore(deps): bump actions/cache from 5 to 6 (#5793)
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 17:26:26 -04:00
Emilien efb9269e58 Prepare for next release 2026-06-27 21:38:06 +02:00
ad0bd9289f Release v2.20260626.0 (#5787)
* Release v2.20260626.0

* chore: improve changelog x1

Co-authored-by: Fijxu <fijxu@nadeko.net>

* chore: apply second suggestion

Co-authored-by: Fijxu <fijxu@nadeko.net>

---------

Co-authored-by: Fijxu <fijxu@nadeko.net>
v2.20260626.0
2026-06-27 21:34:03 +02:00
FijxuandGitHub 08f862292a fix: fix playlists not showing any videos due to outdated playlist parsing (#5774)
* TODO, CHANGE COMMIT MESSAGE WHEN DONE

* save

* fix: fix playlists videos parsing

* revert text

* do not shadow outer item variable
2026-06-24 23:54:34 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
73a1bacea8 chore(deps): bump alpine from 3.23 to 3.24 in /docker (#5778)
Bumps alpine from 3.23 to 3.24.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: '3.24'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 22:59:52 +02:00
FijxuandGitHub c435dc1204 fix: fix private invidious playlists on rss feeds from being fetched without authentication (#5776) 2026-06-14 22:31:22 -04:00
Jan MoesenGitHubjanmoesen <@>
6dec63a3e5 Use “www.youtube.com” consistently (#5768)
Saves an unnecessary redirect by using `www.youtube.com` on some parts of Invidious where `youtube.com` was used instead. youtube.com will redirect to www.youtube.com anyways.

Co-authored-by: janmoesen <@>
2026-06-09 16:25:27 -04:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
067260a4ab chore(deps): bump int128/docker-manifest-create-action (#5766)
Bumps [int128/docker-manifest-create-action](https://github.com/int128/docker-manifest-create-action) from 2.21.0 to 2.22.0.
- [Release notes](https://github.com/int128/docker-manifest-create-action/releases)
- [Commits](https://github.com/int128/docker-manifest-create-action/compare/v2.21.0...v2.22.0)

---
updated-dependencies:
- dependency-name: int128/docker-manifest-create-action
  dependency-version: 2.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-09 15:29:59 -04:00
Fijxu 6b21daab56 Revert "Fix: Restore whitespace formatting while keeping disable_abusable_api configuration"
This reverts commit 8f279745db.
2026-06-04 20:22:00 -04:00
Fijxu 8f279745db Fix: Restore whitespace formatting while keeping disable_abusable_api configuration 2026-06-04 20:20:14 -04:00
FijxuandGitHub 98f4f118b2 Add support for alternative domains for Invidious cookies (#5647)
* Add support for alternative domains for Invidious cookies

* check if @@secure is already true before changing it's value

* Add alternative_domains config option example
2026-06-04 19:59:32 -04:00
FijxuandGitHub 85534a988d Only include '&' if params are present (#5646) 2026-06-03 18:18:57 -04:00
FijxuandGitHub 0e0ee40cb6 Dockerfile: Switch to 84codes crystal compiler container image (#5473)
Closes https://github.com/iv-org/invidious/issues/5456

The 84codes Crystal container image builds libgc (bdwgc) with `--enable-large-config`: https://github.com/84codes/crystal-packages/blob/b321bb4358b0140a63573d9d05ccf2f06c5ae040/alpine/Dockerfile#L13-L22
2026-05-30 17:58:49 -04:00
FijxuandGitHub e96ad036ca fix: Do not append query params quality=medium to videos that are about to premiere (#5755)
* fix: Do not append query params `quality=medium` to videos that are about to premiere

Video premieres do not have `audio_streams` and they aren't `video.live_now == true` either,
therefore we skip the checks that are made for older videos (`if audio_streams.empty? && !video.live_now` closure)
if the video is a premiere.

This commit also adds the `microformat` field to the `info` instance
variable of the `Video` struct, since it's needed for the function
`Video#premiere_timestamp : Time?`. This is more like a quick fix than a
proper fix because in `Invidious::Videos::Parser#parse_video_info`,
`premiere_timestamp` is gathered from the `microformat` JSON Object but
is used to set the `published` hash key for the `params` variable.

The parsers and structs really need a rework :/

* Revert "fix: Do not append query params `quality=medium` to videos that are about to premiere"

This reverts commit 5cfc8dace8.

* chore: build premiere_timestamp using video_type and published time
2026-05-30 15:49:21 -04:00
FijxuandGitHub 1a5a71b086 Fix Youtube and Invidious links not rewinding their time when video timestamp is rewinded (#5601)
Revert "Fix Youtube and Invidious links not rewinding their time when video timestamp is rewinded"

This reverts commit c3ee8a5d90.
2026-05-29 23:54:08 -04:00
Fijxu 3a35552a66 fix: fix wrong call to I18n.translate() function 2026-05-29 23:51:34 -04:00
FijxuandGitHub 8ef5ea03d4 feat: Add support for POST requests on searches for privacy (#5551)
Use already set preferences variable

Use span for description, grammar fix from Copilot
2026-05-29 23:48:11 -04:00
86c425b43f Fix disappearing end of the comments with emoji (#5587)
Previous code use UTF-8 to count characters however Emojis are UTF-16 units.
This difference leads to misalignment of index offsets.

Co-authored-by: shiny-comic <shiny-comic@winPC>
2026-05-28 16:51:06 -04:00
FijxuandGitHub 4ae227ce91 Encapsulate videos parser and clip functions inside it's own Invidious::Videos::Parser and Invidious::Videos::Clip module (#5745)
Part of https://github.com/iv-org/invidious/issues/5744
2026-05-28 13:11:41 -04:00