Giter Site home page Giter Site logo

lighttube-org / lighttube Goto Github PK

View Code? Open in Web Editor NEW
114.0 7.0 18.0 21.37 MB

An alternative YouTube front end written in ASP.NET

Home Page: https://tube.kuylar.dev

License: GNU Affero General Public License v3.0

Dockerfile 0.18% C# 56.80% HTML 27.31% CSS 15.02% JavaScript 0.17% Smarty 0.52%
youtube youtube-player youtube-video self-hostable

lighttube's Introduction

lighttube - A lightweight, privacy respecting alternative frontend for YouTube

Features

  • Lightweight
  • Ad-free
  • Dislike counts from Return YouTube Dislike
  • SponsorBlock support
  • Subscriptions feed without the requirement of a Google account
  • Playlists
  • Proxying the videos through LightTube

Screenshots

Desktop

Page Light Dark
Search image image
Video image image

Mobile

Page Light Dark
Search image image
Video image image

Documentation - Used libraries - Public instances

lighttube's People

Contributors

dsezerpy avatar inftord avatar instellate avatar kuylar avatar oolunar avatar plerx2493 avatar uwx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

lighttube's Issues

[Feature Request] Import CSV/JSON subscriptions

Description

Import CSV/JSON subscriptions: I have a long subscription list that would be nearly impossible to manually import. I love Lighttube's UI and would switch but have no way to bring over my subscriptions from Piped, which I currently use.

Describe the solution you'd like

An option in the manage subscriptions area to "import CSV/JSON" and hopefully also to "export CSV/JSON"

[Feature Request]

Description

Horizontal scroll bar is unnecessary and looks out of place.

Describe the solution you'd like

Remove the horizontal scroll bar.

Describe alternatives you've considered

No response

[Feature Request] Integrate annotationlib for restoring archived video annotations

Description

Invidious includes supports for restoring annotations with annotationlib. While this can be relatively trivially done by modifying the existing AnnotationsRestored extension, it would be cool to have integrated support.

Describe the solution you'd like

This bit downloads annotation XML files: https://github.com/isaackd/AnnotationsRestored/blob/master/js/background.js
This library renders the annotations client-side: https://github.com/isaackd/annotationlib

[Bug] Loading circles after a video ends

Describe the bug

This is occurring on both lighttube.kuylar.dev and lighttube.plerx.de. For some reason, after a video finishes, a loading circle appears and continues to spin without going away. It's not a major issue, but I find this rather annoying. If there's anything that can be done to fix it, I'd be very grateful! I've attached an example of the issue below.

Screenshot 2023-12-23 115033

Notes

No response

[Feature Request] Sponsorblock and DeArrow support

Description

At this point I suppose you already know it, but Sponsorblock helps to skip different fragments of the video such as sponsors, filler content or music unrelated to the video. While DeArrow adds the ability to change the video thumbnail and title to something less "sensationalist".

Describe the solution you'd like

That both DeArrow and Sponsorblock are integrated within LightTube.

[Bug] degraded audio quality

Describe the bug

I've noticed that Light tube's audio quality is significant worse then regular YouTube.

Possibly a limitation of my server 🤷‍♂️

Notes

No response

[Feature Request] Let the default theme for instances be dark theme

Description

I would like a feature where dark theme is the default theme when the user loads the instance up for the first time. I know this option is decided by instance owners but, I feel like a system-bound dark mode could be cool and great if it was implemented

Describe the solution you'd like

The solution I would like is the page to be dark mode when the user loads the page up for the first time, or I would like a feature where if the device theme is dark mode, then the website should be dark mode as well to suit the users theme choice.

Describe alternatives you've considered

I have not considered any alternatives.

Quality switcher is missing when JS is disabled

Describe what happened

There used to be a quality switcher in the pre-V2 rewrite, that isnt available now.

Instance URL

No response

LightTube version

2023.5.6

Resource path

any video endpoint

Notes

No response

[Bug] The video player won't load

Describe the bug

I'm running a local instance of lighttube and when I click on a link to a video I get a player window with this error. Can you please tell me how to fix this?
LightTube instance this error occured on (127.0.0.1:7134)
LightTube & InnerTube versions (2023.9.24 / 1.0.25.0)
The full resource path (/watch?v=n4-w7xXJtfc)
InnerTube language & region (en_US)
The following text (the whole thing):

System.AggregateException: One or more errors occurred. (Request failed (status code: 401 (Unauthorized))) (Request failed (status code: 401 (Unauthorized)))
---> InnerTube.Exceptions.RequestException: Request failed (status code: 401 (Unauthorized))
at InnerTube.InnerTube.MakeRequest(RequestClient client, String endpoint, InnerTubeRequest postData, String language, String region, Boolean authorized)
at InnerTube.InnerTube.GetPlayerObjectAsync(String videoId, Boolean contentCheckOk, String language, String region, RequestClient client)
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.WaitAll(Task[] tasks)
at InnerTube.InnerTube.GetPlayerAsync(String videoId, Boolean contentCheckOk, Boolean includeHls, String language, String region)
---> (Inner Exception #1) InnerTube.Exceptions.RequestException: Request failed (status code: 401 (Unauthorized))
at InnerTube.InnerTube.MakeRequest(RequestClient client, String endpoint, InnerTubeRequest postData, String language, String region, Boolean authorized)
at InnerTube.InnerTube.GetPlayerObjectAsync(String videoId, Boolean contentCheckOk, String language, String region, RequestClient client)<---

Notes

No response

The Captions dont work

Describe the bug

Captions don't work even after we turn them on.
(disclaimer: we browse on a college network with blockers. YouTube is blocked.)

bug pix

Notes

No response

[Bug] no channel or video displayed

Describe the bug

I installed lighttube using docker-compose.
I extracted the refresh_token and used it in the - LIGHTTUBE_AUTH_REFRESH_TOKEN= config option.

When I try to visit a channel, I get this:

lightube-lighttube-1  | fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
lightube-lighttube-1  |       An unhandled exception has occurred while executing the request.
lightube-lighttube-1  |       System.AggregateException: One or more errors occurred. (The format of value ' ' is invalid.)
lightube-lighttube-1  |        ---> System.FormatException: The format of value ' ' is invalid.
lightube-lighttube-1  |          at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index)
lightube-lighttube-1  |          at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(HeaderDescriptor descriptor, HeaderStoreItemInfo info, String value)
lightube-lighttube-1  |          at System.Net.Http.Headers.HttpHeaders.Add(String name, String value)
lightube-lighttube-1  |          at InnerTube.InnerTube.MakeRequest(RequestClient client, String endpoint, InnerTubeRequest postData, String language, String region, Boolean authorized)

Notes

No response

[API] Vanity API missing

Description

/channel endpoint doesnt accept vanities and there isnt any API to get channel IDs from vanity

Describe the solution you'd like

Either make /channel accept vanity or create an /vanity endpoint

Describe alternatives you've considered

No response

[Bug] Recommendations broke

Describe the bug

YouTube decided to return a single continuationItemRenderer in recommendations, which broke it in LT.

Notes

free PR to anyone reading this: make this field optional

[Bug] Copyright-claimed videos are unsupported

Describe the bug

When using LightTube, there is an expectation (given the lack of indication otherwise) that viewing access is generally unrestricted when using LightTube as a YouTube frontend, perhaps barring NSFW content.

In the midst of showing LightTube to someone as an alternative to YouTube's frontend, and especially their insistence on blocking copyrighted content in embedded media, such as Discord Embeds, I stumbled upon an issue wherein LightTube simply displays that 'The media could not be loaded, either because the server or network failed or because the format is not supported.', which is a generic and unhelpful error, as well as being incorrect for the situation.

This can be observed when loading anything that wouldn't play in Discord, typically music. For example, this song.

Notes

I don't touch YouTube's APIs, so I'm not sure if or how this would be fixed, but wanted to raise attention to the issue. In the event that this an unavoidable issue (you've gotten this far, I'm sure this is a piece of cake for you Kuylar), I would at least acknowledge/address this as a known issue with LightTube, and not something that can be fixed in the readme.

Video proxy is broken

Related to kuylar/innertube#13

The frontend will switch to use HLS instead of MPD, which removes some features (4K, Multiple Audio Tracks, etc...) until this issue is fixed.

[Feature Request] Move buttons and text on mobile to the right

Description

I am not sure on the best way to explain this so to put it simply, I feel like button and text placements on mobile could move more to the right and not be stuck to the screen edge which just looks can look weird on some devices, here are some screenshots of this: https://rimgo.lunar.icu/a/HV8uLAe

Describe the solution you'd like

The solution I would like is to move some of the text and buttons to the right so they can be seen more easilt and just overall look better in my opinion if they were moved to right a bit.

Describe alternatives you've considered

I am not sure of any alternatives and have not considered any for now.

[Feature Request] Toggle visibility of commens/related videos

Description

Youtube UI is nice and all, but one thing I miss while using official Youtube and other alternatives is the ability to hide comments and related video for less distraction and possibly prevent brain damage from the comments section.

Describe the solution you'd like

Each section should have a button at the top saying "Toggle X". Note: I think this toggle should persist between pages and sessions.

Describe alternatives you've considered

I could just use my custom css extension and just display: none those

[Error] Can't Open Playlist

Describe what happened

I have two playlists in my library. One works fine, but the other keeps giving me an error message whenever I try to open it. I'm not sure of the cause.

Instance URL

https://tube.kuylar.dev

LightTube & InnerTube versions

2023.6.27 / 1.0.21.0

Resource path

https://tube.kuylar.dev/playlist?list=LT-PL5e7oxCmIdHClJeVK8Z4

Language & region

en-GB_AU

Stack trace

Newtonsoft.Json.JsonReaderException: After parsing a value an unexpected character was encountered: A. Path 'title.runs[0].text', line 1, position 211.
at Newtonsoft.Json.JsonTextReader.ParsePostValue(Boolean ignoreComments)
at Newtonsoft.Json.JsonTextReader.Read()
at Newtonsoft.Json.Linq.JContainer.ReadContentFrom(JsonReader r, JsonLoadSettings settings)
at Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(JsonReader reader, JsonLoadSettings options)
at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
at LightTube.Database.PlaylistManager.GetPlaylistVideos(String id, Boolean editable) in /src/LightTube/Database/PlaylistManager.cs:line 34
at LightTube.Contexts.PlaylistContext..ctor(HttpContext context, DatabasePlaylist playlist) in /src/LightTube/Contexts/PlaylistContext.cs:line 83
at LightTube.Controllers.YoutubeController.Playlist(String list, String continuation) in /src/LightTube/Controllers/YoutubeController.cs:line 229
--- End of stack trace from previous location ---
--- End of stack trace from previous location ---

Notes

No response

[Bug] Duplicate home tab in channel view

Describe the bug

The home tab gets duplicated in the channel view

Screenshot:
image

I tested on other channels and it doesn't seem to happen on them. Only this one. Refreshed multiple times and tried in a new page, but it still happens.

Notes

No response

[Feature Request] Ability to add as a search provider on browsers

Description

On Firefox, you can add a custom search provider by right-clicking the search bar of the specific website (if it supports it) and clicking the 'Add as "X"' option. It would integrate well with my workflow and allow me to skip a few steps to get to the search.

How it should look:
image

Also, thanks for your time! :)

Describe the solution you'd like

I unfortunately don't know the details of implementing this, but this might be of interest:
https://en.wikipedia.org/wiki/OpenSearch

[Error] Youtube Channels don't open

Describe what happened

When opening youtube channels, almost always the channels don't open.

Instance URL

https://tube.kuylar.dev

LightTube & InnerTube versions

2023.8.29 / 1.0.25.0

Resource path

https://tube.kuylar.dev/channel/UCnc6db-y3IU7CkT_yeVXdVg

Language & region

en_US

Stack trace

System.InvalidOperationException: Sequence contains no elements
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
at AspNetCoreGeneratedDocument.Views_Shared_Renderer.ExecuteAsync() in /src/LightTube/Views/Shared/Renderer.cshtml:line 490
at AspNetCoreGeneratedDocument.Views_Shared_Renderer.ExecuteAsync() in /src/LightTube/Views/Shared/Renderer.cshtml:line 198
at AspNetCoreGeneratedDocument.Views_Shared_Renderer.ExecuteAsync() in /src/LightTube/Views/Shared/Renderer.cshtml:line 244
at AspNetCoreGeneratedDocument.Views_Youtube_Channel.ExecuteAsync() in /src/LightTube/Views/Youtube/Channel.cshtml:line 73
--- End of stack trace from previous location ---

Notes

Just a guess.
When opening youtube channels with less subscribers, the page opens, otherwise never.

[Error] Channels without any banner images do not load

Describe what happened

If a channel doesn't have any banner images, it will fail to load, because even in 2024, I do not know that I should use .First/LastOrDefault instead of the other one.

Instance URL

https://tube.kuylar.dev

LightTube & InnerTube versions

2023.12.27 / 1.0.27.0

Resource path

/channel/UCIBGTW0RwRzYfbbKGQTZeGg

Language & region

en_US

Stack trace

System.InvalidOperationException: Sequence contains no elements
  at System.Linq.ThrowHelper.ThrowNoElementsException()
  at LightTube.Contexts.ChannelContext..ctor(HttpContext context, ChannelTabs tab, InnerTubeChannelResponse channel, String id) in /src/LightTube/Contexts/ChannelContext.cs:line 24
  at LightTube.Controllers.YoutubeController.Channel(String id, ChannelTabs tab, String continuation) in /src/LightTube/Controllers/YoutubeController.cs:line 232
  at LightTube.Controllers.YoutubeController.Channel(String id, String continuation) in /src/LightTube/Controllers/YoutubeController.cs:line 175 

Notes

this will probably not get fixed with the "huge protobuf update!!!" so im making an issue for it. if anyone wants, it's a free pr

[Feature Request] add login prompt instead of error when doing an unauthorized request.

Description

the error message told me to provide this info:
LightTube instance this error occured on (tube.kuylar.dev)
LightTube & InnerTube versions (2023.6.23 / 1.0.20.0)
The full resource path (/channel/UCX6OQ3DkcsbYNE6H8uQQuVA/subscription)
InnerTube language & region (en_US)
code:

System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
at LightTube.Database.UserManager.UpdateSubscription(String token, String channelId, SubscriptionType type) in /src/LightTube/Database/UserManager.cs:line 136
at LightTube.Controllers.YoutubeController.Subscription(String id, SubscriptionType type) in /src/LightTube/Controllers/YoutubeController.cs:line 165

Describe the solution you'd like

if you get this error, or a similar error you should get prompted to log in before proceeding.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.