Coder Social home page Coder Social logo

jellycon's Introduction

Jellyfin

The Free Software Media System


Logo Banner

GPL 2.0 License Current Release Translation Status Azure Builds Docker Pull Count
Donate Submit Feature Requests Chat on Matrix Join our Subreddit Release RSS Feed Master Commits RSS Feed


Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!

For further details, please see our documentation page. To receive the latest updates, get help with Jellyfin, and join the community, please visit one of our communication channels. For more information about the project, please see our about page.

Want to get started?
Check out our downloads page or our installation guide, then see our quick start guide. You can also build from source.

Something not working right?
Open an Issue on GitHub.

Want to contribute?
Check out our contributing choose-your-own-adventure to see where you can help, then see our contributing guide and our community standards.

New idea or improvement?
Check out our feature request hub.

Don't see Jellyfin in your language?
Check out our Weblate instance to help translate Jellyfin and its subprojects.

Detailed Translation Status

Jellyfin Server

This repository contains the code for Jellyfin's backend server. Note that this is only one of many projects under the Jellyfin GitHub organization on GitHub. If you want to contribute, you can start by checking out our documentation to see what to work on.

Server Development

These instructions will help you get set up with a local development environment in order to contribute to this repository. Before you start, please be sure to completely read our guidelines on development contributions. Note that this project is supported on all major operating systems except FreeBSD, which is still incompatible.

Prerequisites

Before the project can be built, you must first install the .NET 8.0 SDK on your system.

Instructions to run this project from the command line are included here, but you will also need to install an IDE if you want to debug the server while it is running. Any IDE that supports .NET 6 development will work, but two options are recent versions of Visual Studio (at least 2022) and Visual Studio Code.

ffmpeg will also need to be installed.

Cloning the Repository

After dependencies are installed you will need to clone a local copy of this repository. If you just want to run the server from source you can clone this repository directly, but if you are intending to contribute code changes to the project, you should set up your own fork of the repository. The following example shows how you can clone the repository directly over HTTPS.

git clone https://github.com/jellyfin/jellyfin.git

Installing the Web Client

The server is configured to host the static files required for the web client in addition to serving the backend by default. Before you can run the server, you will need to get a copy of the web client since they are not included in this repository directly.

Note that it is also possible to host the web client separately from the web server with some additional configuration, in which case you can skip this step.

There are three options to get the files for the web client.

  1. Download one of the finished builds from the Azure DevOps pipeline. You can download the build for a specific release by looking at the branches tab of the pipelines page.
  2. Build them from source following the instructions on the jellyfin-web repository
  3. Get the pre-built files from an existing installation of the server. For example, with a Windows server installation the client files are located at C:\Program Files\Jellyfin\Server\jellyfin-web

Running The Server

The following instructions will help you get the project up and running via the command line, or your preferred IDE.

Running With Visual Studio

To run the project with Visual Studio you can open the Solution (.sln) file and then press F5 to run the server.

Running With Visual Studio Code

To run the project with Visual Studio Code you will first need to open the repository directory with Visual Studio Code using the Open Folder... option.

Second, you need to install the recommended extensions for the workspace. Note that extension recommendations are classified as either "Workspace Recommendations" or "Other Recommendations", but only the "Workspace Recommendations" are required.

After the required extensions are installed, you can run the server by pressing F5.

Running From The Command Line

To run the server from the command line you can use the dotnet run command. The example below shows how to do this if you have cloned the repository into a directory named jellyfin (the default directory name) and should work on all operating systems.

cd jellyfin                          # Move into the repository directory
dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # Run the server startup project

A second option is to build the project and then run the resulting executable file directly. When running the executable directly you can easily add command line options. Add the --help flag to list details on all the supported command line options.

  1. Build the project
dotnet build                       # Build the project
cd Jellyfin.Server/bin/Debug/net8.0 # Change into the build output directory
  1. Execute the build output. On Linux, Mac, etc. use ./jellyfin and on Windows use jellyfin.exe.

Accessing the Hosted Web Client

If the Server is configured to host the Web Client, and the Server is running, the Web Client can be accessed at http://localhost:8096 by default.

API documentation can be viewed at http://localhost:8096/api-docs/swagger/index.html

Running from GH-Codespaces

As Jellyfin will run on a container on a github hosted server, JF needs to handle some things differently.

NOTE: Depending on the selected configuration (if you just click 'create codespace' it will create a default configuration one) it might take 20-30 secounds to load all extensions and prepare the enviorment while vscode is already open. Just give it some time and wait until you see Downloading .NET version(s) 7.0.15~x64 ...... Done! in the output tab.

NOTE: If you want to access the JF instance from outside, like with a WebClient on another PC, remember to set the "ports" in the lower VsCode window to public.

NOTE: When first opening the server instance with any WebUI, you will be send to the login instead of the setup page. Refresh the login page once and you should be redirected to the Setup.

There are two configurations for you to chose from.

Default - Development Jellyfin Server

This creates a container that has everything to run and debug the Jellyfin Media server but does not setup anything else. Each time you create a new container you have to run though the whole setup again. There is also no ffmpeg, webclient or media preloaded. Use the .NET Launch (nowebclient) lunch config to start the server.

Keep in mind that as this has no web client you have to connect to it via an extenal client. This can be just another codespace container running the WebUI. vuejs does not work from the getgo as it does not support the setup steps.

Development Jellyfin Server ffmpeg

this extens the default server with an default installation of ffmpeg6 though the means described here: https://jellyfin.org/docs/general/installation/linux#repository-manual If you want to install a specific ffmpeg version, follow the comments embedded in the .devcontainer/Dev - Server Ffmpeg/install.ffmpeg.sh file.

Use the ghcs .NET Launch (nowebclient, ffmpeg) launch config to run with the jellyfin-ffmpeg enabled.

Running The Tests

This repository also includes unit tests that are used to validate functionality as part of a CI pipeline on Azure. There are several ways to run these tests.

  1. Run tests from the command line using dotnet test
  2. Run tests in Visual Studio using the Test Explorer
  3. Run individual tests in Visual Studio Code using the associated CodeLens annotation

Advanced Configuration

The following sections describe some more advanced scenarios for running the server from source that build upon the standard instructions above.

Hosting The Web Client Separately

It is not necessary to host the frontend web client as part of the backend server. Hosting these two components separately may be useful for frontend developers who would prefer to host the client in a separate webpack development server for a tighter development loop. See the jellyfin-web repo for instructions on how to do this.

To instruct the server not to host the web content, there is a nowebclient configuration flag that must be set. This can specified using the command line switch --nowebclient or the environment variable JELLYFIN_NOWEBCONTENT=true.

Since this is a common scenario, there is also a separate launch profile defined for Visual Studio called Jellyfin.Server (nowebcontent) that can be selected from the 'Start Debugging' dropdown in the main toolbar.

NOTE: The setup wizard can not be run if the web client is hosted separately.


This project is supported by:

DigitalOcean   JetBrains logo

jellycon's People

Contributors

aiosk avatar alfonso133 avatar anxdpanic avatar cierdek avatar danieladov avatar dependabot[bot] avatar djcand avatar djsweder avatar faush01 avatar hagaygo avatar jellyfin-bot avatar matthaiks avatar mcarlton00 avatar moritzleick avatar nextlooper42 avatar oddstr13 avatar olavinto avatar ozymandyaz avatar queeup avatar rainoutovo avatar rhld16 avatar rimasx avatar sethfalco avatar stanol avatar sualfred avatar truetechy avatar tschwery avatar wolonggl avatar wwwesten avatar xnappo 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

jellycon's Issues

Direct play possible?

I got a file playing using direct play while on edge but jellycon switches to direct stream on it. Is there anything I can do to force direct play?

Unsupported plugin protocol error

Describe the bug
When I play a video, it plays successfully, but there is an error message popping up every few seconds while playing. The only thing that has changed since I started getting this error is upgrading Jellyfin server to 10.6.

To Reproduce

  1. Play a video
  2. See error

Expected behavior
Video plays without an error popping up constantly.

Logs
2020-07-20 21:51:09.299 T:10420 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.jellycon/?item_id=05f2e694e4c52013d72e55d10668a73e&mode=PLAY
2020-07-20 21:51:09.299 T:10420 ERROR: InputStream: Error opening, plugin://plugin.video.jellycon/?item_id=05f2e694e4c52013d72e55d10668a73e&mode=PLAY
2020-07-20 21:51:09.300 T:4380 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.jellycon/?item_id=f9affc7c896d4026cdf171d302054447&mode=PLAY
2020-07-20 21:51:09.300 T:4380 ERROR: InputStream: Error opening, plugin://plugin.video.jellycon/?item_id=f9affc7c896d4026cdf171d302054447&mode=PLAY
2020-07-20 21:51:09.301 T:10420 WARNING: XFILE::CFileFactory::CreateLoader - unsupported protocol(plugin) in plugin://plugin.video.jellycon/?item_id=1530659d5482a6751b45559be9620b3c&mode=PLAY
2020-07-20 21:51:09.301 T:10420 ERROR: InputStream: Error opening, plugin://plugin.video.jellycon/?item_id=1530659d5482a6751b45559be9620b3c&mode=PLAY

Screenshots
screenshot

System (please complete the following information):

  • OS: Windows / Android TV
  • Jellyfin Version: 10.6
  • Kodi Version: 18.7
  • Addon Version: 0.1.1

Additional context

invalid username or password

Describe the bug
Using Kodi on an nvidia shield, following yesterday's upgrade to kodi 19 the plugin was broken like for many users.
I've reinstalled the app hoping that would fix it, but now trying to reconfigure the plugin I'm failing to log in, always getting "Invalid username or password".
It was working fine on kodi 18 yesterday.

I've seen other issues mentioning the hashing algorithm changed in jellyfin, but they were resolved as I understand it ?

I've also had to copy the repository.jellyfin.kodi.zip by usb from my desktop as the usual method of adding kodi.jellyfin.org as a source did not show that file for some reason.

To Reproduce
Reinstall the plugin from scratch on kodi 19 and try to log in

Expected behavior
Be able to login

System (please complete the following information):

  • OS: Android (nvidia shield pro)
  • Jellyfin Version: Docker Linuxserver/jellyfin:nightly
  • Kodi Version: 19
  • Addon Version: 0.7.0-py3

Additional context

Kodi 19/Python 3 Support

Need to translate the code to run properly on both Python 2 and 3. Will likely need both script.module.six (urllib and string processing) and script.module.kodi-six (kodi specific modules) for the translation layer.

Repository for JellyCon?

Is there a repository addon (in the making) for JellyCon, so updates can be done automatically?

E: Sorry for the bug label, my bad.

Clone Default Skin not working

Describe the bug
Using the Clone Default Skin option fails.

To Reproduce

  1. Go to Add-on Actions
  2. Select Clone Default Skin
  3. See error asking you to check Kodi log

Expected behavior
Default Estuary Skin should be cloned with added Jellyfin functionality.

Logs
https://pastebin.com/Yu70Nw9E

System (please complete the following information):

  • OS: Windows
  • Jellyfin Version: 10.6.4
  • Kodi Version: 18.9
  • Addon Version: 0.3

"Play from beginning" resumes from previous position

Describe the bug
When choosing "Play from beginning" from the context menu, instead of doing so, the video still resumes from the last position. In comparision, this function works as expected for SMB shares.

System (please complete the following information):

  • OS: Raspberry Pi
  • Jellyfin Version: latest via linuxserver.io
  • Kodi Version: 18.8 (LibreELEC 9.2.4)
  • Addon Version: 0.2.0

Cannot connect to my jellyfin server "Invalid username or password entered"

Describe the bug

Cannot connect to my jellyfin server. Always says "Invalid username or password entered"
It worked great before, but I had to fully reset my AndroidTV Box and reinstall Kodi and Jellycon. Then, now, it's not working anymore.
I just tried with Jellycon 0.2 and I can connect. So It is just with Jellycon 0.3 that it's not working.

To Reproduce

  1. Install a new Kodi
  2. Install Jellycon on Kodi
  3. Enter the new server
  4. Mannualy connect (Enter username then password)
  5. See Error

Expected behavior

Connect to my jellyfin server.

Logs

[ERR] [82] Jellyfin.Server.Implementations.Users.UserManager: Error authenticating with provider "Default"
MediaBrowser.Controller.Authentication.AuthenticationException: Invalid username or password
at Jellyfin.Server.Implementations.Users.DefaultAuthenticationProvider.Authenticate(String username, String password, User resolvedUser)
at Jellyfin.Server.Implementations.Users.UserManager.AuthenticateWithProvider(IAuthenticationProvider provider, String username, String password, User resolvedUser)
[INF] [82] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "xxxx" has been denied (IP: "xxxx.xxxx.xxxx.xxxx").
[ERR] [82] Emby.Server.Implementations.HttpServer.HttpListenerHost: Error processing request: "Invalid username or password entered". URL: "http://xxxx.xxxx.xxxx.xxxx:xxxx/Users/AuthenticateByName?format=json"

Screenshots

System (please complete the following information):

  • OS: Android TV
  • Jellyfin Version: Version : 10.6.4
  • Kodi Version: 18.9 (tried in 18.5 too)
  • Addon Version: 0.3

Additional context

Thank very much for bringing us this amazing project.

External Subtitle not working since Jellyfin 10.7.2

Describe the bug
External Subtitle not since Jellyfin 10.7.2

To Reproduce
Have an external subtitle, and play a video. You can select the subtitle, but it will not show up in the video.
It worked great before 10.7.2 Jellyfin.
And it worked with Jellycon 0.4.2 and 0.4.3.

System (please complete the following information):

  • OS: Android TV
  • Jellyfin Version: 10.7.2
  • Kodi Version: 18.9

Additional context
In the new Jellyfin release, they modify the subtitle section : #5624 [@crobibero] Allow subtitle format to be set from query parameter.
https://github.com/jellyfin/jellyfin/releases/tag/v10.7.2
Maybe more information here : Aanok/jftui#22

Kodi Matrix - Jellycon Error when opening "Next Episodes

Describe the bug
With a fresh install of Kodi Matrix and JellyCon from the Jel;lyfin repository, most views do not work.

All Shows under a library are fine. but any of the Recent, Next, In Progress, etc generate an error.

To Reproduce

Go to JellyCon Addon
Select a Library or Global Library
Select "Next Up"

Expected behaviour
Return of net up episodes

Logs

2021-04-15 15:47:02.671 T:3269 INFO : Python interpreter stopped
2021-04-15 15:47:05.590 T:3272 INFO : initializing python engine.
2021-04-15 15:47:05.782 T:3272 WARNING : xbmc.translatePath is deprecated and might be removed in future kodi versions. Please use xbmcvfs.translatePath instead.
2021-04-15 15:47:06.777 T:3272 ERROR : Skipped 5 duplicate messages..
2021-04-15 15:47:06.777 T:3272 ERROR : EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <class 'NameError'>
Error Contents: name 'unicode' is not defined
Traceback (most recent call last):
File "/home/mark/.kodi/addons/plugin.video.jellycon/default.py", line 18, in
main_entry_point()
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/tracking.py", line 23, in wrapper
value = func(*args, **kwargs)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/functions.py", line 157, in main_entry_point
get_content(param_url, params)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/tracking.py", line 23, in wrapper
value = func(*args, **kwargs)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/dir_functions.py", line 118, in get_content
dir_items, detected_type, total_records = process_directory(url, progress, params, use_cache)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/tracking.py", line 23, in wrapper
value = func(*args, **kwargs)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/dir_functions.py", line 251, in process_directory
cache_file, item_list, total_records, cache_thread = data_manager.get_items(url, gui_options, use_cache)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/tracking.py", line 23, in wrapper
value = func(*args, **kwargs)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/datamanager.py", line 123, in get_items
item_data = extract_item_info(item, gui_options)
File "/home/mark/.kodi/addons/plugin.video.jellycon/resources/lib/item_functions.py", line 181, in extract_item_info
item_details.name = unicode(name_format).format(**name_info).strip()
NameError: name 'unicode' is not defined
-->End of Python script error report<--

2021-04-15 15:47:06.938 T:3272 INFO : Python interpreter stopped
2021-04-15 15:47:06.945 T:3271 ERROR : GetDirectory - Error getting plugin://plugin.video.jellycon/?media_type=Episodes&mode=GET_CONTENT&name_format=Episode%7cepisode_name_format&sort=none&url=%7bserver%7d%2fUsers%2f%7buserid%7d%2fItems%3fParentId%3d117c458a200a6c44e841b872eba96cad%26Fields%3d%7bfield_filters%7d%26ImageTypeLimit%3d1%26IsMissing%3dFalse%26IncludeItemTypes%3dEpisode%26Recursive%3dTrue%26format%3djson%26Limit%3d%7bItemLimit%7d%26SortBy%3dDateCreated%26SortOrder%3dDescending%26Filters%3dIsNotFolder
2021-04-15 15:47:06.964 T:2913 ERROR : CGUIMediaWindow::GetDirectory(plugin://plugin.video.jellycon/?media_type=Episodes&mode=GET_CONTENT&name_format=Episode%7cepisode_name_format&sort=none&url=%7bserver%7d%2fUsers%2f%7buserid%7d%2fItems%3fParentId%3d117c458a200a6c44e841b872eba96cad%26Fields%3d%7bfield_filters%7d%26ImageTypeLimit%3d1%26IsMissing%3dFalse%26IncludeItemTypes%3dEpisode%26Recursive%3dTrue%26format%3djson%26Limit%3d%7bItemLimit%7d%26SortBy%3dDateCreated%26SortOrder%3dDescending%26Filters%3dIsNotFolder) failed
2021-04-15 15:47:09.564 T:2913 INFO : GL: Maximum texture width: 16384
2021-04-15 15:47:09.938 T:2913 INFO : GL: Enabling VSYNC

Screenshots

System (please complete the following information):

  • OS: Arch Linux, Windows 10
  • Jellyfin Version: 10.7.2
  • Kodi Version: 19.0
  • Addon Version: 0.4.2+py3

Additional context
Playback is fine if you go to all shows in a library and drill down, just filtered lists have an issue.

Showing all movies is very slow

Describe the bug
When accessing All Movies via JellyCon, it can take up to half a minute until the content is displayed on screen. I assume that it is simply fetching all movies via api, and performance may differ depending on library size (mine is roughly 2000 movies). It also loads the same amount of time when returning to this screen after playback stops. The power of the device running Kodi is a factor but my main 12c workstation also takes about 10-15s to load, and on lower-end ATV devices the load time is pretty painful.

To Reproduce

  1. Connect to a server with a sizeable movie library
  2. Display All Movies
  3. Wait...

Expected behavior
Some kind of lazy load so the user won't have to wait for all movies to be fetched. Not sure if this is possible within the Kodi framework, but anyway.

Logs
Using Kodi on android so not entirely sure how to get them. Let me know if they are necessary and I'll see what I can do

System (please complete the following information):

  • OS: Android TV
  • Jellyfin Version: 10.7.6
  • Kodi Version: 19.1
  • Addon Version: 0.4.4

Embuary Configs

It looks as though the Embuary skin is hardcoded to look for "Embycon" when it's gathering data for the home screen menu and widgets. We'll need to add some docs for populating the home screen from Jellycon so we can replicate the same behavior.

From a comment on reddit we can use as a base:

To add libraries across the top under "My media"

  1. Settings
  2. Home and hubs
  3. Edit Menu Configuration
  4. Select the + symbol on an existing entry
  5. Move to your new entry and select the edit symbol (box and pencil)
  6. Add-On -> Video Add-On -> JellyCon -> Global Lists -> Movies -> Movies - Show All -> Create menu item to here
  7. Repeat for any libraries you want linked on top.

To add widgets:

  1. Settings
  2. Custom widgets
  3. Edit path of an entry
  4. Add-On -> Video Add-On -> JellyCon -> Global Lists -> Movies -> Movies - Recently Added (20) -> Use as widget
  5. Go to "Home and hubs"
  6. Edit Widget Configuration
  7. Select the Edit icon of an entry
  8. Select your custom node from the bottom of the list

Continue Watching Widget

Currently in JellyCon you can choose either Movies - In Progress or Episodes - In Progress, however on the the webpage of Jellyfin the Continue Watching is a combined list of Movies & Episodes (sorted by last played), the same when using the EmbyCon add-on to Kodi with the Embruary skin.

Would it be possible to have a list that contain both...?

Playback not possible from "Show information" context menu

Describe the bug
When starting playback from the "Show information" context menu, the playback fails/stops after about a second. I would guess this is related to #66. If I leave the default to "Play", playback works normally.

To Reproduce

  1. Set default action to "Show information"
  2. Set up a widget for JellyCon in a skin (using Arctic Zephyr Reloaded personally)
  3. Click on item, see information and press play
  4. Item starts playback but stops in about a second

Expected behavior
Playback continues.

Logs
I'm running Kodi on androidtv so I don't have the ability to gather logs currently. Should be easy enough to reproduce though. If you need them just let me know and I'll see what I can do.

System (please complete the following information):

  • OS: Android tv
  • Jellyfin Version: 10.7.6
  • Kodi Version: 19.1
  • Addon Version: 0.4.4

Some Jellyfin Libraries Fail to Open

Describe the bug
Trying to access some of the pre-defined Jellyfin Library sections causes an error and will not load. These Sections include the following:
Genres, pages, A-Z, Years, Decades, and Tags

To Reproduce

  1. Open Jellycon and go to Jellyfin Libraries
  2. Select a Library
  3. Select one of the aforementioned library sections listed above and notice the Jellycon error notification

Expected behavior
Library section should open to the correct page

Logs
https://pastebin.com/gHYELKuF

System (please complete the following information):

  • OS: Windows
  • Jellyfin Version: 10.6
  • Kodi Version: 19.0
  • Addon Version: 0.4.0

Play doesnt work

If I wanna play a movie on my Khadas Vim1 (Coreelec) and I press the play button it doesnt do anything. It just gives me a confirmation sound and nothing else.

Support for fMP4

Add support for fMP4 hevc transcoding, if possible. Since the release of 10.7.0 made it possible to stream over fMP4.

Jellycon exits playback mode when video is paused

Describe the bug

If you pause playback, Jellycon takes you out of the video and back to the list you selected it from.

To Reproduce

  1. Go to TV shows "Next Up"
  2. Play anything in the list.
  3. Pause the video.
  4. Wait 1-2 minutes.
  5. Jellycon goes back to "Next Up," and you have to navigate up, then to In Progress, to resume.

Expected behavior
The video should remain displayed and paused until I unpause it.

System (please complete the following information):

  • OS: LibreELEC 9.2.8
  • Jellyfin Version: 10.7.6
  • Kodi Version: 18.9
  • Addon Version: 0.4.4+py2

Error message while playing video in the background

Describe the bug

Trying to play any video from the Jellyfin library works but an error message is displayed in front of the player saying "one or more elements failed to play"

To Reproduce

  1. Go to the addon and play any video from the Jellyfin library.
  2. An error message shows with the video in the background

Expected behavior

It should play the file without error messages

Logs

Attached below
Log.txt

Screenshots

System (please complete the following information):

  • OS: Android 9
  • Jellyfin Version: 10.8.0
  • Kodi Version: 19.1
  • Addon Version: Last stable

Additional context

JellyCon login error on 10.7.0-RC1

Describe the bug
Doesn't seem compatible with 10.7.0-RC1
To Reproduce
Click Change server, enter server details. Click Change User. Provide correct username and password. Presented with Not able to connect: Incorrect Username/Password

Expected behavior
Login

Logs

Screenshots

System (please complete the following information):

  • OS: [e.g. Android, Debian, Windows]
  • Jellyfin Version: [e.g. 10.0.1]
  • Kodi Version: [e.g. 18.3]
  • Addon Version: [e.g. 0.1.1]

Additional context

Continue playback over/undershoots by up to 30 minutes

Describe the bug

Using the lates Jellycon on Kodi 18, the playback starts well beyond what I saw last, sometimes even 20-30 minutes further. Sometimes it doesn't save the play position at all. AFAIK this behavior has started somewhere in the last few weeks.

To Reproduce

  1. Start playback and stop it manually (I just pressed [x])
  2. You may or may not close Kodi
  3. Restart playback and it's Russian roulette as to whether your playback resumes at the proper timestamp

Expected behavior

Obviously the last playback position should be propagated to the server nicely.

System (please complete the following information):

  • OS: Windows
  • Jellyfin Version: version-10.7.2-1 (LinuxServer.io docker image)
  • Kodi Version: 18.9.0
  • Addon Version: 0.4.3+py2

Every Imported Subtitles name are "Unknown - (External)"

Describe the bug
Every Imported Subtitles name are "Unknown - (External)"

To Reproduce
I play video with "direct play". No transcoding.
When I want to change subtitle imported fom jellyfin server, all of the subtitles name are "Uknown - (External)" which make it difficult to choose the right subtitle langage.

Expected behavior
I have 2 subtitles for every video I have.
So i should have :

  • French - (External) (1/2)
  • English - (External) (2/2)

Instead of :

  • Unknown - (External) (1/2)
  • Uknown - (External) (2/2)

System (please complete the following information):

  • OS: Android TV (Client)
  • Jellyfin Version: 10.6.4
  • Kodi Version: 18.9
  • Addon Version: 0.2.0

Additional context
Side effect :
Because of the name is "Unkown", Kodi cannot set up correctly the "default" subtitle it have to load automatically at the beginning of the video.

Thank very much for bringing us this amazing project.

Video stop after 1 sec when using Clone Default Skin

Describe the bug
After using the fonctionnality "Clone default skin", when I want to play a video, it starts for a second and then the video stops.

To Reproduce

  1. Go to 'Jellycon' and 'Add on actions' and 'Clone default skin' then use this skin.
  2. Click on a video you want to play through Jellycon
  3. The video will start then stop after 1 second

Expected behavior
It should play the video without problem.

System (please complete the following information):

  • OS: Android TV
  • Jellyfin Version: 10.7.0
  • Kodi Version: 18.9
  • Addon Version: 0.4.2

Additional context
Even when I go back to the old skin, the videos no longer work. I have to uninstall and reinstall Kodi completely.

Jellycon v0.4.0py2+ breaks "Next Episode" order

In 0.3.1, when playing an episode progress is reported to Jellyfin and upon stopping an episode (either as completed or in progress) the series is marked as the most recently watched, and either the in progress episode or the next episode is displayed in Jellyfin as the next episode.

With 0.4+ this is now acting differently and only the progress in the episode is captured. That is to say, the episode is seen by the Jellyfin server as either watched, or in progress, but its as if the time when it was watched is not tracked. So if the episode is the third in line on "Next Episode" upon playing it and stopping while in progress, it doesn't move to the front of the queue. Progress is marked, but it doesn't move ahead as the most recently watched series.

With 0.3.1, the episode moves to the front of the queue. In fact, it moves as soon as playback is started.

As far as I can tell it seems as though 0.4 is not reporting the playback stopping to Jellyfin, but that's only anecdotal looking at logs where I see these for 0.3.1:

Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Kodi JellyCon" "0.3.1" playing "Episode 9". Stopped at "2014146" ms

But not for 0.4

Forcing 0.3.1 has no ill effects

Login's window appears every some minutes in Kodi.

Hello, I have a Raspberry Pi4 with LibreElec (Kodi 18.9) working on.
Some days ago I installed Jellycon addon and after I successfully logged in some server and after watching some stuff this windows appears every some minutes when an I am in any Kodi menu (it never appears when I am playing any media) and then it automatically dissapears some second after (about ten seconds):

Login-Recurrente-Jellycon

Would be possible to avoid this annoying behaviour please?

Thanks in advance and sorry for my bad English, I am trying to improve it everyday.

Album track sorting incorrect

When I view an album, the song order is all out of whack. Sort is set to track number but it clearly isn't following that. The first screenshot shows how it is in the jellyfin web UI (what I want) bottom is the order in kodi.
jellycon2
jellycon1

Resume or play from beginning not working unless willing to be asked twice

This is what is happening (I am using the latest jellycon version available with the latest stable Jellyfin server available and Kodi 18.9 - I am using direct play):

With context menu option ON in jellycon configuration:

  (Only) when I click play (enter) on a half-watched item, I get the special context menu in a kind of greyish box (style not matching the skin) with many options (transcode, mark as, delete, etc.) but none of them is to resume from were I left it. If I click on an item that has not been watched at all, it just plays.

With context menu OFF:

  If I configure auto resume OFF, when I click play (enter) on a half-watched item, then I get 2 popups:
      First a popup from Kodi (matching the style of the skin) with both options, play from beginning or resume from ...
      Then another from the addon (again, greyish box style, nothing like the Kodi's skin) with exactly same options
      (BUT: the response that matters is what you select on the second popup - what I select on the first one is ignored).

 And, if I configure auto resume ON, then, when I click play (enter) on a half-watched item, I only get the Kodi popup, but it does not matter what I select, it always resumes.

IMPORTANT: Every time I change the configuration of the jellycon regarding context menus and/or auto-resume, it seems that you need to close Kodi and open it again, or it does weird things. Restarting Kodi, however, produces consistent results as described above.

ALSO: My current Kodi settings for System/Settings > Videos > File list > Default action > is PLAY

Thank you in advance for looking at this. Please let me know if I can be of assistance.

PS. I was using Plex / PlexKodiConnect until recently. I am giving Jellyfin a try. I started with Jellyfin for Kodi but had issues with changes on the media library not showing on Kodi. Jellycon avoids, logically, any synching issues. It is slightly slower but we are talking 2-3 longer seconds to load the views.

HTTP 400 running speed test

Trying to run the Speed Test as prompted on startup gave a 400 error. I assume our API is different in some way than the emby one so the server doesn't like what we're sending it

image

Websocket errors come up every few seconds

2020-09-25 10:04:23.263 T:4536 NOTICE: JELLYFIN.resources.lib.websocket_client -> DEBUG::resources\lib\websocket_client.py:265 Starting WebSocketClient
2020-09-25 10:04:23.328 T:4536 NOTICE: JELLYFIN.resources.lib.websocket_client -> DEBUG::resources\lib\websocket_client.py:237 Error: Handshake Status 404
2020-09-25 10:04:23.328 T:4536 NOTICE: JELLYFIN.resources.lib.websocket_client -> DEBUG::resources\lib\websocket_client.py:230 Closed

How can I integrate Jellycon into another skin than the base Estuary ? (or make it more configurable)

Hi,
I was using the Jellyfin for Kodi addon for a long time. It had the advantage of adding everything to the Kodi library, making it usable with any skin easily and the library was shared to Android remotes. But the issue is the refresh that sometime causes problems, takes time, etc....

Jellycon however, doesn't have to sync and that's a huge improvement. But the downside is the integration to the main menu. It works great in the addon itself, but having everything on the front page is better. I found the setting to clone the base Estuary and add Jellycon function to it, but I don't like this skin. I don't like the left panel that hides itself for example, nor the player.

Is there a way to add Jellycon functions to another skin ?

I tried adding Jellycon shortcuts to Estuary Mod, my favorite skin that allows full configuration of the main menu. But it was very unstable.
Finding a way to add Jellycon to the main menu would finally meet the advantages of jellyfin for kodi and Jellycon. Because so far I am always making compomises between both.
Thanks in advance for any answer

Live-TV not possible

Hello,

movies are playing fine.

Live-TV does not start the stream in kodi.

Jellyfin is configured to connect to xteve as hdhomerun tuner. xteve then connects to tvheadend. (I also tried with m3u as tuner, which has the some result)

When I start a stream in kodi, I get the following in kodi.log

2020-09-30 14:47:32.232 T:12896   ERROR: CCurlFile::Stat - Failed: HTTP response code said error(22) for https://serveraddress:8099/jellyfin/Videos/native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa/master.m3u8?AudioBitrate=256000&VideoCodec=h264&PlaySessionId=d3e44f619ae8474891d015ff621fe63f&MediaSourceId=native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa&TranscodingMaxAudioChannels=8&AudioCodec=ac3&MaxWidth=1920&VideoBitrate=700000&DeviceId=DBCA8A9B6E4C4C70928B5AE59A5D1F9B&api_key=ca814bda68284adc98ab2d6b5b02c5a0&SegmentContainer=ts
2020-09-30 14:47:32.245 T:12896  NOTICE: VideoPlayer::OpenFile: https://serveraddress:8099/jellyfin/Videos/native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa/master.m3u8?AudioBitrate=256000&VideoCodec=h264&PlaySessionId=d3e44f619ae8474891d015ff621fe63f&MediaSourceId=native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa&TranscodingMaxAudioChannels=8&AudioCodec=ac3&MaxWidth=1920&VideoBitrate=700000&DeviceId=DBCA8A9B6E4C4C70928B5AE59A5D1F9B&api_key=ca814bda68284adc98ab2d6b5b02c5a0&SegmentContainer=ts
2020-09-30 14:47:32.246 T:13504  NOTICE: Creating InputStream
2020-09-30 14:47:32.247 T:13504  NOTICE: Creating Demuxer
2020-09-30 14:47:32.247 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:549 Not an episode, can not get next
2020-09-30 14:47:32.247 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:594 No next episode
2020-09-30 14:47:32.249 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:1205 PlaybackService:onNotification:xbmc:Playlist.OnClear:{"playlistid":1}
2020-09-30 14:47:32.249 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:1205 PlaybackService:onNotification:xbmc:Playlist.OnAdd:{"item":{"title":"Das Erste HD","type":"video"},"playlistid":1,"position":0}
2020-09-30 14:47:32.250 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:1100 get_playing_data : getPlayingFile() : https://{jellyfin-server}/jellyfin/Videos/native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa/master.m3u8?AudioBitrate=256000&VideoCodec=h264&PlaySessionId=d3e44f619ae8474891d015ff621fe63f&MediaSourceId=native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa&TranscodingMaxAudioChannels=8&AudioCodec=ac3&MaxWidth=1920&VideoBitrate=700000&DeviceId=DBCA8A9B6E4C4C70928B5AE59A5D1F9B&api_key=ca814bda68284adc98ab2d6b5b02c5a0&SegmentContainer=ts
2020-09-30 14:47:32.251 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:897 Sending Progress Update
2020-09-30 14:47:32.253 T:8484  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources\lib\play_utils.py:940 Sending POST progress started: {'ItemId': u'6fcebd74dbb40208b6cf730bad3d1021', 'PlaySessionId': u'd3e44f619ae8474891d015ff621fe63f', 'QueueableMediaTypes': 'Video', 'PlaylistLength': 1, 'MediaSourceId': u'native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa', 'IsMuted': False, 'PositionTicks': 0, 'IsPaused': False, 'CanSeek': True, 'VolumeLevel': 97, 'PlayMethod': 'Transcode', 'PlaylistIndex': 0, 'RunTimeTicks': 0}
2020-09-30 14:47:32.253 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:642 downloadUrl
2020-09-30 14:47:32.259 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:657 Before: {server}/Sessions/Playing/Progress
2020-09-30 14:47:32.268 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:686 After: https://{jellyfin-server}/jellyfin/Sessions/Playing/Progress
2020-09-30 14:47:32.273 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:489 JellyCon DownloadUtils -> Returning saved UserID: 1c4341511e0245578ee0d471b7da519b
2020-09-30 14:47:32.273 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:561 JellyCon DownloadUtils -> Returning saved AccessToken: ca814bda68284adc98ab2d6b5b02c5a0
2020-09-30 14:47:32.274 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:637 JellyCon Authentication Header: {u'Accept-Charset': u'UTF-8,*', u'X-Emby-Authorization': u'MediaBrowser UserId="1c4341511e0245578ee0d471b7da519b",Client="Kodi JellyCon",Device="JellyCon",DeviceId="DBCA8A9B6E4C4C70928B5AE59A5D1F9B",Version="0.2.0"', u'Accept-encoding': u'gzip', u'X-MediaBrowser-Token': 'ca814bda68284adc98ab2d6b5b02c5a0'}
2020-09-30 14:47:32.274 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:713 Content-Type: application/json
2020-09-30 14:47:32.275 T:8484  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources\lib\downloadutils.py:714 POST DATA: {"ItemId": "6fcebd74dbb40208b6cf730bad3d1021", "PlaySessionId": "d3e44f619ae8474891d015ff621fe63f", "QueueableMediaTypes": "Video", "PlaylistLength": 1, "MediaSourceId": "native_193f557c4e1c72bb0baf4acff600e7c2_475987cca38ce8ecd25f1c4a3b3ecbfa", "IsMuted": false, "PositionTicks": 0, "IsPaused": false, "CanSeek": true, "VolumeLevel": 97, "PlayMethod": "Transcode", "PlaylistIndex": 0, "RunTimeTicks": 0}
2020-09-30 14:47:32.280 T:13504   ERROR: CVideoPlayer::OpenDemuxStream - Error creating demuxer
2020-09-30 14:47:32.280 T:13504  NOTICE: CVideoPlayer::OnExit()
2020-09-30 14:47:32.372 T:12896  NOTICE: CVideoPlayer::CloseFile()

Attached I added jellyfin.log and kodi.log

In the status in tvheadend I see the connection, so jellyfin send it succesfully to tvheadend.
But allthow the stream does not start in kodi, the jellyfin server does not disconnect from tvheadend. I have to drop the connection manually in tvheadend.

Why can the addon not create the demuxer for live-tv?

Thx
Kai
jelly-kodi.log

Jellyfin repository

Hello, why didn't you open this new branch in the Jellyfin directory? Since everything is open source and available, it would only be easier and more visible to the whole community.

Rename device in metadata sent to server

Describe the bug

In the event that you have multiple JellyCon instances, you can't tell which device is which from the casting menu in the server.

Screenshots

2021-08-29-095713_224x411_scrot

Combine "In progress" and "Next up" as "Continue"

I tend to create a favorite of "Next up", but at times Jellyfin doesn't see an episode as finished if the credits are a significant portion of it. As such, the (next episode of) the series won't show up at all in "Next up", because it's "stuck" under "In progress".

I think it would be a great solution to combine "In progress" and "Next up" into "Continue (watching)", instead of providing them separately. This would also remove the need to check "In progress" first, then "Next up", if you can't remember if you stopped half-way through an episode last time.

Jellycon should stay the hell away from my other sources

I'm curious why Jellycon is processing files it's got nothing to do with. When I start a file from a SMB share, it processes the title, over and over and over again, seemingly trying to download info about it from the Jellyfin server I'm connected to. It should stay the hell away from those files, as they got nothing to do with Jellyfin. It looks like this is causing info about everything I play privately to be leaked to every Jellyfin server I'm connected to.

Apart from the privacy aspect, it seems like the amount of retries may well cause big delays/CPU hogs on lighter hardware/slower connections.

Logs

2020-08-18 12:07:03.702 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Playlist.OnClear:{"playlistid":1}
2020-08-18 12:07:03.706 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Playlist.OnAdd:{"item":{"title":"Some.Movie>
2020-08-18 12:07:03.728 T:1937204272  NOTICE: VideoPlayer::OpenFile: smb://some/shared/folder/file.mkv
2020-08-18 12:07:03.733 T:1493160832  NOTICE: Creating InputStream
2020-08-18 12:07:03.940 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1050 stop_all_playback : {u'https://{jellyfin-server}/Videos/22cad37163fa4f6146665c5d00087d3b/stream?static=true&PlayS>
2020-08-18 12:07:03.941 T:1493160832  NOTICE: Creating Demuxer
2020-08-18 12:07:03.949 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1055 played_information: {u'https://{jellyfin-server}/Videos/22cad37163fa4f6146665c5d00087d3b/stream?static=true&PlayS>
2020-08-18 12:07:03.954 T:1693225856  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources/lib/downloadutils.py:642 downloadUrl
2020-08-18 12:07:03.998 T:1693225856  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources/lib/downloadutils.py:657 Before: {server}/Videos/ActiveEncodings?DeviceId=9692A3B07D06478D8A43E5A0D6B97134
2020-08-18 12:07:04.036 T:1693225856  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources/lib/downloadutils.py:686 After: https://{jellyfin-server}/Videos/ActiveEncodings?DeviceId=9692A3B07D06478D8A43E5A0D6B97134
2020-08-18 12:07:04.076 T:1693225856  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources/lib/downloadutils.py:489 JellyCon DownloadUtils -> Returning saved UserID: xxx
2020-08-18 12:07:04.080 T:1693225856  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources/lib/downloadutils.py:561 JellyCon DownloadUtils -> Returning saved AccessToken: xxx
2020-08-18 12:07:04.084 T:1693225856  NOTICE: JELLYFIN.resources.lib.downloadutils -> DEBUG::resources/lib/downloadutils.py:637 JellyCon Authentication Header: {u'Acceptharset': u'UTF-8,*', u'X-Emby-Authorization': u'MediaBrowser User>
2020-08-18 12:07:04.208 T:1493160832  NOTICE: Opening stream: 0 source: 256
2020-08-18 12:07:04.210 T:1493160832  NOTICE: Creating video codec with codec id: 27
2020-08-18 12:07:04.238 T:1493160832  NOTICE: Creating video thread
2020-08-18 12:07:04.238 T:1302729600  NOTICE: running thread: video_thread
2020-08-18 12:07:04.242 T:1493160832  NOTICE: Opening stream: 1 source: 256
2020-08-18 12:07:04.243 T:1493160832  NOTICE: Finding audio codec for: 86056
2020-08-18 12:07:04.247 T:1493160832  NOTICE: CDVDAudioCodecFFmpeg::Open() Successful opened audio decoder eac3
2020-08-18 12:07:04.247 T:1493160832  NOTICE: Creating audio thread
2020-08-18 12:07:04.247 T:1311748992  NOTICE: running thread: CVideoPlayerAudio::Process()
2020-08-18 12:07:04.250 T:1493160832  NOTICE: Opening stream: 2 source: 256
2020-08-18 12:07:04.261 T:1311748992  NOTICE: Creating audio stream (codec id: 86056, channels: 6, sample rate: 48000, no pass-through)
2020-08-18 12:07:04.696 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:04.699 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:04.701 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found
2020-08-18 12:07:04.704 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Info.OnChanged:null
2020-08-18 12:07:04.706 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Player.OnPlay:{"item":{"title":"Some.Movie>
2020-08-18 12:07:04.709 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Player.OnAVChange:{"item":{"title":"Some.Movie>
2020-08-18 12:07:04.716 T:1693225856  NOTICE: Previous line repeats 2 times.
2020-08-18 12:07:04.716 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Player.OnAVStart:{"item":{"title":"Some.Movie>
2020-08-18 12:07:04.719 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1205 PlaybackService:onNotification:xbmc:Player.OnAVChange:{"item":{"title":"Some.Movie>
2020-08-18 12:07:04.732 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:04.734 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:04.738 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found
2020-08-18 12:07:14.744 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:14.747 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:14.749 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found
2020-08-18 12:07:24.753 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:24.757 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:24.761 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found
2020-08-18 12:07:34.766 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:34.768 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:34.770 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found
2020-08-18 12:07:44.773 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:44.775 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:44.777 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found
2020-08-18 12:07:54.782 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1100 get_playing_data : getPlayingFile() : smb://some/shared/folder>
2020-08-18 12:07:54.786 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1103 get_playing_data : Filenameandpath : smb://some/shared/folder>
2020-08-18 12:07:54.789 T:1693225856  NOTICE: JELLYFIN.resources.lib.play_utils -> DEBUG::resources/lib/play_utils.py:1105 get_playing_data : play data not found

Expected behavior
Only files within the Jellycon paths should be processed by the plugin.

System (please complete the following information):

  • OS: Raspberry Pi
  • Jellyfin Version: latest from linuxserver.io
  • Kodi Version: Kodi 18.8 (LibreELEC 9.2.4)
  • Addon Version: 0.2.0

Error could not concatenate Nonetype to str

Describe the bug
Hello noob here. Sorry if this is a duplicate. I'm trying to play a specific video but I keep getting a jellycon error popup. When I go to the logs it says Could not concatenate Nonetype to str. I can't find another video that does this. Just this particular one.

To Reproduce

  1. Go to TV Shows
  2. Click on video
  3. See error

Expected behavior

Plays video.

Logs
2021-10-09 12:26:24.277 T:5014 INFO : CActiveAESink::OpenSink - initialize sink
2021-10-09 12:26:24.277 T:9657 INFO : initializing python engine.
2021-10-09 12:26:24.281 T:5014 INFO : PulseAudio: Opened device Default in pcm mode with Buffersize 150 ms Periodsize 50 ms
2021-10-09 12:26:24.410 T:9657 WARNING : xbmc.translatePath is deprecated and might be removed in future kodi versions. Please use xbmcvfs.translatePath instead.
2021-10-09 12:26:24.688 T:9657 INFO : Skipped 5 duplicate messages..
2021-10-09 12:26:24.688 T:9657 INFO : JELLYFIN.resources.lib.functions -> INFO::resources/lib/functions.py:969 Sending jellycon_play_action : {'action': 'play', 'item_id': '495d86fa65ffa6c979518f5760932ce7', 'auto_resume': '-1', 'force_transcode': False, 'media_source_id': '', 'subtitle_stream_index': None, 'audio_stream_index': None}
2021-10-09 12:26:24.945 T:9657 INFO : JELLYFIN.resources.lib.play_utils -> INFO::resources/lib/play_utils.py:376 Play URL: {jellyfin-server}/Videos/495d86fa65ffa6c979518f5760932ce7/stream?static=true&PlaySessionId=922a2d9b0dcb4e30acb6a7426172a3b2&MediaSourceId=495d86fa65ffa6c979518f5760932ce7 Playback Type: 1 ListItem Properties: []
2021-10-09 12:26:24.946 T:9657 ERROR : EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <class 'TypeError'>
Error Contents: can only concatenate str (not "NoneType") to str
Traceback (most recent call last):
File "/home/kevin/.kodi/addons/plugin.video.jellycon/default.py", line 18, in
main_entry_point()
File "/home/kevin/.kodi/addons/plugin.video.jellycon/resources/lib/tracking.py", line 23, in wrapper
value = func(*args, **kwargs)
File "/home/kevin/.kodi/addons/plugin.video.jellycon/resources/lib/functions.py", line 159, in main_entry_point
play_action(params)
File "/home/kevin/.kodi/addons/plugin.video.jellycon/resources/lib/functions.py", line 970, in play_action
play_file(play_info)
File "/home/kevin/.kodi/addons/plugin.video.jellycon/resources/lib/tracking.py", line 23, in wrapper
value = func(*args, **kwargs)
File "/home/kevin/.kodi/addons/plugin.video.jellycon/resources/lib/play_utils.py", line 433, in play_file
next_episode = get_next_episode(result)
File "/home/kevin/.kodi/addons/plugin.video.jellycon/resources/lib/play_utils.py", line 545, in get_next_episode
url = ('{server}/Users/{userid}/Items?' +
TypeError: can only concatenate str (not "NoneType") to str
-->End of Python script error report<--

2021-10-09 12:26:25.026 T:9657 INFO : Python interpreter stopped

System (please complete the following information):

  • OS: Linux Mint
  • Jellyfin Version: 10.7.7
  • Kodi Version: 19.2
  • Addon Version: latest build from master branch

JellyCon suddenly unable to connect

Not sure if this is a known issue (google got me nothing), but suddenly when I try to connect to Jellyfin 10.6.3, JellyCon throws me this error:

2020-08-23 09:28:21.284 T:2189402992   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.UnicodeDecodeError'>
                                            Error Contents: 'ascii' codec can't decode byte 0xe2 in position 3878: ordinal not in range(128)
                                            Traceback (most recent call last):
                                              File "/storage/.kodi/addons/plugin.video.jellycon/service.py", line 54, in <module>
                                                check_server()
                                              File "/storage/.kodi/addons/plugin.video.jellycon/resources/lib/server_detect.py", line 439, in check_server
                                                du.authenticate()
                                              File "/storage/.kodi/addons/plugin.video.jellycon/resources/lib/downloadutils.py", line 576, in authenticate
                                                log.debug("AuthenticateByName: {0}".format(resp))
                                            UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 3878: ordinal not in range(128)
                                            -->End of Python script error report<--

OS: Raspberry Pi
Jellyfin Version: 10.6.3 (behind nginx reverse-proxy)
Kodi Version: 18.8 (LibreELEC 9.2.4)
Addon Version: 0.2.0

The other jellyfin-plugin works fine, aswell as the web ui. JellyCon has worked before... Not exactly sure what caused this

Issues with playback of files with special characters in filename

Jellycon is not able to play files with special characters in filename. For example files containing the following characters: ěščřýáíú§ů and many more.

If I chose to transcode the movie the movie will be played.

I can also not remote control the Jellycon via the web interface and force to play the movie.

This is an issue as a huge part of my media library is in czech language and until now I did not need to rename the files after downloading so this would mean a huge time invest in manually find and rename the files.

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.