Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NewPipe ports on other platforms #1051

Open
phly95 opened this issue Jan 30, 2018 · 133 comments
Open

NewPipe ports on other platforms #1051

phly95 opened this issue Jan 30, 2018 · 133 comments
Labels
discussion This needs to be discussed before anything is done meta Related to the project but not strictly to code question Not really an issue, but more of a question about how something works

Comments

@phly95
Copy link

phly95 commented Jan 30, 2018

  • [ y] I carefully read the contribution guidelines and agree to them.
  • [ y] I checked if the issue/feature exists in the latest version.

This app is great, and I would love to have it on my Windows PC, especially with some features that do not officially exist on the browser version, such as shuffling all videos on a single channel and playback without loading the video (as to not waste data).

@Hashik-Donthineni
Copy link
Contributor

I have this idea my self, I guess it's on everyone's mind. @theScrabi IDK how you wrote the code for parsing and all, I believe it is not generic and can be applied to non-Android applications, why can't we go ahead and build one for the desktop using JavaFX or SwingX?

@ghost
Copy link

ghost commented Jan 31, 2018

I just thought it would not be possible but I miss an application like that, especially because the official website of YouTube is very slow for old computers (like the one I have). Now, the problem is if in case they manage to carry this application to the desktop, will require low resources?

@ghost
Copy link

ghost commented Jan 31, 2018

anyway I think we should first think about this when newpipe for android is already mature enough and with all the promising features that are yet to come (including subtitles, livestream, etc) to think of something even bigger, and enough bugs there is here to think about developing more bugs 😂

@theScrabi
Copy link
Member

I just thought it would not be possible

It is possible. In fact NewPipe is designed to work on multiple systems.
This is an example of a CLI app that graps the stream link out of a youtube link. It works on any device that has network and java.

What you would need to do is embedet the NewPipeExtractor in your code.

@theScrabi
Copy link
Member

think we should first think about this when newpipe for android is already mature enough

If someone is willing to develop it than develop it :D. Just because some people fix the bugs it does not mean all have to do it.

@ghost
Copy link

ghost commented Jan 31, 2018

This is an example of a CLI app that graps the stream link out of a youtube link

I saw that example before, but I was thinking about literally the same application of newpipe into a computer, that may cost a bit more?

Or is it easier to think about developing a gui for np-cli from scratch with qt or something similar?

@ghost
Copy link

ghost commented Jan 31, 2018

Just because some people fix the bugs it does not mean all have to do it.

It's true, I take it back 😂

@Hashik-Donthineni
Copy link
Contributor

@speednroll To answer your question "Now, the problem is if in case they manage to carry this application to the desktop, will require low resources?"
The answer can't be straight and it's highly subjective. If you see a Slack desktop application which is built on Electron framework, if we had built it using JavaFX it will be significantly faster, but, JavaFX applications have long start time due to JVM, as it is said so.

@theScrabi
Copy link
Member

Another option was of cource to write a NewPipe WebApplication. That works with a REST frontend for the NewPipeExtractor.

@ghost
Copy link

ghost commented Feb 1, 2018

@phly95 There's already an app for desktops. It's called Youtube-dl and it has a GUI frontend. I personally use it with a player called mpv to play videos directly on my screen but its mostly for downloading the video and/or audio. It's a lot more mature than Newpipe and thus works more reliably.

https://rg3.github.io/youtube-dl/index.html

https://github.com/MrS0m30n3/youtube-dl-gui

@theScrabi
Copy link
Member

I know about youtube-dl :D I took it code examples from it to write NewPipe. But as you said yt-dl is mostly for downloading. NewPipe is or should be a full blown client.

@phly95
Copy link
Author

phly95 commented Feb 4, 2018

There is an app called SMplayer that does youtube, though newpipe has far surpassed it in terms of features, as SMtube has little to no integration with playlists and audio streams etc.

@theScrabi
Copy link
Member

Meybe minitube can be tweaked by us

@PrestonN
Copy link

PrestonN commented Feb 8, 2018

Hi there everyone! If posts like this aren't allowed, please let me know and I'll gladly remove it.

I've been keeping an eye on the topic of a desktop YouTube client from various places and I've noticed the demand for something like this (especially since I've been wanting something like this myself).

I wanted to wait a little bit longer before I mentioned anything, but since the topic is fresh, I'd like to show a few things to everybody. I'm currently working on a privacy minded YouTube client for desktop that aims to accomplish a similar goal to NewPipe. I've decided to call it FreeTube and my plan is to Open Source it once the core functionality is finished.

The app is built using Electron and uses the YouTube API to acquire data. It doesn't look like the NewPipe Extractor supports Electron but I would be interested in implementing it in the future if I'm wrong.

Here are a few pictures with some information as a proof of concept:
https://imgur.com/a/53Ahu

I hope that anyone interested in making a desktop client would like to help me out when I get this released. The plan is to have it ready for initial release in a few weeks.

Thanks!

@ghost
Copy link

ghost commented Feb 8, 2018

in my opinion, Electron is slow, it is reserved only for computers with mid and high resources. in that case I prefer to use the official YouTube page instead, since both would require the same amount of resources.

one of my first reasons why I search alternatives like newpipe is how lightweight it is.

@PrestonN
Copy link

PrestonN commented Feb 8, 2018

I can't argue with that too much. I understand that a few people have issues running Electron on their machines due to the resources that it uses. While I am trying to keep it as fast as possible, my main goal with this application is privacy. If my application runs at about the same speed as YouTube, but delivers a more private browsing experience, then I feel like I was successful. I hope to do better than that of course but I'll have to see what happens when I get there.

Regardless, I respect your opinion and I understand why you think that.

@theScrabi
Copy link
Member

theScrabi commented Feb 8, 2018

@PrestonN isn't electron just some reshaped chrome browser? So what you are working on is essentially a website that is running as a desktop app? Am I right?

So point is @speednroll is right when he says that electorn is slow. However I thought about having some sort of NewPipe website. Maybe then what you are working on could be interesting. Honestly I like it already :D

For the connection betwean FreeTube and the NewPipeExtractor we could use the REST Api for the NewPipeExtractor that I suggested erlyer, and which I'm willing to implement once multyservice turns out to work well :)

@PrestonN
Copy link

PrestonN commented Feb 9, 2018

@theScrabi you are right in that Electron is a desktop wrapper based on Chromium. I do believe that they remove a few things from base Chromium in order to help it run faster, but I'm not 100% certain.

The main reason I'm using Electron versus a website is that the audience that I'm targeting will most likely remove cookies from their browsers fairly often, if they save them at all. This will make it difficult for them to save their subscriptions without creating some sort of account. I'd assume that this is a big reason as to why similar websites such as HookTube do not include such a feature.

Electron allows me to save data such as subscriptions to the user's local storage without having to store cookies through the browser. This helps keep it separate from their browsing history and prevents any trackers that may occur.

Using the REST API for the NewPipeExtractor sounds promising. I'll definitely want to take a look at it once it's ready on your end. My plan for an initial release is to keep going in my current direction but I'd love to take a look at it later in the future.

@ghost ghost mentioned this issue Mar 22, 2018
@Serkan-devel
Copy link

Maybe the Linux version could be built as an Appimage. @probonopd might know

@probonopd
Copy link

Is there a Linux version @Serkan-devel? Where can we get it?

@Serkan-devel
Copy link

@probonopd it should be packaged as one first

@Hashik-Donthineni
Copy link
Contributor

But, if you think about it... what's the whole point of building a desktop version... we use NewPipe cause we can play it in background and pop-up player... No tracking. I don't think it'll pan out good, it's better if we keep making this app better just my thought guys.

@theScrabi
Copy link
Member

@Hashik-Donthineni you may use it this way. I'm not, so I was happy to see a desktop/web version however we need more developer. So that the once that develop the android app can continue to make it better. I agree to U on that point :)

@probonopd
Copy link

@probonopd it should be packaged as one first

I am a little bit confused since I was under the impression that this was a native Android (Java) app. I don't know how to package Android apps for Linux desktops (besides shipping a full Android emulator/VM, which I'd consider overkill).

@Serkan-devel
Copy link

@theScrabi would it be feasible to package the Newpipeextractor with a cross-platform qt-frontend for desktop use?

@theScrabi
Copy link
Member

theScrabi commented May 2, 2018

yes, in fact I've been working on embedeting java into cpp applications. However I would recomend to use it as a seperate programm.

Here this gist will create an executable with included openjdk and avian JVM, however I think atm its failing because I couldn't get proguard running. On an x86_64 linux machine with java8 installed you may want to run make
https://gist.github.com/theScrabi/5aeb06b1669243e270c8f705716265bc

@Nutomic
Copy link
Contributor

Nutomic commented May 14, 2018

Here's a link to FreeTube because it wasn't linked so far. Gonna give it a try :)

https://github.com/FreeTubeApp/FreeTube

@theScrabi
Copy link
Member

@PrestonN FreeTube is ultra awesome 😍. I Would love to see a NewPipe version of it :D.

@PrestonN
Copy link

@theScrabi thanks for the kind words, it means a lot coming from you. :)

There's still a ton a work that needs to be done with it. It's missing a few key features that people would expect something like FreeTube to have if it was a stable release. Regardless, the features it does have seem to work well and I've been very pleased with the response it has had so far.

I would love to get the NewPipe Extractor working on FreeTube as I'm currently stuck with the YouTube API for now. Let me know if there's anything I can do to help/test with it.

@BeatLink
Copy link

Instead of a complete rewrite or building a desktop version, how about using a common filesystem format with FreeTube so that freetube can be the desktop counterpart? And data can be synced between the two apps using syncthing or any other filesystem based syncing software. Maybe both NewPipe and FreeTube can implement a DecSync backend so users can just sync between the two apps using syncthing

@selurvedu
Copy link

@BeatLink this was discussed a few replies above.

@skyGtm
Copy link

skyGtm commented Jun 26, 2021

It might be possible to run android apps in Windows 11
Related article here:
https://www.xda-developers.com/windows-11-android-apps/

@phly95
Copy link
Author

phly95 commented Jun 27, 2021

Looks like Windows support's coming after all (albeit unofficially)

@Deagan
Copy link

Deagan commented Dec 9, 2021

For iOS users, check out Yattee, it looks to be a great alternative developing quickly!

https://github.com/yattee/yattee

@Ahmadre
Copy link

Ahmadre commented Nov 3, 2024

Why don't we just use Flutter for all platforms 🤔?

@Ahmadre
Copy link

Ahmadre commented Nov 14, 2024

Why is my Flutter hint minimized? I'm honest to that suggestion. We develop desktop apps for linux, mac and windows and have professionel solutions made with Flutter.

@AudricV
Copy link
Member

AudricV commented Nov 15, 2024

Sorry, your comment is not minimized anymore.

We do not want to use Flutter, as we do not have the bandwidth (too few developers very busy) to rewrite everything from scratch (the codebase has a strong integration with Android specific APIs), nor to support other platforms. It would also probably not bring anything better for the Android app: increase the Android app size a lot more, which is something we want to avoid (there is lightweight in the app description sentence 😅). See also discussions in #10118.

An unofficial port for Linux of the app has been released with our consent on Flathub, using Android Translation Layer: see #11597.

@AudricV AudricV changed the title Newpipe ports on other platforms NewPipe ports on other platforms Nov 15, 2024
@Ahmadre
Copy link

Ahmadre commented Nov 15, 2024

Sorry, your comment is not minimized anymore.

We do not want to use Flutter, as we do not have the bandwidth (too few developers very busy) to rewrite everything from scratch (the codebase has a strong integration with Android specific APIs), nor to support other platforms. It would also probably not bring anything better for the Android app: increase the Android app size a lot more, which is something we want to avoid (there is lightweight in the app description sentence 😅). See also discussions in #10118.

An unofficial port for Linux of the app has been released with our consent on Flathub, using Android Translation Layer: see #11597.

Awesome! Thanks for your links. I'll try to dig into this more :). Hava a wonderful weekend!

@veganomy
Copy link

veganomy commented Jan 6, 2025

If NewPipe is ported to another platforms, that would'nt go right at all. NewPipe in landscape mode is a very bad experience, as today's smartphones aspect ratio increased beyond 2:1. On a computer with 16:9 aspect ratio, it might work fine. But it's still a bad experience.
Even if it's usable, the HW acceleration would'nt work, especially with dedicated GPUs like Nvidia. Freetube exists on linux, and it still doesn't support HW acceleration, making it unusable on high end desktops.

@paulie-g
Copy link

paulie-g commented Jan 7, 2025

Even if it's usable, the HW acceleration would'nt work, especially with dedicated GPUs like Nvidia. Freetube exists on linux, and it still doesn't support HW acceleration, making it unusable on high end desktops.

This is nonsensical. Just because one implementation can't do HW accel since it's non-native, it does not follow that all possible implementations will have the same problem. Simply using an external player like mpv gives you free HW accel, and I distinctly recall at least one QT-based youtube client that does this and many, many TUI-based ones that do.

@veganomy
Copy link

veganomy commented Jan 7, 2025

This is nonsensical. Just because one implementation can't do HW accel since it's non-native, it does not follow that all possible implementations will have the same problem. Simply using an external player like mpv gives you free HW accel, and I distinctly recall at least one QT-based youtube client that does this and many, many TUI-based ones that do.

@paulie-g You can simply use yt-dlp as a backend to play everything in your favorite player that supports HW acceleration. NewPipe can't be that another port because it is by ground designed as a smartphone YouTube alternative with vertical touch based UI.

You can infact try to use NewPipe right now, with the help of emulators such as BlueStacks, waydroid or even bare metal ChromeOS / AOSP on the desktop. You would come to a conclusion that this project isn't that optimised for a desktop experience with a keyboard/mouse IO. Devs have to rewrite everything from scratch anyways.

I would rather suggest Piped or Invidious devs to implement NewPipe extractor locally. Because YouTube is cracking down all the Piped/Invidious public servers as of now.

@paulie-g
Copy link

paulie-g commented Jan 7, 2025

You can simply use yt-dlp as a backend to play everything in your favorite player that supports HW acceleration.

I know what I can do, this is not a reddit how-to question. I don't care about the frontend.

I would rather suggest Piped or Invidious devs to implement NewPipe extractor locally. Because YouTube is cracking down all the Piped/Invidious public servers as of now.

Porting the extractor is what I advocated for. Sharing it across all projects would mean paying the cost to maintain it with YT changes once. A lot of projects can benefit, but very few are prepared to lumber themselves with the JVM and the extractor isn't even a standalone lib. Hence the 'please port the extractor'.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion This needs to be discussed before anything is done meta Related to the project but not strictly to code question Not really an issue, but more of a question about how something works
Projects
None yet
Development

No branches or pull requests