naipotato / Replay

[DEVELOPMENT MIGRATED] Explore and watch your favorite videos
https://code.potato.zone/replay-app/replay
GNU General Public License v3.0
156 stars 8 forks source link

Decide which method we will use to obtain the data #55

Closed naipotato closed 3 years ago

naipotato commented 3 years ago

I open this issue for discussion.

Currently there are several ways in which Replay could obtain the data:

Which method should be appropriate to use in this app? Which is the one that will hold up best in the long run?

tutitau commented 3 years ago

doesn't youtube-dl do the job ?

naipotato commented 3 years ago

doesn't youtube-dl do the job ?

@tutitau Well, this issue is about retrieving YouTube data like: current trending videos, searchs, channel metadata, channel videos, channel playlists, and so on.

youtube-dl is just helping with retrieving the actual video, and yes, I'm going to use it for that.

jannuary commented 3 years ago

does invidious allow one to log in and use their google account?

naipotato commented 3 years ago

@jannuary The only one that allows you to use your Google account is the YouTube Data API v3

Invidious has its own account system, not related to Google at all

naipotato commented 3 years ago

Well, after having recent discussions involving both @tchx84 and @Marki2019 (not necessarily both at the same time) on Telegram, I made the decision to use Invidious to get the data needed to nurture the app. In the future, the possibility of adding YouTube Data API as an option will be analyzed for those who prefer to continue maintaining a way to synchronize Replay with their data from their Google account.

Also, since Invidious doesn't have a central instance, but draws on the different instances created by the community, https://api.invidious.io will be used to obtain a list of the best instances according to their health.

naipotato commented 3 years ago

@lifeiscontent: you could create a facade for the data API. And if the user is logged out use the more privacy focused API and if the user prompts to sign in, use google APIs if they’re logged in