-
Notifications
You must be signed in to change notification settings - Fork 888
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
Migrate channel related functionality to YouTube.js #3143
Migrate channel related functionality to YouTube.js #3143
Conversation
Adding support for https://www.youtube.com/channel/UC-9-kyTW8ZkZNDHQJ6FgpwQ should be fairly easy (the header is formatted differently) and I think it'd be a good idea to support it (we only need to worry about the about page) Edit: this channel does not work previous to this PR so adding support in this PR is not necessary |
You should now be able to view that channel as well as other special auto generated ones like: |
Just wanted to add this as a potential test channel (age restricted channel for a whiskey distillery) https://www.youtube.com/channel/UCbfnHqxXs_K3kvaH-WlNlig We dont need this channel to work but it'd be nice to know whether it works or not |
ooh interesting so it looks like the channel page itself is age restricted but the all uploads playlist isn't (replace the first two characters in a channel URL with |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Conflicts have been resolved. A maintainer will review the pull request shortly. |
I only have 123 channels subscribed, no rate limit hit with VPN enabled... with RSS |
That's great to hear, looks like we don't need to adjust the limits then, yay! |
Iirc one of the invidious team members mentioned that innertube doesnt get rate limited as often |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
- Channel Handles
-
- Terminated channel
-
- Channel with playlist categories
-
- Gaming
-
- Minecraft Topic
-
- Age restricted channel
-
- Rate limited
-
- OPML
-
- Something i noticed
Results:
- Works as intended. Can click on a tag and searches it. Also click + enter works to open in new tab. Disable search bar disables ability to interact with tags.
- On local API: Shows
Joined
,Viewed
andLocation
. On Invidious API: ShowsJoined
andViewed
. Is this intended behavior? - Works with both API's.
- Doesn't happen anymore with both API's but i noticed that invidious fetches way more videos than local API. This wasn't the case before.
- User reported 2 issues in this one. 3 and 6 covers this issue so i wont be testing this one.
- Sorting works as intended on local API but not on invidious. Is this intended behavior?
- Channel handles works with both inputs on both API's. Invalid handle shows channel does not exists.
- Works for both API but i found some things i would like to address. On the invidious API it shows a toast with exactly the same info that is being displayed on the channel page. This toast message isn't shown on the local API. Why is this? Also when testing this and switching between API's i sometimes first got to see
this channel doesn't exists
and after hitting enter in the search bar a few times it would show me the correct message. I think i also saw this behavior on 7 a few times but i might be wrong. - Works but same behavior as 6. Also with the local API i noticed an error popping up on the about page.
- Works as intended only with local API
- Same as 10.
- Error dump on invidious API. On local API i just shows a nice message that the contents of the channel cannot be viewed.
- Tested by @PikachuEXE
- Works.
- Last thing i want to address is that sometimes when u go to a channel it briefly shows the message that the channel doesn't have videos uploaded to it and after that load the videos.
Edit: Updated list based on new commits
Note to self: u didnt test searching within the channel
45d164f
I've fixed the bugs in 6 and 9.
|
Updated the list. Did not check 8, 12 and 15. Do you want to address 8 and 12 in this PR? |
Can probably do 8 inside this PR and issue for 15 might be good. |
@efb4f5ff-1298-471a-8973-3d47447115dc 8 should be fixed now |
@absidue Everything from the list works.
IRC message |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
U also might want to address this
Looks like the search is broken on Invidious' side: iv-org/invidious#3594 (comment) |
* development: Fix video throttling because of range header (FreeTubeApp#3234) Translated using Weblate (Greek) Migrate channel related functionality to YouTube.js (FreeTubeApp#3143) Differentiate links in readme.md (FreeTubeApp#3224)
Might be a bit late, but I can confirm that this does indeed fix #2901 , thank you for the feature migration. |
Migrate channel related functionality to YouTube.js
Pull Request Type
Related issue
closes #1359 (only local API as Invidious doesn't provide them)
closes #1357
closes #2901
closes #2851
closes #2887
closes #2805
Description
This pull request migrates the subscriptions and channels functionality to YouTube.js.
It adds support for channel handles, channel stats, channel tags (local API only), age restricted (local API only) and special auto generated channels (local API only).
It also fixes issues with fetching more videos and sorting on channels with both the local and Invidious APIs.
Channel handles are supported in two ways, as URLs
https://youtube.com/@linustechtips
or by themself@linustechtips
.Channel tags are shown in a list on the about tab of channels, as in NewPipe, clicking on them searches for that keyword. They are implemented as
router-link
s so opening them in a new window is possible too (middle click, ctrl + click, context menu entry). If the hide search bar parental control setting is enabled, the tags are just displayed asspan
s and don't do any searching.YouTube's auto generated topic and gaming channels have a different layout to normal channels and need to be treated differently, this PR doesn't add support for showing any content on them yet, it only makes sure that they load without errors and that the about tab is populated with the available information (the
@gaming
channel doesn't have anything that we can currently display on the about page).Screenshots
Channel handle:
Details and tags:
Non-existent channel:
Testing
LinusTechTips URL with handle:
https://youtube.com/@linustechtips
LinusTechTips handle:
@linustechtips
Invalid handle (LTT with typo)
@linustehctips
Terminated channel:
https://youtube.com/channel/UC59AcfHD5jOGqTxb-zAsahw
Channel with playlist categories:
https://youtube.com/channel/UCez-2shYlHQY3LfILBuDYqQ
YouTube gaming:
https://youtube.com/@gaming
Minecraft - Topic:
https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg
Age restricted channel:
https://www.youtube.com/channel/UCbfnHqxXs_K3kvaH-WlNlig
Refresh your subscriptions, I currently haven't changed the 150 limit before switching to RSS, as I don't have anywhere near enough subscriptions to hit ratelimits (it now makes 2 requests per channel instead of 1), so if you have lots of subscriptions please try this, although I highly recommend using a VPN to test this, so that if you do get ratelimited, you can change to a different location to get away from it.
Backup your subscriptions first
afterwards:
Export your subscriptions as OPML
Remove all subscriptions and profiles
Import your OPML export
Desktop