Video cannot be played, Chrome can play this

RESOLVED WORKSFORME
(NeedInfo fromanyone)

Status

RESOLVED WORKSFORME
4 years ago
4 years ago

People

(Reporter: malex.bugzilla, Unassigned, NeedInfo)

Tracking

Firefox 37
Other
Android

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [country-ru] [video], URL)

(Reporter)

Description

4 years ago
User Agent: Mozilla/5.0 (Android; Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
Build ID: 20150402191953

Steps to reproduce:

start page and like to play video on Samsung Note 4:
http://m.tvrain.ru/articles/eto_nasilie_nad_konstitutsiej_andrej_zvjagintsev_sergej_parhomenko_marina_davydova_podderzhali_tangejzer-385166/


Actual results:

Video cannot be played, Chrome can play this.
I'm offered Flash on that site which Chrome does not support. So the site is sending different content based on user agents. Moving to tech evangelism.
Component: Audio/Video → Mobile
Product: Firefox for Android → Tech Evangelism

Comment 2

4 years ago
When I try to load on Firefox, at a point it displays an infinite wheel.

I get in the console
Trying to look which requests are related to the player:

09:57:40.756 GET http://cloud.tvigle.ru/static/player/player_builder.min.js [HTTP/1.1 200 OK 558ms]
09:57:40.757 GET http://cloud.tvigle.ru/static/player/html_builder.js [HTTP/1.1 200 OK 579ms]

09:57:42.515 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. 
             For more help http://xhr.spec.whatwg.org/ player_builder.min.js:41:0

09:57:42.619 GET http://cloud.tvigle.ru/api/player/4/ [HTTP/1.1 200 OK 301ms]
09:57:42.982 GET http://cloud.tvigle.ru/static/player/player_api.min.js [HTTP/1.1 200 OK 376ms]
09:57:42.983 GET http://cloud.tvigle.ru/player/html/ [HTTP/1.1 200 OK 977ms]
09:57:44.399 GET http://cloud.tvigle.ru/static/player/viewer/html/css/style.css [HTTP/1.1 200 OK 307ms]
09:57:44.399 GET http://cloud.tvigle.ru/static/player/player.min.js [HTTP/1.1 200 OK 571ms]
09:57:44.400 GET http://cloud.tvigle.ru/static/player/html_html.js [HTTP/1.1 200 OK 292ms]

09:57:45.337 "MessageGateway disabled" player.min.js:40:794
09:57:46.237 Invalid URI. Load of media resource  failed. html
09:57:46.238 All candidate resources failed to load. Media load paused. html

09:57:46.308 GET http://cloud.tvigle.ru/static/player/viewer/html/images/loader.gif [HTTP/1.1 200 OK 279ms]
09:57:46.309 GET http://cloud.tvigle.ru/static/player/viewer/html/images/player-sprite.png [HTTP/1.1 200 OK 591ms]
09:57:46.309 GET http://cloud.tvigle.ru/static/player/viewer/html/images/error-bg.png [HTTP/1.1 200 OK 286ms]
09:57:46.370 GET http://cloud.tvigle.ru/static/player/viewer/html/images/error-bg-gradient.png


also some similar functions seems to be loaded twice in player.min.js and player_api.min.js Or maybe it's the devtools showing twice the same code with different names. Strange.

In the HTML we get 

	    <script type="text/javascript">
		    (function() {
			    var isMobile = navigator.userAgent.match(/(iPad|iPhone|Android|android|WPDesktop)/i) != null;
			    var content = '';

			    if (isMobile) {
				    content = '<iframe src="http://cloud.tvigle.ru/video/5289366/?playerId=4&partnerId=7&autoStart=0&id=5289366" width="100%" height="100%" frameborder="no" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>';
			    }
			    else {
				    content = '\x3cobject class\x3d"TviglePlayer"\x3e\x3cparam name\x3d"id" value\x3d"5289366"\x3e\x3cparam name\x3d"autoStart" value\x3d"0"\x3e\x3cparam name\x3d"partnerId" value\x3d"7"\x3e\x3cparam name\x3d"forceFlashObject" value\x3d"true"\x3e\x3cparam name\x3d"playerId" value\x3d"4"\x3e\x3cparam name\x3d"width" value\x3d"100%"\x3e\x3cparam name\x3d"height" value\x3d"100%"\x3e\x3cparam name\x3d"useAPI" value\x3d"true"\x3e\x3cparam name\x3d"autoChangeVideo" value\x3d"false"\x3e\x3c/object\x3e\x3cscript language\x3d"JavaScript" type\x3d"text/javascript" data-hang\x3d"false" src\x3d"//cloud.tvigle.ru/static/player/player_builder.min.js"\x3e\x3c/script\x3e'
			    }

			    document.write(content);
		    })();
	    </script>

So we get the iframe at the URI.

doing window.location = 'http://cloud.tvigle.ru/video/5289366/?playerId=4&partnerId=7&autoStart=0&id=5289366'
helps isolate the context for testing.

After The MessageGateway

10:24:44.141 "MessageGateway disabled" player.min.js:40:794
10:24:44.345 GET http://cloud.tvigle.ru/api/play/video/5289366/ [HTTP/1.1 200 OK 371ms]
10:24:44.781 GET http://stat.tvigle.ru/track/ [HTTP/1.1 200 OK 861ms]
10:24:44.818 Invalid URI. Load of media resource  failed. html
10:24:44.818 All candidate resources failed to load. Media load paused.

a request is made to:
 http://cloud.tvigle.ru/api/play/video/5289366/
Which is in fact a playlist with a JSON file:

{"playlist": {"items": [{"videos": {"mp4": {"480p": "http://distribution.tvigle.ru/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4?prt_name=tvrain&prt_id=7", "360p": "http://distribution.tvigle.ru/28/2015/04/05/1dd9356e-a005-4783-90f8-d2a35ef8165a.mp4?prt_name=tvrain&prt_id=7", "720p": "http://distribution.tvigle.ru/28/2015/04/05/e4fb64ab-56f5-4054-ba3d-4325a2ea461f.mp4?prt_name=tvrain&prt_id=7"}, "flv": {"480p": "http://distribution.tvigle.ru/28/2015/04/05/f27525a6-a82a-496d-b46a-0dec697adf0e.flv?prt_name=tvrain&prt_id=7", "360p": "http://distribution.tvigle.ru/28/2015/04/05/0589659d-8238-4ef3-8d1b-39c99d1b24d5.flv?prt_name=tvrain&prt_id=7", "720p": "http://distribution.tvigle.ru/28/2015/04/05/ee6d12f4-9b3c-421f-9a05-0bb9877f3a1a.flv?prt_name=tvrain&prt_id=7"}}, "rightholder": 7, "categoryID": 33150, "description": "<p>\u0416\u0438\u0442\u0435\u043b\u0438 \u041d\u043e\u0432\u043e\u0441\u0438\u0431\u0438\u0440\u0441\u043a\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f, 5 \u0430\u043f\u0440\u0435\u043b\u044f, \u0432\u044b\u0448\u043b\u0438 \u043d\u0430 \u043c\u0438\u0442\u0438\u043d\u0433 \u043f\u0440\u043e\u0442\u0438\u0432 \u0446\u0435\u043d\u0437\u0443\u0440\u044b \u0438 \u0437\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0443 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430. \u042d\u0442\u043e \u043e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u043c\u0443 \u0432 \u043c\u0438\u043d\u0443\u0432\u0448\u0435\u0435 \u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435 \u0437\u0434\u0435\u0441\u044c \u0436\u0435, \u043d\u0430 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u041b\u0435\u043d\u0438\u043d\u0430, &laquo;\u043c\u043e\u043b\u0438\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u0442\u043e\u044f\u043d\u0438\u044e&raquo; \u043f\u0440\u043e\u0442\u0438\u0432 \u043e\u043f\u0435\u0440\u044b &laquo;\u0422\u0430\u043d\u0433\u0435\u0439\u0437\u0435\u0440&raquo;. \u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0430\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0434\u0435\u044f\u0442\u0435\u043b\u0435\u0439 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u044b \u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 &mdash; \u0410\u043d\u0434\u0440\u0435\u044f \u0417\u0432\u044f\u0433\u0438\u043d\u0446\u0435\u0432\u0430, \u0421\u0435\u0440\u0433\u0435\u044f \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e \u0438 \u041c\u0430\u0440\u0438\u043d\u044b \u0414\u0430\u0432\u044b\u0434\u043e\u0432\u043e\u0439.&nbsp;</p>\r\n", "subtitlesURL": null, "title": "\u00ab\u042d\u0442\u043e \u043d\u0430\u0441\u0438\u043b\u0438\u0435 \u043d\u0430\u0434 \u041a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u0435\u0439\u00bb. \u0410\u043d\u0434\u0440\u0435\u0439 \u0417\u0432\u044f\u0433\u0438\u043d\u0446\u0435\u0432, \u0421\u0435\u0440\u0433\u0435\u0439 \u041f\u0430\u0440\u0445\u043e\u043c\u0435\u043d\u043a\u043e, \u041c\u0430\u0440\u0438\u043d\u0430 \u0414\u0430\u0432\u044b\u0434\u043e\u0432\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043b\u0438 \u00ab\u0422\u0430\u043d\u0433\u0435\u0439\u0437\u0435\u0440\u00bb", "aspectRatio": "16:9", "created_at": "2015-04-05 15:33:02", "thumbnail": "http://photo.tvigle.ru/res/2015/04/05/37082e94-f062-4e43-9077-72fc66e19e16.png", "advert": [], "ageRestrictions": "0+", "partnerId": 7, "durationMilliseconds": 67267, "duration": "1:07", "isGeoBlocked": false, "distribution": "progressive", "freezeFrame": "http://photo.tvigle.ru/res/2015/04/05/e952e2ce-bb11-4ae2-a81e-50257566e5ef.png", "id": 5289366, "video_files_size": {"mp4": {"480p": 6607850, "360p": 4523697, "720p": 9917282}, "flv": {"480p": 6670475, "360p": 4586322, "720p": 9982707}}}], "id": null}, "counters": {"tnsPlayerInit": "http://www.tns-counter.ru/V13a***R%3E%url%*tvigle_ru/ru/CP1251/tmsec=tvigle_vl-tvrain/", "showDefaultCounters": true, "tnsVideoStart": "http://www.tns-counter.ru/V13a***R%3E%url%*tvigle_ru/ru/CP1251/tmsec=tvigle_vs-tvrain/", "tnsVideoFinish": "http://www.tns-counter.ru/V13a***R%3E%url%*tvigle_ru/ru/CP1251/tmsec=tvigle_ve-tvrain/", "gaID": "UA-21750282-5"}}


Trying one URI in the playlist:

→ http HEAD 'http://distribution.tvigle.ru/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4?prt_name=tvrain&prt_id=7'

HTTP/1.1 302 Moved Temporarily
Connection: keep-alive
Date: Thu, 09 Apr 2015 01:33:00 GMT
Keep-Alive: timeout=60
Location: http://178.45.252.114:80/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4?prt_name=tvrain&prt_id=7
Server: nginx


→ http HEAD 'http://178.45.252.114:80/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4?prt_name=tvrain&prt_id=7'

HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: close
Content-Length: 6607850
Content-Type: video/mp4
Date: Thu, 09 Apr 2015 01:33:28 GMT
ETag: "55212d55-64d3ea"
Last-Modified: Sun, 05 Apr 2015 12:40:53 GMT
Server: nginx/1.6.2
X-Cache-Hit: HIT


working. It's playing on the Android device on Firefox.

10:34:47.550 window.location = 'http://178.45.252.114:80/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4?prt_name=tvrain&prt_id=7'
10:34:47.785 "http://178.45.252.114:80/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4?prt_name=tvrain&prt_id=7"
http://178.45.252.114/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4
10:34:47.779 GET 
http://178.45.252.114/28/2015/04/05/74988351-a383-4d26-84ae-822c671c6664.mp4

So the issue is before.

Hallvord, do you see where it's blocking?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(hsteen)
Whiteboard: [country-ru]

Updated

4 years ago
Whiteboard: [country-ru] → [country-ru] [video]
Android|android plus an /i switch for the isMobile regexp - really? :-p Noting also that the regexp will fail in Firefox OS browser.

Apart from that, no - haven't found the real problem yet. Spoofing Android on desktop (and disabling Flash) it doesn't load but it does show a static frame from the video (a bit like the canplay event isn't firing) and there's some overlay element that prevents actually clicking the play button so one can't start it manually. Removing the overlay lets you start the video from the UI. But on Android thing seem different since we don't even get the static frame, just a spinner..
Oddly enough, today it's suddenly working for me.. Can you still reproduce?
Flags: needinfo?(hsteen) → needinfo?(malex.bugzilla)
(Reporter)

Updated

4 years ago
Flags: needinfo?(malex.bugzilla)
(Reporter)

Comment 6

4 years ago
It's correct. Works for me too. Was probably changed on the webpage. So we can close here. Thanks!
(Reporter)

Updated

4 years ago
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Flags: needinfo?
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.