Issue:
Trying to play a YouTube videos from the Watch Later list, using the Web app in Google Chrome, doesn’t work.
I just see a loading animation, and nothing happens.
Trying to play the same YouTube video from the Watch Later list in Plex Media Player, from the same client computer, works correctly. Same when trying using the Plex web app in Safari.
The issue seems to be only with Chrome.
This has been an issue for many months, in various Google Chrome and PMS versions.
Google Chrome: Version 60.0.3112.66
Plex Web: Version 3.11.0
Plex Server: Version 1.7.6.4058
OS: 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u2
Chrome Developer Console shows this (I also attached this image as ChromeDevConsole.png):
The POST to PlayVideo just hangs.
On the server (see attached logs):
- Excerpt from
Plex Media Server.log(attached):
Jul 18, 2017 11:44:15.633 [0x7f8efe3fe700] DEBUG - [com.plexapp.system] Sending command over HTTP (POST): /:/plugins/com.plexapp.system/serviceFunction/url/com.plexapp.plugins.youtube/YouTube/PlayVideo?args=...&kwargs=...
Jul 18, 2017 11:44:15.633 [0x7f8efe3fe700] DEBUG - HTTP requesting POST http://127.0.0.1:42259/:/plugins/com.plexapp.system/serviceFunction/url/com.plexapp.plugins.youtube/YouTube/PlayVideo?args=...&kwargs=...
Jul 18, 2017 11:44:35.105 [0x7f8f037fe700] VERBOSE - We didn't receive any data from 127.0.0.1:36432 in time, dropping connection.
Jul 18, 2017 11:44:35.161 [0x7f8f037fe700] VERBOSE - We didn't receive any data from 127.0.0.1:36436 in time, dropping connection.
- Excerpt from
com.plexapp.system.log(attached):
2017-07-18 11:44:15,010 (7f4b5d7fa700) : DEBUG (networking:166) - Requesting 'https://www.youtube.com/watch?v=E4U3TeY2wtM'
2017-07-18 11:44:15,492 (7f4b5d7fa700) : DEBUG (runtime:88) - Sending packed state data (1391 bytes)
2017-07-18 11:44:15,493 (7f4b5d7fa700) : DEBUG (runtime:924) - Response: [200] str, 45435 bytes
I tried deleting the following folders & files, and restarting PMS. Those folders & files are NOT re-created when I try to play a YouTube video from the Watch Later list.
- Logs/PMS Plugin Logs/com.plexapp.plugins.youtube.log*
- Plug-in Support/Caches/com.plexapp.plugins.youtube
- Plug-in Support/Data/com.plexapp.plugins.youtube
- Plug-in Support/Preferences/com.plexapp.plugins.youtube.xml
I tried using curl on the command line of my server running PMS, to test the last URL seen in Plex Media Server.log, and it seems to work fine:
$ curl -X POST 'http://127.0.0.1:42259/:/plugins/com.plexapp.system/serviceFunction/url/com.plexapp.plugins.youtube/YouTube/PlayVideo?args=...&kwargs=...'
<?xml version='1.0' encoding='utf-8'?>
<MediaContainer size="1" identifier="com.plexapp.system" mediaTagPrefix="/system/bundle/media/flags/">
<Video sourceIcon="http://resources-cdn.plexapp.com/image/source/com.plexapp.plugins.youtube.jpg?h=3d66c94" key="https://r2---sn-cxaaj5o5q5-t0az.googlevideo.com/videoplayback?mime=video%2Fmp4&pcm2cms=yes&dur=109.203&itag=22&ipbits=0&expire=1500415085&signature=...&initcwndbps=2942500&key=yt6&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&lmt=1500060431103530&requiressl=yes&ip=70.30.232.183&ratebypass=yes&mn=sn-cxaaj5o5q5-t0az&mm=31&source=youtube&pl=22&mv=m&mt=1500393362&ms=au&ei=DTBuWZy1JommugK1_YiIDA&id=o-ANE3r52mIRH7Vmny0HMAkCJEjLuf6CZiIDaVKdfa3pV8" type="clip">
<Media optimizedForStreaming="1" height="1080" width="1920" container="mp4" audioCodec="aac" videoCodec="h264" videoResolution="1080">
<Part container="mp4" key="https://r2---sn-cxaaj5o5q5-t0az.googlevideo.com/videoplayback?mime=video%2Fmp4&pcm2cms=yes&dur=109.203&itag=22&ipbits=0&expire=1500415085&signature=...&initcwndbps=2942500&key=yt6&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&lmt=1500060431103530&requiressl=yes&ip=70.30.232.183&ratebypass=yes&mn=sn-cxaaj5o5q5-t0az&mm=31&source=youtube&pl=22&mv=m&mt=1500393362&ms=au&ei=DTBuWZy1JommugK1_YiIDA&id=o-ANE3r52mIRH7Vmny0HMAkCJEjLuf6CZiIDaVKdfa3pV8" file="" optimizedForStreaming="1">
<Stream index="0" selected="1" streamType="1" height="1080" width="1920" codec="h264" id="1"/>
<Stream index="1" selected="1" streamType="2" codec="aac" id="2"/>
</Part>
</Media>
</Video>
</MediaContainer>
I also attached the Plex Media Server.log for when this YouTube video played correctly in Safari (see Plex Media Server-working-in-Safari.log). It looks like transcoding is used for Safari, but in Chrome, I thinks it tries to play the video as-is, and I think that is what is broken.
The Cache/Data files I deleted are not re-created when the YouTube videos is played successfully, so I don’t think those are created anymore, or they are just created when a video is played directly, instead of being transcoded.