jellyfin-kodi
jellyfin-kodi copied to clipboard
Unverified HTTPS request error even with Verify connection set to OFF
Hi,
Kodi 20.2 running and Jellyfin add-on for Kodi 0.17.11 installed with playback mode Add-on running on client Xubuntu 23.10 and Jellyfin 10.8.11 running on arm64 server. Jellyfin libraries in the server can be accessed from Kodi but playback fails even though the setting in the Jellyfin add-on is set to Settings > Verify connection OFF
The error message displayed is: One or more items failed to play. Check the log for more info
Log:
2023-10-30 14:42:55.402 T:24 info <general>: CActiveAESink::OpenSink - initialize sink
2023-10-30 14:42:55.436 T:24 info <general>: PulseAudio: Opened device Default in pcm mode with Buffersize 150 ms Periodsize 50 ms
2023-10-30 14:42:55.929 T:24 error <general>: Sink Timer expired for more than buffer time: 0.15s
2023-10-30 14:42:58.918 T:67 info <general>: JELLYFIN -> INFO::jellyfin_kodi/jellyfin/__init__.py:98 ---[ START JELLYFINCLIENT ]---
2023-10-30 14:42:58.920 T:67 info <general>: JELLYFIN.jellyfin_kodi.entrypoint.default -> INFO::jellyfin_kodi/entrypoint/default.py:72 path: ?filename=myvideofile.mkv&id=0a0c0d16a2c376366eac3d296bcde7eb&dbid=2&mode=play params: {
"filename": "myvideofile.mkv",
"id": "0a0c0d16a2c376366eac3d296bcde7eb",
"dbid": "2",
"mode": "play"
}
2023-10-30 14:42:59.121 T:67 error <general>: /home/myuser/.var/app/tv.kodi.Kodi/data/addons/script.module.urllib3/lib/urllib3/connectionpool.py:1056: InsecureRequestWarning: Unverified HTTPS request is being made to host 'mywebsite.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
warnings.warn(
2023-10-30 14:42:59.404 T:67 info <general>: JELLYFIN.jellyfin_kodi.objects.actions -> INFO::jellyfin_kodi/objects/actions.py:67 [ play/0a0c0d16a2c376366eac3d296bcde7eb ] Imprudencias letales
2023-10-30 14:42:59.653 T:67 error <general>: /home/myuser/.var/app/tv.kodi.Kodi/data/addons/script.module.urllib3/lib/urllib3/connectionpool.py:1056: InsecureRequestWarning: Unverified HTTPS request is being made to host 'mywebsite.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
warnings.warn(
2023-10-30 14:42:59.766 T:67 info <general>: JELLYFIN.jellyfin_kodi.helper.playutils -> INFO::jellyfin_kodi/helper/playutils.py:82 {'MediaSources': [{'Protocol': 'File', 'Id': '0a0c0d16a2c376366eac3d296bcde7eb', 'Path': '/mnt/USB720GB/Lab/tmp/TV_Shows/Money Heist/Season 01/myvideofile.mkv', 'Type': 'Default', 'Container': 'mkv', 'Size': 740852800, 'Name': 'myvideofile', 'IsRemote': False, 'ETag': 'bb82f384e27d0618c172faee70155baa', 'RunTimeTicks': 24723570688, 'ReadAtNativeFramerate': False, 'IgnoreDts': False, 'IgnoreIndex': False, 'GenPtsInput': False, 'SupportsTranscoding': True, 'SupportsDirectStream': True, 'SupportsDirectPlay': True, 'IsInfiniteStream': False, 'RequiresOpening': False, 'RequiresClosing': False, 'RequiresLooping': False, 'SupportsProbing': True, 'VideoType': 'VideoFile', 'MediaStreams': [{'Codec': 'h264', 'ColorSpace': 'bt709', 'ColorTransfer': 'bt709', 'ColorPrimaries': 'bt709', 'TimeBase': '1/1000', 'VideoRange': 'SDR', 'VideoRangeType': 'SDR', 'DisplayTitle': '1080p H264 SDR', 'NalLengthSize': '4', 'IsInterlaced': False, 'IsAVC': True, 'BitRate': 2397235, 'BitDepth': 10, 'RefFrames': 1, 'IsDefault': True, 'IsForced': False, 'Height': 1080, 'Width': 1920, 'AverageFrameRate': 25, 'RealFrameRate': 25, 'Profile': 'High 10', 'Type': 'Video', 'AspectRatio': '16:9', 'Index': 0, 'IsExternal': False, 'IsTextSubtitleStream': False, 'SupportsExternalStream': False, 'PixelFormat': 'yuv420p10le', 'Level': 41}, {'Codec': 'ac3', 'Language': 'spa', 'TimeBase': '1/1000', 'Title': 'English [MRSK]', 'DisplayTitle': 'English [MRSK] - Spanish - Dolby Digital - Stereo - Default', 'IsInterlaced': False, 'ChannelLayout': 'stereo', 'BitRate': 192000, 'Channels': 2, 'SampleRate': 48000, 'IsDefault': True, 'IsForced': False, 'Type': 'Audio', 'Index': 1, 'IsExternal': False, 'IsTextSubtitleStream': False, 'SupportsExternalStream': False, 'Level': 0}, {'Codec': 'ass', 'Language': 'eng', 'TimeBase': '1/1000', 'LocalizedUndefined': 'Undefined', 'LocalizedDefault': 'Default', 'LocalizedForced': 'Forced', 'LocalizedExternal': 'External', 'DisplayTitle': 'English - ASS', 'IsInterlaced': False, 'IsDefault': False, 'IsForced': False, 'Type': 'Subtitle', 'Index': 2, 'IsExternal': False, 'DeliveryMethod': 'Embed', 'IsTextSubtitleStream': True, 'SupportsExternalStream': True, 'Level': 0}, {'Codec': 'ass', 'Language': 'spa', 'TimeBase': '1/1000', 'LocalizedUndefined': 'Undefined', 'LocalizedDefault': 'Default', 'LocalizedForced': 'Forced', 'LocalizedExternal': 'External', 'DisplayTitle': 'Spanish - ASS', 'IsInterlaced': False, 'IsDefault': False, 'IsForced': False, 'Type': 'Subtitle', 'Index': 3, 'IsExternal': False, 'DeliveryMethod': 'Embed', 'IsTextSubtitleStream': True, 'SupportsExternalStream': True, 'Level': 0}, {'Codec': 'ass', 'Language': 'fre', 'TimeBase': '1/1000', 'LocalizedUndefined': 'Undefined', 'LocalizedDefault': 'Default', 'LocalizedForced': 'Forced', 'LocalizedExternal': 'External', 'DisplayTitle': 'Fre - ASS', 'IsInterlaced': False, 'IsDefault': False, 'IsForced': False, 'Type': 'Subtitle', 'Index': 4, 'IsExternal': False, 'DeliveryMethod': 'Embed', 'IsTextSubtitleStream': True, 'SupportsExternalStream': True, 'Level': 0}, {'Codec': 'ass', 'Language': 'ger', 'TimeBase': '1/1000', 'LocalizedUndefined': 'Undefined', 'LocalizedDefault': 'Default', 'LocalizedForced': 'Forced', 'LocalizedExternal': 'External', 'DisplayTitle': 'Ger - ASS', 'IsInterlaced': False, 'IsDefault': False, 'IsForced': False, 'Type': 'Subtitle', 'Index': 5, 'IsExternal': False, 'DeliveryMethod': 'Embed', 'IsTextSubtitleStream': True, 'SupportsExternalStream': True, 'Level': 0}, {'Codec': 'ass', 'Language': 'pol', 'TimeBase': '1/1000', 'LocalizedUndefined': 'Undefined', 'LocalizedDefault': 'Default', 'LocalizedForced': 'Forced', 'LocalizedExternal': 'External', 'DisplayTitle': 'Polish - ASS', 'IsInterlaced': False, 'IsDefault': False, 'IsForced': False, 'Type': 'Subtitle', 'Index': 6, 'IsExternal': False, 'DeliveryMethod': 'Embed', 'IsTextSubtitleStream': True, 'SupportsExternalStream': True, 'Level': 0}], 'MediaAttachments': [], 'Formats': [], 'Bitrate': 2589235, 'RequiredHttpHeaders': {}, 'DefaultAudioStreamIndex': 1}], 'PlaySessionId': '322ad5b83f9f4e098fd420187eb90fd2'}
2023-10-30 14:42:59.768 T:67 info <general>: JELLYFIN.jellyfin_kodi.helper.playutils -> INFO::jellyfin_kodi/helper/playutils.py:99 Skip source selection.
2023-10-30 14:42:59.778 T:67 info <general>: JELLYFIN.jellyfin_kodi.helper.playutils -> INFO::jellyfin_kodi/helper/playutils.py:204 --[ direct stream ]
2023-10-30 14:42:59.983 T:67 error <general>: /home/myuser/.var/app/tv.kodi.Kodi/data/addons/script.module.urllib3/lib/urllib3/connectionpool.py:1056: InsecureRequestWarning: Unverified HTTPS request is being made to host 'mywebsite.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
warnings.warn(
2023-10-30 14:43:00.712 T:67 warning <general>: ListItem.setCast() is deprecated and might be removed in future Kodi versions. Please use InfoTagVideo.setCast().
2023-10-30 14:43:00.712 T:67 warning <general>: "totaltime" in ListItem.setProperty() is deprecated and might be removed in future Kodi versions. Please use InfoTagVideo.setResumePoint().
2023-10-30 14:43:00.712 T:67 warning <general>: "resumetime" in ListItem.setProperty() is deprecated and might be removed in future Kodi versions. Please use InfoTagVideo.setResumePoint().
2023-10-30 14:43:00.712 T:67 warning <general>: ListItem.addStreamInfo() is deprecated and might be removed in future Kodi versions. Please use InfoTagVideo.addVideoStream(), InfoTagVideo.addAudioStream() and InfoTagVideo.addSubtitleStream().
2023-10-30 14:43:00.712 T:67 info <general>: Skipped 6 duplicate messages..
2023-10-30 14:43:00.712 T:67 warning <general>: Setting most video properties through ListItem.setInfo() is deprecated and might be removed in future Kodi versions. Please use the respective setter in InfoTagVideo.
So an "Unverified HTTPS request" even though the setting is set to OFF. Is there a workaround to get the video streamed? Should the solutions proposed in the error link https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings be coded in the add-on?
Thank you!
I'm getting the exact same behaviour on an Nvidia Shield Pro 2019 that I've just set up today. Library sync completes fine and imports into Kodi, but just get a non-stop spinning wheel when I try to play a file.
Previous RPi4 was playing successfully today before I swapped the devices over.
Shield is v9.1.1 (33.2.0.157)
Kodi is v20.2.0
jellyfin-kodi addon is v0.7.11
Jellyfin Server is v10.8.11
Jellyfin Server (and Android TV home screen) shows an active stream running, but no video ever starts on the client. There is a slight blip in the loading wheel where it would normally start the stream, but then the buffering animation starts and doesn't stop. Can confirm this behaviour is the same with Verify Connection both ON and OFF.
Link to Kodi debug log attempting to play a file: https://pastebin.com/i5Qna2ev (domain has been edited out, but it has a current (expires in 2 months), valid LetsEncrypt SSL certificate with full chain to ISRG Root X1 - gets "A" score on Qualys' SSL Labs, link can be provided in DM if helpful)
Raspberry Pi was running LibreElec v11.0.3, same version of Kodi and jellyfin-kodi as the Shield TV and connecting to the same server. Have just reconnected it up and it's playing media fine from that host.
EDIT: I've just checked the logs on the working device, and it also has the same error messages throughout. Verify Connection is set to ON on this host. So I think the title currently on this issue isn't the cause of the playback problems.
What doesn't appear in the working log file is the GetItemsForPlayList
error seen in the Pastebin:
2023-11-01 22:24:36.359 T:28754 error <general>: GetItemsForPlayList: Unable to get playlist items for plugin://plugin.video.jellyfin/f137a2dd21bbc1b99aa5c0f6bf02a805/?filename=Popeye+%28Bluray-1080p%29.mkv&id=8d399c6a6b04f5569ef37269603b49dd&dbid=1278&mode=play
Playback is not failing because of your ssl certificates. I don't know exactly why it's failing, but the verify connection setting is not the culprit, as it's working just fine on my system with it both turned on and off.
Should the solutions proposed in the error link https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings be coded in the add-on?
My opinion is no, for two reasons. The first is because it's more or less meaningless. There's no functional changes, it just determines if you get extra lines in your log files. The second is because if you're using a valid certificate, there's really no reason to ever touch that setting, and if you're not using a valid certificate you deserve to have your logs yell at you.
The only indication I've seen of what might be the issue are these log lines from @DancingMolly
2023-11-01 22:24:36.349 T:28754 debug <general>: LoadDetails: Unsupported item type (path=plugin://plugin.video.jellyfin/f137a2dd21bbc1b99aa5c0f6bf02a805/?filename=Popeye+%28Bluray-1080p%29.mkv&id=8d399c6a6b04f5569ef37269603b49dd&dbid=1278&mode=play)
2023-11-01 22:24:36.359 T:28754 error <general>: GetItemsForPlayList: Unable to get playlist items for plugin://plugin.video.jellyfin/f137a2dd21bbc1b99aa5c0f6bf02a805/?filename=Popeye+%28Bluray-1080p%29.mkv&id=8d399c6a6b04f5569ef37269603b49dd&dbid=1278&mode=play
I've never seen this before. There's no errors from our addon code around this that indicate we encountered a problem. Especially odd is that it appears that Kodi throws this error before our addon tries to actually process anything. It may be a side effect of Kodi's debug logging being unnecessarily noisy, but it's hard to say for sure. Our addon actually has it's own debug logging enabled in the settings that may be more useful, but frankly we just hand Kodi a URL and it plays things on it's own. From what I'm seeing so far, I don't see anything indicating a problem.
@mcarlton00 can you take a look over this latest debug log I've created please?
https://paste.kodi.tv/ogegimigox.kodi
I turned on debug logging in the Jellyfin addon, as well as debug logging in all of Kodi's components. It looks OK to me, and looks like the file should be playing? Those errors about playlists are still in there, but then the log progresses afterwards to apparently loading the file, and passing it to play?
The interface just shows the blue spinning wheel.
For full openness, I ran the following command over the output to clean up a lot of the SSL lines, mainly because they were unprintable characters anyways, but also because I didn't want to leak something accidentally in the binary output.
$ cat kodi-2005.log | tr -d '\0' | tr -d '\200-\277' | tr '\300-\377' '[?*]' | grep -v SSL_DATA_IN | grep -v SSL_DATA_OUT > kodi-2005-clean.log
If this isn't an issue with the Jellyfin addon (and I accept it might not be), should I report it onto the Kodi GitHub? I downloaded a local copy of Big Buck Bunny to the Shield TV's /sdcard
folder and Kodi played that correctly. So I think it's only an issue with playback of Jellyfin content.
I have also now done a full factory reset of the Shield, installed just Kodi, and just the Jellyfin addon and get the same behaviour. (Admittedly, I haven't pulled a log as I didn't even go as far as enabling developer mode/remote ADB)
Nothing stands out as an issue that I can see. Out of curiosity, what reverse proxy are you using for your SSL endpoint? If it's something that is enabling http2, I suspect that's the cause of your issues. Kodi's http2 implementation seems to have some reliability issues that manifest in lots of weird little ways. You can try either disabling http2 in your reverse proxy, or disabling it within Kodi. To do it from kodi you have to edit your advancedsettings.xml file
<advancedsettings version="1.0">
<network>
<disablehttp2>true</disablehttp2>
</network>
</advancedsettings>
Just set it locally in advancedsettings.xml and it has fixed the issue for me. I also appreciate I'm not OP, so can't say it is the cause to close the issue too. Amazing suggestion though, thank you!
For reference though, my reverse proxy is Traefik v2.10.5 (current latest
tag on Docker Hub). I'll look into disabling HTTP/2 globally in case it's interfering with my external users (who are using native Jellyfin apps, not Kodi). Thanks again from me.