summaryrefslogtreecommitdiffstats
path: root/src (follow)
AgeCommit message (Collapse)Author
2025-03-19Improve JSON repr of ProblematicTimelineItemsyeopite
2025-03-19Improve design of placeholder itemsyeopite
Also makes it show the error backtrace
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-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-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-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
2025-02-26Videos: Fix empty response when rv published field is nonexistent (#5162)syeopite
Fixes #5161 by checking recommended videos published field for presence before attempting to parse it in api
2025-02-26Channels: Add Courses to channel page and channel API (#5158)syeopite
Closes #5144
2025-02-26Pick a different instance upon redirect (#5154)syeopite
The automatic instance redirection has the potential to pick the same instance the user is currently on. This is especially prevalent when the instance list is limited in number like how it is today. This PR checks the domain of the instance and ensures that it is not the same as the current instane before redirecting the user to it. Otherwise, it just sends the user to rediret.invidious.io
2025-02-26Add the ability to listen on UNIX sockets (#5112)syeopite
2025-02-26i18n: Enable Tamilsyeopite
2025-02-26Add API endpoint for fetching transcripts from YouTube (#4788)syeopite
2025-02-26User: Batch notifications togethersyeopite
2025-02-26RSS: Channel + Playlist improvements (#4298)syeopite
2025-02-26Frontend: Add a first page and previous page buttons for channel navigation ↵syeopite
(#4123)
2025-02-21Fix an issue with the HLS manifest check for livestream videosAlex Maras
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 method. This commit just checks that video.live_now is true before treating it as a livestream
2025-02-18Typosyeopite
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2025-02-18Channels: Fix community tabFijxu
2025-01-28fix 5161 by checking recommended videos published field for presence instead ↵Drikanis
of just not nil
2025-01-26remove ! on rejectepicsam123
2025-01-25Add Courses to channel page and channel APIChunkyProgrammer
2025-01-25lint edits, refactorepicsam123
2025-01-24moved commentsepicsam123
2025-01-23add missing end statementepicsam123
2025-01-22Pick a different instance upon redirectepicsam123
2025-01-22API: Add a 'published' video parameter for related videos (#4149)syeopite
2025-01-22User: Ensure IO is properly closed when importing NewPipe subscriptions (#4346)syeopite
2025-01-22Frontend: Carry over audio-only mode in playlist links (#4784)syeopite
2025-01-22Videos: Fix missing host parameter on playback URLs when `local=true` (#4992)syeopite
2025-01-22Routes: Clean ajax actions handlers (#5036)syeopite
2025-01-22Remove stdlib override for proxy initialization (#5065)syeopite
2025-01-22API: Add support for author thumbnails in search api for videos (#5072)syeopite
2025-01-22Kemal: Skip route if response was closed by handlers (#5073)syeopite
2025-01-22API: Fix video thumbnails in mixes (#5116)syeopite
2025-01-22Videos: Set language for dash audio streams and sort (#5149)syeopite
2025-01-22feat(manifset): improved adaptationset labelGiuliano Macedo
2025-01-22Add audio track info to dash manifest, if presentGTechAlpha
- language id - language display name - main/default track Sort audio formats so that main/default is first (for clients not using dash) * Note: this should be a non-breaking change; if audio track info is not availablle, the behavior does not change from current
2025-01-22Warn when any top-level config is "CHANGE_ME!!"syeopite
2025-01-20Apply upcoming formatting rules from Crystal 1.15syeopite
2025-01-05Improve syntaxCaian Benedicto
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2024-12-27Add checks for socket path and permissionsCaian Benedicto
2024-12-16Fix video thumbnails in mixesBrahim Hadriche
2024-12-14Change socket_binding to a nested configuration in YAMLCaian Benedicto
2024-12-14Unify socket_binding and socket_permissionsCaian Benedicto
2024-12-13Change bind_unix to socket_binding, add socket_permissions and config exampleCaian Benedicto
2024-12-13Merge branch 'master' into unix-socketsCaian Benedicto
2024-11-17remove icon element from channel rss feedChunkyProgrammer