iBicha / playlet

The unofficial, privacy driven, YouTube client for Roku
GNU Affero General Public License v3.0
277 stars 11 forks source link

Failed to load feed #372

Closed nuson999 closed 1 month ago

nuson999 commented 1 month ago

I added the channel and launched the app. The popup saying 'failed to load feed' showed up.

Reason: Internal server error StatusCode: 500 RequestID: 122683393 Body: ("error":"Missing hash key: I"content\"","errorBacktrace":"Missing hash key: I"content\" (KeyError)\n from /usr/share/crystal/src/hash.cr:1080:9 in '??\n from /usr/share/crystal/src/json/any.cr:103:7 in'process'In from src/invidious/yt_backend/extractors.cr:872:8 in 'extract_items'In from src/invidious/trending.cr:21:14 in '->'In from src/invidious/helpers/handlers.cr:30:37 in 'call'In from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call'In from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call_next'In from lib/kemal/src/kemal/filter_handler.cr:21:7 in 'call\n from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call'In from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call_next'In from src/invidious/helpers/handlers.cr:94:12 in 'call'In from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call'In from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call'In from /usr/share/crystal/src/http/server/handler.cr:28:7 in 'call_next\n from

iBicha commented 1 month ago

Can you try refreshing? Press and hold the OK button while in the home page, then choose "Refresh Home"

Edit: Also can you make sure the Invidious instance you're using is up to date? (if you've set a custom one)

nuson999 commented 1 month ago

Can you try refreshing? Press and hold the OK button while in the home page, then choose "Refresh Home"

Edit: Also can you make sure the Invidious instance you're using is up to date? (if you've set a custom one)

I refreshed the home, still the same popup. I was using the default instance without a custom URL set. I tried other public instances with the latest 2024.05.01, but it didn't work. While the testing, all passed.

iBicha commented 1 month ago

Interesting - this is obviously an Invidious bug more than a Playlet but, let's dig into it Can you find in the logs the url that failed? Basically the url of the request that failed (with the id 122683393)

nuson999 commented 1 month ago

For https://invidious.jing.rocks In the web app, trending feeds seem to be hidden; only popular feeds are shown. When I play one of the videos in the popular feed, it works well. However, the search does not work.

Edit: I tried accessing the Individious instance through my PC's browser, and everything worked well.

iBicha commented 1 month ago

Yes, the search and trending in your particular case wouldn't work. For some reason you Roku device is returning OT as a country code / region, which Invidious (and YouTube) does not understand.

The country of the device are sent with trending so you'd see trending videos related to the region, and they are also sent in the search to make the results more relevant.

I don't know what OT country is (this is supposed to be the country code associated with your Roku account) but I can substitute it with the default (US) to fix this bug

nuson999 commented 1 month ago

Okay. It would be great if we had an option to choose the country code. Also, I found out that the Japanese and Korean characters are broken. I'm not sure if it is just for me.

iBicha commented 1 month ago

Okay. It would be great if we had an option to choose the country code.

It's a good idea to have the setting at some point I guess, but let's fix this with a substitution for now. Added to the roadmap. #6 Do you mind sharing what your region is? I want to see if it OT should be substituted with US, or if there's a more appropriate option

Also, I found out that the Japanese and Korean characters are broken. I'm not sure if it is just for me.

This is a known issue that unfortunately can't be easily fixed #229

nuson999 commented 1 month ago

I'm in South Korea. All ROKU TVs in South Korea seem to be set to OT. Can you replace OT with KR? I appreciate your help.

iBicha commented 1 month ago

I'm in South Korea. All ROKU TVs in South Korea seem to be set to OT. Can you replace OT with KR? I appreciate your help.

I'm trying to get more info about OT from other Roku devs, I'm suspecting that OT could be for Other Territories that Roku decided to define outside of the standard, but I'm not sure.

I don't want to turn all "non-specific" countries to be replaced with KR, so I'll replace it with US for now (sorry if that is not convenient, but it is the default in Invidious when this param is not specified) but once I get more clarification, I'll update it if this is not accurate

Thanks a lot for reporting this, I'll push a fix shortly

Edit: yes OT is a code that represents the "Rest of the World` in Roku, since they don't list every single country. https://partnersuccess.roku.com/hc/en-us/articles/360013801853-Does-GetUserCountryCode-cover-all-possible-ISO-3166-1-country-codes-e-g-PL-for-Poland

iBicha commented 1 month ago

Fixed in https://github.com/iBicha/playlet/releases/tag/v0.23.4 it should work now Let me know if this fixes it for you

nuson999 commented 1 month ago

It works well. Thank you.

nuson999 commented 1 month ago

@iBicha Can you apply the fix on the web app too?

iBicha commented 1 month ago

@iBicha Can you apply the fix on the web app too?

Yup, I just realized I missed the web app, thanks

nuson999 commented 1 month ago

@iBicha Can you apply the fix on the web app too?

Yup, I just realized I missed the web app, thanks

Looks like it is not applied to the web app on the latest canary

iBicha commented 1 month ago

@iBicha Can you apply the fix on the web app too?

Yup, I just realized I missed the web app, thanks

Looks like it is not applied to the web app on the latest canary

Are you sure? I think it is working - make sure to refresh the page perhaps? This is the version with the fix on the web app

Screen Shot 2024-05-04 at 9 27 36 AM
nuson999 commented 1 month ago

My bad. I just remembered that I had to set it to Canary in the settings. Thank you for letting me know.