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

Publish to Store for 10.8 #69

Closed
9 of 11 tasks
anthonylavado opened this issue Jan 10, 2022 · 40 comments
Closed
9 of 11 tasks

Publish to Store for 10.8 #69

anthonylavado opened this issue Jan 10, 2022 · 40 comments

Comments

@anthonylavado
Copy link
Member

anthonylavado commented Jan 10, 2022

This is to track submitting the app to the LG webOS Store.

Main Test Plan

  • Test current app against latest 10.8 (alpha5 at the time of writing) on webOS 6.x
  • Test current app against latest 10.8 on webOS 5.x
  • Test current app against latest 10.8 on webOS 4.x

Issues to Resolve


Issues to Look At


Final Notes

  • Re-test above platforms after any code changes
  • Review submission paperwork (functionality test, update flow screenshots)
  • Ensure private testing server for vendors is updated to latest 10.8 build
  • Submit to LG for review

Overall Notes
Server minimum resume duration needs to be lowered from the default 300s to something like 120s, since most demo clips are approximately 5 minutes long. Since the minimum resume watch time is 5% progress, this means that an average 5 min clip will be resumable after 15s watch time.

webOS 6 and 10.8.0-alpha5
Testing appears to be good so far. Tested against sample TV show and Movie content, both responded to start playback, resume, and start from beginning.

A possible UI issue in some cases where the hover state still isn't correct on the play button when going back from actively watching something. It corrects itself if you move the cursor left or right, or if you leave the item and re-enter it. Earlier issue of both buttons being highlighted blue is gone (resolved in jellyfin-web). Need to open an issue on the web repo for this to be fixed in 10.8.
Example:
image

Play/Resume Button Issue

As mentioned above, I've created a corresponding issue in the web repository, and there is a draft PR to fix it.
See:
jellyfin/jellyfin-web#3320
jellyfin/jellyfin-web#3340

URL Validation at Server Entry

Testing completed, I am satisfied that this will work going forward.
See: #72

webOS 5 and 10.8.0-alpha5
Testing completed. All functions appear to be working, and I was able to resume content with no issues on the private test server. The visual issue from Jellyfin-web still remains, but that is unrelated to the app. It will appear to be fixed when the web interface is updated.

webOS 5 and 10.8.0-alpha5
Partial testing completed. Music played and stopped with no issue. Videos seem to playback and resume without issue. I just want to do another pass of this on webOS 4 before I "sign off" on it.

I should stress that the demo server has had specific setting adjustments to ensure that resume happens, which included shortening the minimum time to consider something resumable. All content has been encodes to ensure playback is as smooth as possible with no need to transcode.

Play/Resume Button Issue Resolved
The relevant PR in Jellyfin-web has been approved and merged. This will be part of the next build of Jellyfin. When I next update our private demo server, this will then appear correctly for LG's tests.
I'll see if there's any way I can selectively patch it in the meanwhile.

While I'll still need to do another pass on webOS 4, this gives me confidence that we'll be able to submit soon. Other issues as they come up (and as mentioned above) will likely not require a specific webOS client update, and can be resolved on the server side. The only exception would be a "reset connection" option, but that is also cleared by removing the app and re-installing it again.

@sander1095
Copy link

Perhaps this can only be answered after refining, but..

I have an LG C9, what can I do (and other people with the same or other tv's/web OS versions) to help with testing :)?

I can of course just load it onto my TV and use it, report bugs, but perhaps part of the refinement would be to make an excel document or something with a list with all features that should be tested and the testing results on each web os version?

@anthonylavado
Copy link
Member Author

@sander1095 Thanks for the offer! At this point, it's just making sure that playback (start and resume) works with our demo content. If that passes here, then LG should in theory have everything else satisfied from the test results they gave us before.

It's a bit funny because the app itself is a special wrapper for the web interface loaded off the server. Once this gets out to LG, we'll almost never have to update it, since updates to the Jellyfin server would bring the enhancements needed.

So far it's been going well. I'll let you know if I need anything extra though. The heavier testing work would probably be when we go to try and support older TVs.

@samcon
Copy link

samcon commented Jan 10, 2022

Hey,
I'm have an LG C8 (I think it's Webos 4.5?), running jellyfin-webos version 1.0.1 with nightly jellyfin server and resume doesn't work. The issue where the resume and restart button were both "selected" seems resolved, but pressing the resume button actually restarts. When using a desktop browser resume does work as expected.
I'd be happy to assist in any way I can.

@sander1095
Copy link

sander1095 commented Jan 10, 2022

@anthonylavado

Do you have a link to the demo content?

Also, would it be an idea to make a special tag for bugs specific for this "push to store" goal and create a new issue for @samcon 's report? Not sure how you guys wanna handle this!

@anthonylavado
Copy link
Member Author

@sander1095 There is a tag that I've used here, release critical. That can be used.

The demo content is the same as on the public demo server, just on a private install. Sadly the demo server is not running 10.8 at the moment, but our private one at least will be updated soon.

The gist of the demo content is that it's deliberately easy to play. All media is H264 with either stereo AAC or MP3 audio, and in an MP4 container. Nothing should require transcoding, and all clips are about 5-10 minutes in length. While this may seem "rigged", it's because we just need the app to pass - everything else is fixed by independent server updates.

@anthonylavado
Copy link
Member Author

I've updated the list above. So far so good for webOS 6 and 10.8.0-alpha5. On to the next item.

@anthonylavado
Copy link
Member Author

I've revised the list of tasks in the first comment to include more detail about what's needed to bring this the rest of the way through.

Testing against webOS 5.x was successful, so that confirms at least webOS 5 and 6 for now. I have installed additional emulators for webOS 1 - 4, but testing for anything below 4 may be limited for the time being. We'd like to get the app out on the official store as soon as possible, and it has proven difficult to support older browsers in some cases (see the LG release list to see just how far back the browser version goes).

@sakej
Copy link

sakej commented Jan 17, 2022

Hi guys.
I have webOS 4.40-9 tv, can help with test if you need it and tell me what to do (new to git) :)

@Fyb3roptik
Copy link

I want to do a PR to fix the whole server address remember edge case. I'll have more info tomorrow on a possible solution

@stoically
Copy link

Sorry for hijacking this thread: Is there a way to prevent webOS from uninstalling the manually installed dev version after a while?

@besendorf
Copy link

Sorry for hijacking this thread: Is there a way to prevent webOS from uninstalling the manually installed dev version after a while?

https://rootmy.tv/

@Fyb3roptik
Copy link

@anthonylavado I tested this in the Webos 4.0.0 Emulator and it works great! I also did not see that issue where if you have connect automatically checked, then it wont let you change the server address. Anything else we need to verify before we deploy?

@thanasis00
Copy link

Hello, I am interested in using Jellyfin as my main media player. I just bought a new LG OLED tv but I am not at the point of rooting it or sideloading jellyfin yet, so I found this issue about publishing it to the LG store. I am interested in contributing to move this issue forward, and I will try to setup a dev environment. Are there any new updates on the current open issues? As @Fyb3roptik mentioned, is that issue already resolved?

@dab2020
Copy link

dab2020 commented Apr 15, 2022

Sorry for hijacking this thread: Is there a way to prevent webOS from uninstalling the manually installed dev version after a while?

https://rootmy.tv/

Actually you no longer have the root the tv for this and nor do you have to install the Developer SDK just to install the app.
I made a guide here
This install method is permanent and works pretty well.

@brmdbr
Copy link

brmdbr commented May 4, 2022

@dab2020 What is the url is should call regularly to make sure the install is permanent? the link in the guide is broken.

@sander1095
Copy link

@brmdbr Take a look at this for more instructions: https://github.com/webosbrew/dev-manager-desktop . It contains intstructions on how you can set it up with IFTTT.

I tried it with IFTTT but it stopped working. I am pretty sure it was my fault, though. IFTTT is likely a lot easier to set up, but I like doing things myself.
In any case, I use this script to make a cronjob run it every 4 hours. Your TV doesn't need to be on, as far as I know. :) If the TV is off, it will just use the cached sessiontoken. IDK if the session token changes.

#!/usr/bin/env bash

set -Eeuo pipefail


echo "----------`date`----------"

echo "Requesting SessionToken"

sessionToken=$( ssh -i /home/pi/.ssh/tv_webos -o ConnectTimeout=10 -o StrictHostKeyChecking=no -p 9922 [email protected] cat /var/luna/preferences/devmode_enabled ) || true

if [ -z "${sessionToken}" ]; then
  echo "Connection to TV failed. We will use the cached version saved in /home/pi/Projects/webosdevmode/webos_devmode_token_tv.txt instead"
  sessionToken=$(cat /home/pi/Projects/webosdevmode/webos_devmode_token_tv.txt)
else
  echo "Call succesful: $sessionToken"
  echo "saving session token in temporary file (/home/pi/Projects/webosdevmode/webos_devmode_token_tv.txt)"
  echo ${sessionToken} > /home/pi/Projects/webosdevmode/webos_devmode_token_tv.txt
fi

if [ -z "${sessionToken}" ]; then
  echo "Unable to get token" >&2
  exit 1
fi


echo "Requesting LG servers to extend DevMode on the TV using sessionToken: ${sessionToken}.."

checkSession=$(curl -k --max-time 30 "https://developer.lge.com/secure/ResetDevModeSession.dev?sessionToken=${sessionToken}")

echo $checkSession

exit 0

@stoically
Copy link

stoically commented May 5, 2022

Personally all I have is a cron entry doing a curl on the URL, like so

$ cat /etc/cron.hourly/lg 
#!/bin/bash

curl -v https://developer.lge.com/secure/ResetDevModeSession.dev?sessionToken=the_token

Works for me. Obtained the session token from the dev-manager-desktop once.

@sander1095
Copy link

@stoically that is super interesting and way easier than mine!

Does the session token never change? Would anyone know more about this?

What does a session mean in this context? The entire lifetime of the devmode of the tv being activated? I am a bit puzzled about why it would never expire or change.

@yairp03
Copy link

yairp03 commented May 11, 2022

Is this still alive? If so, what is the estimated publish date?

@magikmw
Copy link

magikmw commented May 11, 2022

Is this still alive? If so, what is the estimated publish date?

As I understand, we need to wait for the release of server 10.8 (currently in beta 2), since it fixes several issues that blocked the publishing before.

@dab2020
Copy link

dab2020 commented May 21, 2022

Does the session token never change? Would anyone know more about this?

@sander1095 Every time the Developer mode is enabled a session starts. It is assigned a token that identifies it to the LG developer API. When the dev mode session expires so does the token. However if you keep extending the session, theoretically, you could keep the same token forever.
It is not bound to specific hardware nor is it permanent, if you turn off the developer mode and turn it back on, the Token will change.

@InsaneCake
Copy link

@sander1095, @dab2020
Yes, token does not change while dev mode is activated. I was struggled by finding session token itself, this comment on reddit was helpful. In my case on Manjaro i wasn't able to connect to the TV by ssh cause it uses older version and i needed to add Tv's ip to exceptions.
Then you have session token, you can use anything to renew session period by sending GET request.
I use JF app on TV few weeks already without troubles.

@dab2020
Copy link

dab2020 commented May 21, 2022

In my case on Manjaro i wasn't able to connect to the TV by ssh cause it uses older version and i needed to add Tv's ip to exceptions.

Wouldn't using the Dev Manger app make this a lot easier for novice users? No need to mess about with SSH. Just simply get the link to send a GET request to.

@InsaneCake
Copy link

InsaneCake commented May 21, 2022

Wouldn't using the Dev Manger app make this a lot easier for novice users? No need to mess about with SSH.

Well... Now i know about it, thanks)

@arthurEspooner

This comment was marked as spam.

@arthurEspooner
Copy link

will this ever be published?

@sebdanielsson
Copy link

will this ever be published?

Read the response to this very question a couple of comments up instead of spamming all of us who subscribed to this issue.

@Fyb3roptik
Copy link

10.8 officially released! Cannot wait to see this bad boy out there

@yairp03

This comment was marked as off-topic.

@Fyb3roptik
Copy link

10.8 Server was released

@yairp03

This comment was marked as off-topic.

@Kivylius
Copy link

Can we get status update please? and what else is left, im sure we all want to help in anyway we can and get this out after a 3 years in the making.

@xzaz
Copy link

xzaz commented Jun 23, 2022

They are working on the resume functionality: #46 PR has been made but it's not optimal yet. 10.8 didn't fixed the issue.

@Fyb3roptik
Copy link

Looks like 10.8.1 fixes it! WOOT!

@yairp03

This comment was marked as off-topic.

@dab2020
Copy link

dab2020 commented Jun 28, 2022

Then what's now?

The Jellyfiin team is most likely going to submit the app for review by LG, which is a process that can take weeks or even months.

@MrVoid23
Copy link

With the release of 10.8 it was said that the app had already been submitted for review(iirc).That was weeks ago,so i suppose if it was submitted,we should have an answer pretty soon.

@sander1095
Copy link

Can we all stop posting these questions and other irrelevant comments? This would be better suited for the subreddit/official forum.

Every time someone asks what the state is, 66 people get notified.
Every time someone is happy that a new version is released, 66 people get notified.
I know this comment will also notify 66 people, but I hope it's the final time.

All this noise clutters up the issue, making it more difficult for the devs to find potential issues or other information they might need. Perhaps even slowing down the release process.

They are working on it. Be patient.

You don't need to wait for this to be released to the store officially. It's pretty simple to run jellyfin in developer mode on your TV, links have been posted in this thread. And if you need help, post it on the subreddit, people (including me) will be happy to help you out.

@stoically

This comment was marked as off-topic.

@jellyfin jellyfin locked as too heated and limited conversation to collaborators Jun 28, 2022
@jellyfin jellyfin deleted a comment from arthurEspooner Jun 28, 2022
@anthonylavado
Copy link
Member Author

Release available on the LG Content Store for those running webOS 6+ (models from 2021 and newer).

Closing this issue to create a new, limited one for error tracking and future fixes.

There is one small bug to fix for webOS 5.x, and then we can resubmit with that update. After, more fixes will likely follow. We'll try our best to get as far back as webOS 3.x, but I am less optimistic about webOS 2.x and 1.x. If we get to 3.x, that brings us as far back as TVs from 2016 (running Chromium 38 from 2014!). You can see what versions of the browser are included here: https://webostv.developer.lge.com/discover/specifications/web-engine/

Thanks for your patience all. I'll be posting a blog post and link on Reddit/Twitter/Chat soon.

@anthonylavado anthonylavado unpinned this issue Jul 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests