teampiped / piped Goto Github PK
View Code? Open in Web Editor NEWAn alternative privacy-friendly YouTube frontend which is efficient by design.
Home Page: https://piped.video
License: GNU Affero General Public License v3.0
An alternative privacy-friendly YouTube frontend which is efficient by design.
Home Page: https://piped.video
License: GNU Affero General Public License v3.0
Requires backend change.
Not sure why, but when I mute a video, I can still hear some sounds intermittently. This happens when I'm watching the video without pausing, but it can also happen shortly after resuming.
Example URL: https://piped.kavin.rocks/watch?v=VkhsFGswWNA
I can't seem to make them look neat.
Streams:
hey -c 50 -n 500 http://127.0.0.1:8080/streams/6zBfVElmWfw
Summary:
Total: 10.8712 secs
Slowest: 2.7826 secs
Fastest: 0.2908 secs
Average: 1.0226 secs
Requests/sec: 45.9929
Total data: 14749105 bytes
Size/request: 29498 bytes
Response time histogram:
0.291 [1] |
0.540 [15] |■■■
0.789 [111] |■■■■■■■■■■■■■■■■■■■■■■■■■
1.038 [179] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
1.287 [101] |■■■■■■■■■■■■■■■■■■■■■■■
1.537 [44] |■■■■■■■■■■
1.786 [38] |■■■■■■■■
2.035 [9] |■■
2.284 [0] |
2.533 [1] |
2.783 [1] |
Latency distribution:
10% in 0.6454 secs
25% in 0.7870 secs
50% in 0.9775 secs
75% in 1.2136 secs
90% in 1.5255 secs
95% in 1.6920 secs
99% in 1.8485 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0003 secs, 0.2908 secs, 2.7826 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0000 secs
req write: 0.0002 secs, 0.0000 secs, 0.0061 secs
resp wait: 1.0219 secs, 0.2906 secs, 2.7824 secs
resp read: 0.0001 secs, 0.0000 secs, 0.0050 secs
Status code distribution:
[200] 500 responses
Video: https://www.youtube.com/watch?v=jX95U1fBM9A
Linus Tech Tips: Touch Me...
On Piped, it only goes up to 1080p (960p), while on NewPipe I can playback or download at up to 2160p (1920p).
According to #139 it was already implemented so it's a regression
I understand the importance of having a dark theme, and they many people prefer it, however not everyone does, and many (including me) prefer having a light theme (as long as it isn't too blinding).
Required backend changes.
This will include an instance switcher.
This needs to be fixed asap.
Title
I have the issues, that some videos do not play. They just show the rotating circle in the player.
Example for video not working: https://piped.kavin.rocks/watch?v=WMweEpGlu_U
Example for video working: https://piped.kavin.rocks/watch?v=u6zsHqdNRQ8
I need to find some libraries for this.
I was quite surprised that Piped doesn't yet feature any keyboard shortcuts, so here is the request.
Basic ones are pretty obvious:
Horizontal arrow keys: Moving through the video
Vertical arrow keys: Changing volume
Space/Super (however you'd like to call it): Play/Pause
F: Fullscreen
M: Mute
Others should also chime in with suggestions.
This may very well be an a bug within Firefox, not with Piped.
When changing resolution, videos automatically start playing on Piped, but only with Firefox, Edge had no such issue.
Sometimes (rarely) opening a new page on Piped has the video autoplaying, again only on Firefox.
Both Firefox and Edge (possible via flag) have autoplay for both audio and video blocked.
The video takes more than a screen with the navbar, you should reduce the space (with width css attribute probably)
Do we want to use router links for YouTube URLs?
Requires backend changes.
This needs some work, I think I have an idea on how to do this.
It needs to be multi region.
The best solution I've found so far is cloudflare's expensive one and https://www.mysocket.io/ which uses aws's global accelerator, any other solutions would be helpful too 😄
You guys should collaborate with the ViewTube devs to make a bigger team
https://github.com/google/shaka-player
Why?
Downsides:
One of the main reasons why I had moved to Invidious (other than the privacy concerns), was Polymer YouTube's atrocious system resource utilization, which is why I tried to hold on as long as possible onto the old polymer-free YouTube.
Back then, I had an i3-540 (nowadays I use an i5-4570 with a Radeon HD6950), and I was able to play 1080p60fps with barely any stutters, however with the polymer theme, anything above 720p30Hz was unpractical.
Additionally, we have a BayTrail Celeron Chromebook (dechromified), that used to be able to play 720p30fps without any stuttering on the old pre-polymer YouTube, however with the polymer YouTube, anything above 240p is unplayable due to the stuttering.
With Invidious, Even 720p60fps/1080p30fps is playable with minimal stuttering, however with Piped, I cannot go above 480p due to the stuttering.
Could something be done about this? Possible a "lite" version of the website (possibly with the Invidious GUI above the Piped backend)?
There's a webpack plugin, which can be used to improve performance and reduce the size of the further.
I'm thinking about MongoDB, but it's not free software according to the FSF. In the worst-case scenario, I would use it.
I'm thinking about using Hibernate which is an ORM, with either Postgres or CockroachDB.
Another idea is to use https://www.scylladb.com/ but it consumes a lot of ram. (2GB for a small environment). It's the fastest NoSQL database if I'm not wrong.
Hello, how can I self-host piped? Is it still too soon to have a docker-compose? I've noticed there's also a dockerized backend version.
Similar to how it is on YouTube/Invidious
Is it possible to use Piped to replace embedded videos?
Example URL: https://piped.kavin.rocks/watch?v=tlCC1XojRzM
Requires backend changes, should be simple though.
It's the fastest according to https://github.com/the-benchmarker/web-frameworks
And I really like the syntax/style of coding.
This will be the first step to getting user accounts and feeds.
IPFS pubsub to federate subscriptions across instances.
Not sure why this could be.
Currently, they're not centered and I have no idea how to make them.
As soon as you change tab or app the audio stops
Browser: bromite, can't reproduce on firefox
OS: android 9
Use the dweb.link gateway for this.
This is just for pull requests.
Allows us to see where the sponsor segments are.
Title
In this section, you should be able to:
Caused by: org.schabi.newpipe.extractor.exceptions.ParsingException: Got HTML document, expected JSON response (latest url was: "https://www.youtube.com/watch?v=HJiog3Fbur0&pbj=1")
at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getValidJsonResponseBody(YoutubeParsingHelper.java:643)
at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getJsonResponse(YoutubeParsingHelper.java:667)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor.onFetchPage(YoutubeStreamExtractor.java:711)
at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:54)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:68)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:64)
at org.schabi.newpipe.extractor.stream.StreamInfo.getInfo(StreamInfo.java:60)
at me.kavin.piped.utils.ResponseHelper.lambda$streamsResponse$1(ResponseHelper.java:63)
at me.kavin.piped.utils.ResponseHelper$$Lambda$530/0x0000000000000000.get(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)
... 1 more
Perhaps have a minimum delay of 5/10 minutes?
Additional task: remove timeout at
https://github.com/TeamPiped/Piped-Backend/blob/a2cd2baf2aa361bece822d0b6954774cf3c72ac5/src/main/java/me/kavin/piped/utils/ResponseHelper.java#L81
A new body field was added in NPE.
I usually prefer setting the sponsor segments of the videos I watch, since I do like them (I watch mainly LinusTechTips (and their other channels), Gamers Nexus, and Level1Techs), and occasionally make use of them, so I tried disabling SponsorBlock and the other settings, however my changes do not get saved, and upon leaving the page, they get reverted.
org.schabi.newpipe.extractor.exceptions.ReCaptchaException: reCaptcha Challenge requested
at me.kavin.piped.utils.DownloaderImpl.execute(DownloaderImpl.java:48)
at org.schabi.newpipe.extractor.downloader.Downloader.get(Downloader.java:70)
at org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getJsonResponse(YoutubeParsingHelper.java:524)
at org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSearchExtractor.onFetchPage(YoutubeSearchExtractor.java:67)
at org.schabi.newpipe.extractor.Extractor.fetchPage(Extractor.java:56)
at org.schabi.newpipe.extractor.search.SearchInfo.getInfo(SearchInfo.java:29)
at me.kavin.piped.utils.ResponseHelper.searchResponse(ResponseHelper.java:215)
at me.kavin.piped.Main.lambda$main$8(Main.java:132)
at me.kavin.piped.Main$$Lambda$112/000000000000000000.apply(Unknown Source)
at reactor.netty.http.server.DefaultHttpServerRoutes$HttpRouteHandler.apply(DefaultHttpServerRoutes.java:132)
at reactor.netty.http.server.DefaultHttpServerRoutes.apply(DefaultHttpServerRoutes.java:98)
at reactor.netty.http.server.DefaultHttpServerRoutes.apply(DefaultHttpServerRoutes.java:38)
at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:607)
at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:453)
at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:510)
at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:94)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:185)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:836)
Just needs the manifest rewriting.
Depends on TeamNewPipe/NewPipeExtractor#595
ShakaPlayer supports this already, so that is nice - shaka-project/shaka-player#3145
Blocked by TeamNewPipe/NewPipeExtractor#461
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.