summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2025-05-14Update translation filesHosted Weblate
Updated by "Remove blank strings" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/invidious/translations/ Translation: Invidious/Invidious Translations
2025-05-14CI: Bump Crystal version matrix (#5293)Fijxu
* CI: Bump Crystal version matrix - 1.12.1 -> 1.12.2 - 1.13.2 -> 1.13.3 - 1.14.0 -> 1.14.1 - 1.15.0 -> 1.15.1 - Add 1.16.3 * Update Crystal 1.16.2 to 1.16.3 https://github.com/crystal-lang/crystal/releases/tag/1.16.3
2025-05-14Bump crystallang/crystal from 1.16.2-alpine to 1.16.3-alpine in /docker (#5301)dependabot[bot]
Bumps crystallang/crystal from 1.16.2-alpine to 1.16.3-alpine. --- updated-dependencies: - dependency-name: crystallang/crystal dependency-version: 1.16.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>
2025-05-10Revert "Update src/invidious/routes/before_all.cr"Fijxu
This reverts commit aab6ff4bb6e4d3174ab812e5a2cdeec841d2358e.
2025-05-10Update src/invidious/routes/before_all.crFijxu
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-05-10Add Javascript licence information automaticallysyeopite
This commit automates the process of documenting the licenses of Invidious Javascript files through a compile time macro in the licenses.ecr template file. This should hopefully help keep the license documentation up-to-date and allow extensions like LibreJS to always be able to load the latest Javascript files of Invidious. Currently only Invidious's first-party Javascript files are supported. In the future it should be possible to leverage videojs-dependencies.yml to automatically document the Javascript licenses for VideoJS and co. as well.
2025-05-10update commentFijxu
2025-05-10fix: set CSP header after setting preferences of registered usersFijxu
Fixes https://github.com/iv-org/invidious/issues/5142 add reason why extra_media_csp is after reading user preferences from the database and cookies set media-src after loading database user preferences
2025-05-09Add missing javascript licensesFijxu
2025-05-09Bump crystallang/crystal from 1.12.2-alpine to 1.16.2-alpine in /docker (#5290)dependabot[bot]
Bumps crystallang/crystal from 1.12.2-alpine to 1.16.2-alpine. --- updated-dependencies: - dependency-name: crystallang/crystal dependency-version: 1.16.2-alpine 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>
2025-05-09Fix crystal version used in alpine 3.21Émilien (perso)
2025-05-09Bump crystal-lang/install-crystal from 1.8.0 to 1.8.2 (#5286)dependabot[bot]
Bumps [crystal-lang/install-crystal](https://github.com/crystal-lang/install-crystal) from 1.8.0 to 1.8.2. - [Release notes](https://github.com/crystal-lang/install-crystal/releases) - [Commits](https://github.com/crystal-lang/install-crystal/compare/v1.8.0...v1.8.2) --- updated-dependencies: - dependency-name: crystal-lang/install-crystal dependency-version: 1.8.2 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>
2025-05-09Bump docker/build-push-action from 5 to 6 (#5287)dependabot[bot]
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5...v6) --- updated-dependencies: - dependency-name: docker/build-push-action 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>
2025-05-09Bump alpine from 3.20 to 3.21 in /docker (#5288)dependabot[bot]
Bumps alpine from 3.20 to 3.21. --- updated-dependencies: - dependency-name: alpine dependency-version: '3.21' 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>
2025-05-09Bump actions/cache from 3 to 4 (#5289)dependabot[bot]
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [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/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '4' 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>
2025-05-09Bump actions/stale from 8 to 9 (#5291)dependabot[bot]
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/stale dependency-version: '9' 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>
2025-05-09chore: Add dependabot for docker and github actions (#5285)Émilien (perso)
2025-05-09fix: safely access "label" keyFijxu
Fixes https://github.com/iv-org/invidious/issues/5095 On some videos, `label` is missing from the video information. Invidious assumed that the `label` key existed. Videos with label have this inside `metadataBadgeRenderer`: ``` {"style" => "BADGE_STYLE_TYPE_SIMPLE", "label" => "4K", "trackingParams" => "COMDENwwGAoiEwiCrebe6JWNAxWIxz8EHSQRFTU="} ``` but other videos, for some reason, look like this: ``` {"icon" => {"iconType" => "PERSON_RADAR"}, "style" => "BADGE_STYLE_TYPE_SIMPLE", "trackingParams" => "CM4DENwwGAsiEwiCrebe6JWNAxWIxz8EHSQRFTU="} ```
2025-05-08fix: fallback first with TVHTML then MWEBÉmilien (perso)
fixes #5273
2025-05-08fix: pass user to `query.process` if present.Fijxu
Fixes https://github.com/iv-org/invidious/issues/5097
2025-05-08fix: do not strip '+' character from refererFijxu
Fix that a user of my instance (https://inv.nadeko.net) sent me by email.
2025-05-04Release v2.20250504.0Emilien
2025-05-04Reflect companion secret character limit in example config comment (#5269)Vyquos
Update the comments in the example config to show that the companion secret key must be exactly 16 characters long as per https://github.com/iv-org/invidious-companion/pull/81#issuecomment-2750675405.
2025-05-03Fix proxying live DASH streams (#4589)absidue
2025-05-03feat: route to invidious companion on downloads (#5224)Alex Maras
2025-05-02fix: fallback other yt clients no url found for adaptive formats (#5262)Émilien (perso)
2025-05-02Fix minor casing issues in brand names (#5258)efb4f5ff-1298-471a-8973-3d47447115dc
2025-04-17fix(typo): 'Salect' -> 'Select'Fijxu
2025-04-05Fix issues raised by code reviewsyeopite
Remove explicit `self.` from #process of parsers Remove explicit return tuple in get_issue_template Fix formatting Move inline issue template style to stylesheet Use @id in ProblematicTimelineItem xml repr Fix naming
2025-04-04chore: set dash by default (#5216)Émilien (perso)
2025-03-26chore: enforce 16 characters for invidious_companion_key (#5220)Émilien (perso)
2025-03-19Support ProblematicTimelineItem in trending feedsyeopite
2025-03-19Use ProblematicTimelineItem as needed in playlistssyeopite
2025-03-19Make "show technical details" btn translatablesyeopite
2025-03-19Fix formattingsyeopite
2025-03-19Improve error card border color on dark themesyeopite
2025-03-19Emphasise error card iconsyeopite
2025-03-19Improve JSON repr of ProblematicTimelineItemsyeopite
2025-03-19Improve design of placeholder itemsyeopite
Also makes it show the error backtrace
2025-03-19Apply search filters details css only to itselfsyeopite
The CSS for the search filters details box was applied to every detail element when search.css is loaded
2025-03-19Handle parse errors gracefully on timeline itemssyeopite
Prior to this commit, if even a single item fails to parse Invidious will throw out an error. This means that even if everything else on a page can be parsed and rendered without issues, the single problematic item will cause the entire page to be unusable. This commit gracefully handles parse errors by catching and then replacing the problematic item with a new "timeline error" object that represents the parse error. This will allow the rest of the page to be rendered and an error card that will replace the location of the problematic item.
2025-03-16Prepare for next release (#5206)syeopite
2025-03-13Add invidious companion support (#4985)Émilien (perso)
* add support for invidious companion * redirect latest_version and dash manifest to invidious companion * fix Shadowing outer local variable `response` * fixing condition for Content-Security-Policy * throw error if inv_sig_helper and invidious_companion used same time * Use sample instead of Random.rand Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com> * Remove debug puts functions Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com> * modify the description for config.example.yaml about invidious companion * move config checks for invidious companion * separate invidious_companion logic + better config.yaml config * fixing "end" misplacement * fix linting + use .empty? * crystal handle decompression already by itself * fix download function when invidious companion used * fix linting * invidious companion always used so always add CSP and redirect latest_version * apply all the suggestions + rework invidious_companion parameter * format watch.cr * fix ameba Redundant use of `Object#to_s` in interpolation * add ability for invidious companion to check request from invidious * Better document private_url and public_url * Better doc for invidious_companion_key * !empty? to present? * skip proxy for invidious companion * fixing format * missing , * add companion pooling http * fix: don't use http proxy when sending requests to companion * fix: logic where we want to have the invidious logic if companion is not used * chore: remove baseurl usage from invidious companion * chore: change from inv-sig-helper to companion for required playback * fix: use puts + add warning for inv-sig-helper deprecated --------- Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-03-12Add changelog for v2.20250314.0 (#5197)v2.20250314.0syeopite
* Release v2.20250314.0 * Update CHANGELOG.md
2025-03-12Warn when `po_token`, `visitor_data` and/or `inv-sig-helper` is not ↵syeopite
configured (#5202) * Warn when required configs for playback is missing * Add link to documentation in warnings * Direct users to /installation instead
2025-02-28require base_job before the other jobsFijxu
The crystal compiler seems to evaluate `require` in an alphabetical way, so if anyone in the future, wants to add another job and that job is above `base_job.cr` in alphabetical order, the compiler is going to fail with `Error: undefined constant: Invidious::Jobs::BaseJob`. This doesn't fix anything, but it will prevent a future headache.
2025-02-26Fix lint and formattingsyeopite
2025-02-26Fix HLS being used for non-livestream videos (#5189)syeopite
Invidious does not currently support non-livestream hls playback Originally, the HLS manifest check was essentially a boolean: if the HLS manifest field was present, it was assumed to be a livestream. Some videos include the HLS Manifest but aren't livestreams. In the case where they are livestreams, the video contains a videoType field with the value "Livestream". In the case that they're normal videos, the videoType is "Video". This is exposed via the `video.live_now` property. This commit just checks that `video.live_now` is true before treating it as a livestream
2025-02-26Images: fix typo in thumbnail logicsyeopite
2025-02-26Channels: Support YouTube's change to from /community to /posts (#5183)syeopite