Coder Social home page Coder Social logo

jellyfin / jellyfin-roku Goto Github PK

View Code? Open in Web Editor NEW
402.0 23.0 128.0 22.19 MB

The Official Roku Client for Jellyfin

Home Page: https://jellyfin.org

License: GNU General Public License v2.0

Makefile 0.45% BrighterScript 99.25% JavaScript 0.28% Bikeshed 0.02%
roku jellyfin jellyfin-client brighterscript brightscript

jellyfin-roku's Introduction

Jellyfin Roku

Part of the Jellyfin Project

Logo Banner

Code Documentation Build Status Current Release Translation Status Forum Matrix License

Jellyfin Roku is the official Jellyfin client for Roku devices. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start.

Install

Download the latest release on the Roku Channel Store.

Get Involved

No matter what your interests or skills are you can help make this client better for everyone by simply using the client and giving feedback to the developers when things break. Create an issue here on GitHub or give us a shout on Matrix.

Beta Test

To test the latest features before they get released:

  1. Put your Roku device in developer mode. Write down your Roku device IP and the password you created - you will need these!
  2. Download the latest build. Select the first item listed then click the link at the bottom of the page i.e. Jellyfin-Roku-dev-d3352495c579f6adeca085cdbc137ac36e70d558. This will download a zip file to your computer.
  3. Put your Roku's IP from step 1 into a browser i.e. http://192.168.1.2 and press enter.
  4. Log in with credentials from step 1.
  5. Upload and install the zip file downloaded in step 2.

NOTE: The beta app will always be at the bottom of your Roku's channel list and it will not automatically update.

Advanced

For more advanced deployment methods, access to crash logs, or to learn how to setup a developer environment so you can write some code yourself please read the DEVGUIDE.

Feature Requests

New feature requests are always welcome but before creating an issue please read through the existing issues to see if someone has already raised one for what you're looking for.

jellyfin-roku's People

Contributors

1hitsong avatar alanazar avatar andibing avatar anthonylavado avatar apexarray avatar bisby avatar candry7731 avatar cewert avatar danielxb-ar avatar dependabot[bot] avatar djcand avatar djsweder avatar fyb3roptik avatar jdlayman avatar jellyfin-bot avatar jimdogx avatar jimiatnymbl avatar jkim2492 avatar mcrowson avatar moritzleick avatar neilsb avatar photonconvergence avatar renovate[bot] avatar saddfox avatar sevenrats avatar stonepoet avatar thomabx avatar tschwery avatar twitchbronbron avatar wwwesten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jellyfin-roku's Issues

Pagination doesn't work (random sort order)

Describe the bug

I have a few hundred items in my jellyfin library, and when I try to browse through them (by hitting next page), the list gets scrambled. Generally the first result on the second page will be the same as it was on the first page, and the rest of the results are in a totally random order (afaict), with plenty of duplicates from the first page. If I then go back to the first page, it's also in a totally random order.

To Reproduce

  1. Have enough media items that the results are paginated (I have 3 pages)
  2. Click on the folder that has the aforementioned media items
  3. Scroll down to the next page button
  4. Click the next page button
  5. See a random list of movies in no particular order

Expected behavior

Ordered list of items, allowing me to browse my whole collection

Logs

Screenshots

Additional context

Unable to change server IP address

Describe the bug
The IP address of my server changed, and now I'm unable to direct the app to the new one.

To Reproduce
Set the IP address of the server on the first setup, then change the IP of the server.

Expected behavior
That there is a way to change the address the app connects to

Align TV Episodes Vertically

TV Episodes are aligned horizontally and the clip thumbnails all get compressed strangely. Episodes should be aligned vertically with summary text to the side similar to the web app.

image

image

Cannot compile in macos, projectPath missing for rooibos when making

Trying to compile and deploy on macos, but, it is not getting past make test, getting the error:

make test
*** Preparing Staging Area ***
  >> removing old application zip ./out/apps/Jellyfin_Roku.zip
  >> creating destination directory ./out/apps
  >> setting directory permissions for ./out/apps
  >> creating destination directory ./out/staging
  >> moving application to ./out/staging
Processing....
parsing config { testPath: 'out/staging/source/tests/specs',
  rootPath: '',
  outputPath: 'out/staging/source/tests/rooibos' }
/usr/local/lib/node_modules/rooibos-preprocessor/dist/lib/ProcessorConfig.js:21
        throw new Error('Config does not contain projectPath property' + docsLink);
        ^

Error: Config does not contain projectPath property
Please read the docs for usage details https://github.com/georgejecook/rooibos/blob/master/docs/index.md#rooibosc
    at Object.createProcessorConfig (/usr/local/lib/node_modules/rooibos-preprocessor/dist/lib/ProcessorConfig.js:21:15)
    at Command.<anonymous> (/usr/local/lib/node_modules/rooibos-preprocessor/dist/cli.js:46:45)
    at Command.listener (/usr/local/lib/node_modules/rooibos-preprocessor/node_modules/commander/index.js:315:8)
    at Command.emit (events.js:182:13)
    at Command.parseArgs (/usr/local/lib/node_modules/rooibos-preprocessor/node_modules/commander/index.js:665:12)
    at Command.parse (/usr/local/lib/node_modules/rooibos-preprocessor/node_modules/commander/index.js:474:21)
    at Object.<anonymous> (/usr/local/lib/node_modules/rooibos-preprocessor/dist/cli.js:51:9)
    at Module._compile (internal/modules/cjs/loader.js:722:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
make: *** [prep_tests] Error 1

Rewrite GUI/layout code for 1080p

As mentioned in #70 the current code base is written for 720p and 1080p. Rewriting for 1080p only and letting Roku auto scale should allow for cleaner easier to read code and prevent future bugs.

As mentioned in the Roku docs - try to make all spacing and layout sizing divisible by 3, which will allow Roku to resize to a lower resolution without glitches.

  • Config Screnes
  • Library select
  • Search results
  • Options
  • All movies list
  • All TV shows list
  • All Collections list
  • Movie details
  • TV show details
  • TV episode list
  • Collections detail

Home Screen View Layout Update

Currently just the libraries are selection options on the home screen after login.

  • The libraries need thumbnails
  • I can get focus going Down to a search field that is not visible
  • Missing Continue Watching category
  • Missing Latest Movies category
  • Missing Latest TV Shows category

Images made from image script look weird

Describe the bug
Images made from image script are off for me

To Reproduce
delete current images if necessary
run make_images.sh
look at quality of images

Expected behavior
identical to upstream

Screenshots
Screenshot from 2019-10-05 01-04-57

Additional context
I'm on ubuntu 18.04
Noticed during testing while I was adding image script to makefile

Use a Single Scene

Is your feature request related to a problem? Please describe.

Roku Docs suggest using a single Scene: https://sdkdocs.roku.com/display/sdkdoc/Scene

We appear to have multiple Scenes that all extend Scene which should be avoided if I'm reading these docs correctly.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

I'm still trying to wrap my head around this and very well may not know what I'm talking about.

Movie Detail View Layout Update

Movie detail view buttons are not in order.

No ability to select language/subtitles

Not showing actors in film

Not showing More Like This

Audio transcoding detection

No sound on some titles, does not detect need to transcode. No option to force audio to a format roku can understand.

Can't log in as user with no password set

Describe the bug

I have multiple users configured on my system, with a guest user that has passwordless access. I cannot log in as this user from the Roku app, as I am prompted for a password and leaving it blank doesn't work.

To Reproduce

  1. Through the Jellyfin web interface configure multiple users, and leave one with no password (so anyone can log in as that user)
  2. Open the Jellyfin-roku app
  3. Select Server
  4. When prompted for a user, type in the name of the passwordless user you set up earlier
  5. attempt to connect (leaving the password field blank)

Expected behavior

I log in successfully and see my media.
Logs

Screenshots

Additional context

Roll Make_images script into Makefile

Describe the feature you'd like

Currently there is a make_images.sh script that updates the images in our images folder. Remove this script and add the functionality to make

1.0 Release Scope

We should set the scope for a 1.0 release. I imagine this could be tracked as a GH project, but would help us prioritize and focus.

TV Show Detail View Layout Update

The TV Show scene that shows the seasons and overview of the show needs a rework. Currently cuts off the summary text and not intuitive to scroll right. Should probably be a scroll down to continue for consistency.

image

Testing framework not working

Describe the bug
app crashes when running "make test"

Logs
------ Running dev 'Jellyfin' main ------ Starting test using test scene with name TestsSceneTestsScene ######################################################################### #TEST START : ###UNDEFINED_TEST_ID### Loading test config from default location : pkg:/source/tests/testconfig.json ERROR! RBSFM_getTestSuitesForProject is not found! That looks like you didn't run the preprocessor as part of your test process. Please refer to the docs.

Back Button Goes to Home Screen on Libraries Page

Describe the bug

Once this options screen is up, pressing the Back button returns the user to the home screen instead of closing the options and returning the user to their previous screen.

To Reproduce

  1. Be logged into a Jellyfin server and at the main Library scene.
  2. Press the * (Options) button to bring up options to Change Server, Sign Out ,etc.
  3. Press the Back button.

Expected behavior

The options are closed and the user is returned to the main Library scene

Logs

Screenshots

Additional context

Parity Webapp Search

Is your feature request related to a problem? Please describe.

The webapp fires off like 10 searches at a time for search instead of 1 mega search.

Describe the solution you'd like

We should break search queries up.

Describe alternatives you've considered

Additional context

Making API requests more similar to webapp means it should be easier to decide which endpoints to use.

Library Detail View Sort Options

The web application has several sorting and grouping options for libraries:

image

The emby roku app has the following choices for similar sorting/grouping:

[Library], Genres, Folder, Search

App Crashes On "Connect To Server" upon back button press

Describe the bug

App freezes on "Connect to Server" or "Sign In" screen when back button is pressed.

To Reproduce

  1. Go to "Sign In", or "Connect to Server" screen
  2. Click "back" button. (may have to click it twice)
  3. See error

Expected behavior

Either app does nothing, if no where to go - such as initial login - or app returns to previous user session if "change user" was chosen.

Logs

9-10 19:50:31.323 [scrpt.ctx.run.enter] UI: Entering 'Jellyfin', id 'dev'

------ Running dev 'Jellyfin' main ------
tracker Run
Get server details
tracker Run
Get user login
tracker Run

BrightScript Micro Debugger.
Enter any BrightScript statement, debug commands, or HELP.

Suspending threads...
Thread selected:  0*   pkg:/source/api/userauth.brs(19)        url = Substitute("Users/{0}", id)

Current Function:
017:  function AboutMe()
018:    id = get_setting("active_user")
019:*   url = Substitute("Users/{0}", id)
020:    resp = APIRequest(url)
021:    return getJson(resp)
022:  end function
Type Mismatch. (runtime error &h18) in pkg:/source/api/userauth.brs(19)
019:   url = Substitute("Users/{0}", id)
Backtrace:
#2  Function aboutme() As Dynamic
   file/line: pkg:/source/api/userauth.brs(19)
#1  Function loginflow() As Void
   file/line: pkg:/source/Main.brs(41)
#0  Function main() As Void
   file/line: pkg:/source/Main.brs(12)
Local Variables:
global           Interface:ifGlobal
m                roAssociativeArray refcnt=4 count:1
id               Invalid
url              <uninitialized>
resp             <uninitialized>
Threads:
ID    Location                                Source Code
 0*   pkg:/source/api/userauth.brs(19)        url = Substitute("Users/{0}", id)
 1    pkg:/components/TrackerTask.xml(1284)   msg = wait(0, inputPort)
 2    pkg:/components/TrackerTask.xml(1284)   msg = wait(0, inputPort)
 3    pkg:/components/TrackerTask.xml(1284)   msg = wait(0, inputPort)
  *selected  

Screenshots

Additional context

Better Messaging for Incorrect Server Information

When entering incorrect server information during setup, provide feedback if the IP/Port combination is bad and retain the user entered information.

Currently if incorrect information is entered the fields reset.

Add Images to Project

Images change seldom enough that we should include them in the project. Further, generating these images seems to produce strange results depending on the whims of the ImageMagick library.

Drop built in support for 720p and have Roku autoscale

In the manifest file we have ui_resolutions=hd,fhd which is telling Roku we have two versions of the GUI, one for 1080p and and one for anything above 720p. Is this intentional? Is the app currently designed with this in mind?

When viewing the app on my 1080p screen (with 1080p selected in Roku settings) I noticed the GUI for the app doesn't look right (spacing off, missing buttons etc.). I then set up RALE and noticed that the app is forcing my resolution to 720p somehow?

I changed the manifest file to ui_resolutions=fhd , deployed, and now the app looks much better. I can actually see the little button for search on the main page, TV and Movie detail screens look better and I can see all the buttons!

I suggest we design for 1080p (fhd) and let Roku automatically scale the app down as needed like Roku recommends (see Recommended intended resolution and Autoscaling guidelines)

Separate Brightscript from XML Files

The brightscript should probably not live inside XML files. Not sure the appropriate file structure and architecture, still combing the developer docs, but BS in XML seems off.

Button Color Defaults Clash with Background

The button background color matches the background, so it is hard to differentiate the labels with buttons. Button background colors should be different from the main background. This issue might take care of itself after fixing #6 but a better default wouldn't hurt.

image

Status of the Roku app

Hey, I just discovered Jellyfin yesterday, and it's looking really great! However, we exclusively use Roku devices in our house...and the Roku app is quite lacking. I'm a programmer, and have some experience with Roku development. (I maintain the vscode-brightscript-language). I'd love to pitch in and help with the Roku app...but before I started hacking away at it, I wanted to make sure you didn't have a ton of commits sitting locally that weren't pushed?

Translation Support

Describe the feature you'd like
When building out local UI strings, build them in a way that supports translations.

Additional context

Unable to cast to Roku Device from Jellyfin website

Inside the JellyFin webpage, JellyFin theater App page or other app connecting to a JellyFin server which has the Cast or PlayOn button in the top right hand corner; it should be able to see a Roku device to Cast or PlayOn to that Roku device.

For example if I have three computers connected as Devices using Chrome/Firefox or JellyFin Theater App and I am on the JellyFin dashboard I can see those three computers as Devices and can Cast or PlayOn to any of those devices. I can also see my Roku devices in the JellyFin Dashboard but the Cast/PlayOn Icon does not bring up the Roku as an available device that I can cast too.

I would like to be able to cast to the Roku devices that are connected to the JellyFin server on my network.

Enable RALE Component

Using RALE should make UI development a lot easier. Currently not supported in the app and my little bit of playing with it cannot get the RALE component recognized.

Make the rows on Library view screen not wrap to a second row

Is your feature request related to a problem? Please describe.
If you have 6 or more libraries the 6th library wraps down below the first taking up valuable screen real estate

Describe the solution you'd like
Have the rowList scroll right and left past the edge of the screen with the "1 of 6" above it on the right

Describe alternatives you've considered
I don't think there are alternatives?

Additional context
Doing this would be a good first step towards having other rows below the library list. "continue watching" "next up" etc. and give us a "template" of code to build those new rows with

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.