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

Most instances can't import subscriptions, only official, and one unofficial instances #2274

Closed
1 task done
pinbuck opened this issue Apr 4, 2023 · 16 comments
Closed
1 task done
Labels
bug Something isn't working

Comments

@pinbuck
Copy link

pinbuck commented Apr 4, 2023

Official Instance

Describe the bug

I had another user confirm that my test results should be repeatable, he uses google chrome on windows and my own linux install using firefox with the same exact results.

Here are my test results:
instances.txt

I also tested the actual websites of each unofficial instance such as https://piped.esmailelbob.xyz/ and found there was no difference and the problem still occurs.

To Reproduce

  1. Make sure you are logged out of each instance tested, have no subscriptions loaded so far, and no changes to preferences per instance.
  2. Open piped.kavin.rocks or piped.video
  3. Select an unofficial instance other than piped.kavin.rocks, piped.video.
  4. Attempt to import a subscription playlist without being signed in.
  5. As a result, the import will not work, leaving either no response or infinite loading circle. 777.tf is the only unofficial instance and website that works importing subscriptions of any size.

Expected behavior

Importing subscriptions should work without an account logged in.

Logs/Errors

N/A

Browser, and OS with Version.

Fedora 37 Linux, Firefox 111.0.1 latest version and packages up to date.
Windows 10, Google Chrome 111.0.5563.146/147, latest version

Additional context

No response

@pinbuck pinbuck added the bug Something isn't working label Apr 4, 2023
@Ammako
Copy link

Ammako commented Apr 17, 2023

Works here at adminforge.de, YMMV I suppose. There's a chance something in your subscriptions could be causing issues (one particular channel or some such) which would explain why it works for me but not for you.

@FireMasterK
Copy link
Member

Could you maybe share the subscriptions privately to me? I've never been able to reproduce this 🤔

@thomasb22
Copy link

I had the same problem. In fact, you have to select the right instance in the preferences. So if you import your preferences before the subscriptions, the instance is not the right one because it also imports the previously saved instance.

@pinbuck
Copy link
Author

pinbuck commented Apr 27, 2023

I never understood why loading preferences seemed to load my subscriptions too, is that normal? I was setting it up on a friend's computer, imported my preferences, and all of my subscriptions loaded on a browser with just the preferences.json and no login included...

This issue was reproducible with one random subscription per json (tested with 5 different subscriptions.json, with and with and without logging in.
(as stated in the notepad, when logging in subscription loading was always successful)
I tested with and without cookies being saved through exceptions only (i also tested this later on my system with LibreWolf latest version, version 112) with the same results.

Sadly, yt.777.fi is closing down in 3 days, it was the only other instance and kavin libre that had no cdn and could load subs without account.

normal kavin.rocks doesn't have this problem when not logged in and no cookies/site data saved also.
I also tested every instance listed within piped.video, also to mention I even tried other website instances and got the same results.

I'll retry this with other browsers.

@thomasb22
Copy link

It's not an issue but a feature, I think ^^
In preferences.json are saved your instance with a token, and if you use on other instance without change the instance used in preferences the subscriptions are checked on the instance save in preferences.

@FireMasterK
Copy link
Member

I never understood why loading preferences seemed to load my subscriptions too, is that normal? I was setting it up on a friend's computer, imported my preferences, and all of my subscriptions loaded on a browser with just the preferences.json and no login included...

This is different than the issue above. Please open a new issue!

It's not an issue but a feature, I think ^^ In preferences.json are saved your instance with a token, and if you use on other instance without change the instance used in preferences the subscriptions are checked on the instance save in preferences.

It's an unexpected bug, preferences shouldn't really include subscriptions!

@FireMasterK
Copy link
Member

Could you maybe share the subscriptions privately to me? I've never been able to reproduce this thinking

@pinbuck is there any way for anyone to reproduce this issue? Feed loading works with my subscriptions on all instances I tested.

However, I did notice that the video uploaded time was quite varying in different instances, which does sound worrying and I need to investigate that further.

@thomasb22
Copy link

It's an unexpected bug, preferences shouldn't really include subscriptions!

If it's a bug, what's the token for?

@FireMasterK
Copy link
Member

If it's a bug, what's the token for?

That shouldn't be included either...

@Bnyro
Copy link
Member

Bnyro commented Apr 27, 2023

We're currently making a backup of the whole local storage, and as local subscriptions are stored in the local storage and not in IndexedDb or server side they get backed up to. Though I don't see a reason to remove it, as there's no real disadvantage of it? Otherwise you'd have to create two different backups doing the same thing.

@FireMasterK
Copy link
Member

We're currently making a backup of the whole local storage, and as local subscriptions are stored in the local storage and not in IndexedDb or server side they get backed up to. Though I don't see a reason to remove it, as there's no real disadvantage of it? Otherwise you'd have to create two different backups doing the same thing.

True, but it does feel like it's unexpected behavior? I could imagine someone losing all their subscriptions by accident, especially since there's no mention of it... Maybe we should have an option to enable/disable it or, include a warning.

Regarding auth tokens, they just shouldn't be included at all imo, for security reasons.

@Ammako
Copy link

Ammako commented Jun 23, 2023

I've reproduced this issue when I wanted to change instances. I exported my subscriptions from the previous instance, created an account on the other instance, and tried importing my subscriptions. Subscription count stayed 0 even though my file is valid and contains 98 subscriptions.

So I cleared cookies, closed my browser to wipe everything else, reopened and re-logged in to the new instance, and this time the import worked as expected. I don't know if it could be reliably reproduced just by following these steps though. OP's issue was without being logged in at all in the first place...

@FireMasterK
Copy link
Member

So I cleared cookies, closed my browser to wipe everything else, reopened and re-logged in to the new instance, and this time the import worked as expected. I don't know if it could be reliably reproduced just by following these steps though. OP's issue was without being logged in at all in the first place...

Imports take some time to happen as they happen asynchronously behind the scenes. In your case, the import likely took a while and was still happening. (it depends on how many subscriptions you have)

@Ammako
Copy link

Ammako commented Jun 23, 2023

It's always been instantaneous, every other time that I've tried.

@pinbuck
Copy link
Author

pinbuck commented Jan 20, 2024

To reclarify: the way I use piped is without an account, this saves me time and keeps my password and data off of the many instances I have to switch back and fourth to when the ones I use go down.

This hasn't been a problem for me that much anymore since I started just using the two official piped.kavin.rocks for auth which don't go down too much.
I'm able to import my subscriptions to just those two as mentioned in the issue, and have been for a while after this issue was made to seperately set any instance seperate from that as I wish.

I would still suggest any piped devs or piped instance owners to look into going accountless. (no sign-in or sign-up)
It should be a less resource intensive method for using piped instances... while providing nearly the exact same experience. It would also encourage users to backup their subscriptions.json for when instances disappear for any reason.

@pinbuck pinbuck closed this as completed Jan 20, 2024
@FireMasterK
Copy link
Member

This hasn't been a problem for me that much anymore since I started just using the two official piped.kavin.rocks for auth which don't go down too much. I'm able to import my subscriptions to just those two as mentioned in the issue, and have been for a while after this issue was made to seperately set any instance seperate from that as I wish.

This suggests that it might be because you had a really large subscriptions list, we were previously still using a GET request for these with the channels in the query parameters. This was 'fixed' in f2679c4, to use the POST method for large subscription lists.

I would still suggest any piped devs or piped instance owners to look into going accountless. (no sign-in or sign-up) It should be a less resource intensive method for using piped instances... while providing nearly the exact same experience. It would also encourage users to backup their subscriptions.json for when instances disappear for any reason.

We do currently support a good out of the box experience for accountless users (every feature currently works regardless of if you use an account), though there are no plans to make it a first class feature. In the future, things like Watch History, Preferences, Channel Groups will be e2ee, and syncable with an account. Unauthenticated users actually cause more server stress and load than authenticated, due to the large queries that are necessary (that can't be avoided) — while the impact of these could be better mitigated, it requires a lot of engineering effort (which I don't have time for). #1046 would also be helpful (for both accounts, and accountless).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants