nomego / Lazyman.bundle

Lazyman Plex Channel
105 stars 24 forks source link

iOS Playback Broken #13

Closed SlothCroissant closed 6 years ago

SlothCroissant commented 6 years ago

Lazyman.bundle version: Commit ad5596c83824e40eee5fdbb1e50c6f88eb02390e (latest at this time) Plex Version: 1.8.4.4249

When playing via iOS app, playback stops immediately. Here are the logs (censored some of the urls & args):

2017-09-20 19:25:12,526 (2b626b006700) :  DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/StreamMetadata?function_args=[insertArgsHere]
2017-09-20 19:25:12,529 (2b626b006700) :  DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/StreamMetadata
2017-09-20 19:25:12,530 (2b626b006700) :  DEBUG (runtime:125) - Calling function 'StreamMetadata'
2017-09-20 19:25:12,532 (2b626b006700) :  WARNING (runtime:1065) - Generating a callback path for a function with no route: <function StreamMetadata at 0x2b6269d95b18>
2017-09-20 19:25:12,541 (2b626b006700) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-20 19:25:12,542 (2b626b006700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 9778 bytes
2017-09-20 19:25:12,561 (2b626b006700) :  DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/PlayStream.m3u8?function_args=[insertArgsHere]
2017-09-20 19:25:12,564 (2b626b006700) :  DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/PlayStream.m3u8
2017-09-20 19:25:12,565 (2b626b006700) :  DEBUG (runtime:125) - Calling function 'PlayStream.m3u8'
2017-09-20 19:25:12,566 (2b626b006700) :  INFO (__init__:263) -  --> Final stream url: http://url.com/stream.m3u8
2017-09-20 19:25:12,570 (2b626b006700) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-20 19:25:12,571 (2b626b006700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1433 bytes

Thoughts? Isn't the biggest issue as it can stream to my Chromecast just fine at this point.

ghost commented 6 years ago

I've read (and can confirm on at least one system) that this is related to the way Plex handles HLS for these devices. The best workaround I've seen is modifying the iOS.xml (or tvOS.xml) profile to comment out the following lines:

<!-- Allow Direct Play of HLS content  -->
<!-- <VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="aac" /> -->

The location of your profiles will vary depending on which OS you are running Plex from. See this article for data folder locations, and this link for source/credit to the workaround above.

thomashw commented 6 years ago

I can confirm this works for my iPhone 6. Logs from before and after commenting that out:

Before:

2017-09-26 21:56:33,302 (7ff4f5d3b700) :  DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/PlayStream.m3u8?function_args=Y2VyZWFsMQoxCmRpY3QKMQpzMzEwCmh0dHA6Ly9obHNsaXZlLWFrYy5tZWQyLm1lZC5uaGwuY29tL2hkbnRzPWV4cD0xNTA2NTAxNzcyfmFjbD0vKn5pZD1uaGxHYXRld2F5SWQ6NzI5NDQxNH5kYXRhPTUyODgzODAzfmhtYWM9MzAzMDRkNDRkYzNiNjUxZTU4ODY4NTIxMTMyZTEyZGNhZWRkMzI3NTM3NGZmMjEwNzYzMjEzNTI4MzU4NDFiZS8yYTdlNDk5ZDk2NDkyNGJjMDQ0YzliNWUzNGM1MjU0My9sczA0L25obC8yMDE3LzA5LzI2L05ITF9HQU1FX1ZJREVPX0NHWVdQR19NMl9IT01FXzIwMTcwOTI2XzE1MDYxODk5NzUzODkvMzUwMEsvMzUwMF9jb21wbGV0ZS10cmltbWVkLm0zdThzMwp1cmxyMAo_&indirect=1&mediaInfo=%7B%22audio_channels%22%3A%202%2C%20%22protocol%22%3A%20%22hls%22%2C%20%22optimized_for_streaming%22%3A%20true%2C%20%22video_frame_rate%22%3A%2030%2C%20%22duration%22%3A%20null%2C%20%22height%22%3A%20720%2C%20%22width%22%3A%201280%2C%20%22container%22%3A%20%22mpegts%22%2C%20%22audio_codec%22%3A%20%22aac%22%2C%20%22aspect_ratio%22%3A%20null%2C%20%22video_codec%22%3A%20%22h264%22%2C%20%22video_resolution%22%3A%20%22720%22%2C%20%22bitrate%22%3A%20null%7D
2017-09-26 21:56:33,304 (7ff4f5d3b700) :  DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/PlayStream.m3u8
2017-09-26 21:56:33,304 (7ff4f5d3b700) :  DEBUG (runtime:125) - Calling function 'PlayStream.m3u8'
2017-09-26 21:56:33,304 (7ff4f5d3b700) :  INFO (__init__:292) -  --> Final stream url: http://hlslive-akc.med2.med.nhl.com/hdnts=exp=1506501772~acl=/*~id=nhlGatewayId:7294414~data=52883803~hmac=30304d44dc3b651e58868521132e12dcaedd3275374ff21076321352835841be/2a7e499d964924bc044c9b5e34c52543/ls04/nhl/2017/09/26/NHL_GAME_VIDEO_CGYWPG_M2_HOME_20170926_1506189975389/3500K/3500_complete-trimmed.m3u8
2017-09-26 21:56:33,311 (7ff4f5d3b700) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-26 21:56:33,311 (7ff4f5d3b700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1449 bytes

After:


2017-09-26 21:59:21,439 (7f6e9ffff700) :  DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/PlayStrea
m.m3u8?function_args=Y2VyZWFsMQoxCmRpY3QKMQpzMzEwCmh0dHA6Ly9obHNsaXZlLWFrYy5tZWQyLm1lZC5uaGwuY29tL2hkbnRzPWV4cD0xNTA2NTA
xNzcyfmFjbD0vKn5pZD1uaGxHYXRld2F5SWQ6NzI5NDQxNH5kYXRhPTUyODgzODAzfmhtYWM9MzAzMDRkNDRkYzNiNjUxZTU4ODY4NTIxMTMyZTEyZGNhZWR
kMzI3NTM3NGZmMjEwNzYzMjEzNTI4MzU4NDFiZS8yYTdlNDk5ZDk2NDkyNGJjMDQ0YzliNWUzNGM1MjU0My9sczA0L25obC8yMDE3LzA5LzI2L05ITF9HQU1
FX1ZJREVPX0NHWVdQR19NMl9IT01FXzIwMTcwOTI2XzE1MDYxODk5NzUzODkvMzUwMEsvMzUwMF9jb21wbGV0ZS10cmltbWVkLm0zdThzMwp1cmxyMAo_&in
direct=1&mediaInfo=%7B%22audio_channels%22%3A%202%2C%20%22protocol%22%3A%20%22hls%22%2C%20%22optimized_for_streaming%22%
3A%20true%2C%20%22video_frame_rate%22%3A%2030%2C%20%22duration%22%3A%20null%2C%20%22height%22%3A%20720%2C%20%22width%22%
3A%201280%2C%20%22container%22%3A%20%22mpegts%22%2C%20%22audio_codec%22%3A%20%22aac%22%2C%20%22aspect_ratio%22%3A%20null
%2C%20%22video_codec%22%3A%20%22h264%22%2C%20%22video_resolution%22%3A%20%22720%22%2C%20%22bitrate%22%3A%20null%7D
2017-09-26 21:59:21,441 (7f6e9ffff700) :  DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/PlayStrea
m.m3u8
2017-09-26 21:59:21,441 (7f6e9ffff700) :  DEBUG (runtime:125) - Calling function 'PlayStream.m3u8'
2017-09-26 21:59:21,441 (7f6e9ffff700) :  INFO (__init__:292) -  --> Final stream url: http://hlslive-akc.med2.med.nhl.com/hdnts=exp=1506501772~acl=/*~id=nhlGatewayId:7294414~data=52883803~hmac=30304d44dc3b651e58868521132e12dcaedd3275374ff21076321352835841be/2a7e499d964924bc044c9b5e34c52543/ls04/nhl/2017/09/26/NHL_GAME_VIDEO_CGYWPG_M2_HOME_20170926_1506189975389/3500K/3500_complete-trimmed.m3u8
2017-09-26 21:59:21,444 (7f6e9ffff700) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-26 21:59:21,444 (7f6e9ffff700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 1449 bytes
2017-09-26 21:59:21,563 (7f6e9ffff700) :  DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/StreamMetadata?function_args=Y2VyZWFsMQoxCmRpY3QKNApzMTAKMjAxNy0wOS0yNXM0CmRhdGVpMjAxNzAxMDA2NQpzNgpnYW1laWRzOAo1Mjg4MzgwM3M3Cm1lZGlhSWRzMwpuaGxzNQpzcG9ydHIwCg__&includeBandwidths=1
2017-09-26 21:59:21,564 (7f6e9ffff700) :  DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/StreamMetadata
2017-09-26 21:59:21,564 (7f6e9ffff700) :  DEBUG (runtime:125) - Calling function 'StreamMetadata'
2017-09-26 21:59:21,565 (7f6e9ffff700) :  WARNING (runtime:1065) - Generating a callback path for a function with no route: <function StreamMetadata at 0x7f6ecf05a320>
2017-09-26 21:59:21,570 (7f6e9ffff700) :  DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-26 21:59:21,571 (7f6e9ffff700) :  DEBUG (runtime:924) - Response: [200] MediaContainer, 9818 bytes```
nomego commented 6 years ago

Would anyone want to send a PR with a suggestion for information about this workaround for the README or similar?

ghost commented 6 years ago

Submitted #22 . Contains more detail on the iOS workaround as well as splitting up the different install methods (now that this bundle is on the UAS by default).

nomego commented 6 years ago

Pr with workaround merged, closing.