Closed Bug 1681868 Opened 5 years ago Closed 2 years ago

YouTube possibly throttling bit-rate based on user agent string and more.

Categories

(Core :: Audio/Video, defect)

Firefox 83
defect

Tracking

()

RESOLVED INACTIVE

People

(Reporter: rrbetson, Unassigned)

Details

(Whiteboard: [media-youtube])

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0

Steps to reproduce:

Hi,

YouTube (google) appears to be throttling the streaming bit-rate based on the web browsers user agent string. So, if your web browser reports the user agent sting as Chrome streaming video is delivered with no issues but if your web browser reports the user agent string as Firefox YouTube streaming video is delayed and the bit-rate is throttled leading to local buffering delays and poor video playback.

YouTube (google) seems to be effecting Firefox browsers during peak service times for YouTube. Generally this issue will start for me around 1:00 pm CST and end around 8:00 pm CST (I'm in the central US). Google appears to be very cleverly limiting throttling for Firefox during peak traffic times when delays in streaming delivery might be likely and thus less likely to be noticed.

Additionally using a private window vs normal windows for web browsing also will widely increase bit-rate streaming from YouTube functioning much the same way Chrome does in streaming bit-rate. Please note all user added plugins and extensions were removed to compare results.

Actual results:

Testing reveals some striking results. I have prepared a video (continuously recorded) where I show Firefox running on Linux Mint using Firefox 83. In this video I play the same YouTube video three times using different user agent strings and recording the results. A system monitor window shows bit-rate and more. Here you can very clearly see me stream the video first as a chrome user agent string with no issues, then I stream the same video with a Firefox user agent string and the video streams at a much reduced bit rate. I then switch the user agent string back to Chrome and the video streams with no issues as before.

Some odd behaviour here:
https://www.youtube.com/watch?v=NDx2Oc5EJTU&feature=youtu.be

Expected results:

You should be easily able to reproduce this bit-rate throttling by installing an extension/plugin into your Firefox browser to allow custom user agent strings to be sent. Simply try streaming from YouTube using the default user agent string and then stream the same video using a custom user agent string indicating a chrome browser. You can also just stream a video in fire fox and then stream the same video in chrome for comparison. Also try a comparing between streaming a YouTube video in a normal window and the same video in a private window In either case you should notice and be able to detect bit-rate throttling.

My testing has shown that YouTube does throttling for Firefox browsers from around 1:00 pm CST and end around 8:00 pm CST (I'm in the central US) during peak view times. Try a lower streaming rate like 360 30fps for the best indications.

I hope this is reproducible for you. Looking for help figuring this out but I think the video says a lot even if anecdotal.

Thanks

Assigning "Core: Audio/Video" component for further investigations to be done.

Component: Untriaged → Audio/Video
Product: Firefox → Core

Hi,

I wanted to add to this. My YouTube account is being throttled in addition to above and why streaming a video in a private window increases the streaming bit-rate. Google is just flat out throttling streaming on all my Google accounts. If I am logged in and stream a YouTube video (Firefox) the bit-rate is very low with buffering video and a bit-rate averaging in the 200kb/s (less then 10% of my connection bit-rate 3mb/s). If I am logged out of my Google account the video will stream at the maximum bit-rate will for my connection of 3mb/s. This is easily reproduced and quit obvious.

I can provide a video of this if needed. If your account is being throttle by Google you can log out and stream a video like above or use a private window. I have know idea why Google would be throttling the steaming bit-rate based on accounts but they are.

Rich,

Hi,

I have been putting all of this together at least on the account throttling side. Google is throttling my YouTube streaming based on my account (see above). The reasons are not entirely clear but what is clear is one of Googles apparent goals. I have a pretty unique situation as far as digital access goes. I live way out in a rural area and am pretty much dependent upon cell phone base access to the internet. But, I also have a very slow (Geo-location reasons) but available DSL connection to compare with when needed. This gives me some variety and options to access the internet.

Google will display a "Experiencing Interruptions?" pop-up link on videos that are excessively buffering a stream and clicking on that pop-up link will open a web page displaying connection information, like your current ISP, a graph of past video view traffic for that ISP and more. The ' graph of past video view traffic' is of note because it so closely parallels (pretty much exactly) the times I experience streaming bit-rate throttling when logged into my Google account. The upshot here is Google appears to be throttling the streaming bit-rate for a YouTube video to match the traffic experienced at the 'last mile' ISP connection point based on history and not actual conditions as logging out of my Google account stops the YouTube bit-rate throttling and videos stream at the actual ISP's maximum bit-rate.

So obviously, based on my account, Google knows who my ISP is, when the high traffic times are and how much and when to throttle video to match the ISP's traffic pattern. Throttling during these times is not likely to be noticed and could be even justified as some kind of efficiency. But it's not, because logging out of my Google account stops the bit-rate throttling exposing the local ISP (and YouTube) as capable of streaming at a much higher rate.

I have a second DSL connection and while staying logged into my Google account and only switching from my tethered cell connection to a DSL connection the YouTube bit-rate throttling will cease. This is also further evidence of throttling YouTube stream bit-rate based on the ISP connection/Google account as the DSL connection is less likely to experience traffic condition (in my area) that support masking YouTube stream bit-rate throttling.

All of this is easily reproducible worth a look into.

Rich,

Smoking gun?. . . Behold YouTube account throttling.!
https://youtu.be/rM8aHAXJnuU

This a video example I recorded today showing the above described YouTube account throttling. Not cool man,. . . not cool.

To verify the above, all you should really have to do is tether your cell phone to your PC. Make sure that it is the internet connection you are currently using. Stream a video from YouTube while signed into your Google account. Then sign out of your Google account, stream the same YouTube video and compare.

If you are effected you will have a very similar result to what is shown in the video above. One note here is Google seems to be very closely matching it’s throttling to the traffic history of your mobile ISP. So typically throttling occurs during peak hours say 1:00pm to 12:00am. I always use 360p 30fps for the best indications but try’em all.

When coupled with the user agent string associated throttling there is a lot to look into here. What metrics is this account throttling based on? Is it the web browser I use? Is it because of the use of a third party plugin like UBLOCK Origin? Is it a deal between the mobile ISP and Google to throttle streaming during peak times and potentially get-around no stream limit options like on my mobile account? It's very real and worth investigation.

I have an interesting thread going on the Level1Tech forum that may help shed a little light on this issue.

I posted this, further verifying Google account throttling but also exposing some of the method Google is using to throttle YouTube streams. Google may be using a temporal component to throttle YouTube video steams based on your Google account. Some great data here.
https://forum.level1techs.com/t/google-throttling-youtube-streaming-based-on-google-account-and-ua-string/166570/22

More here on YouTube account throttling when streamed in a 'Normal Window' vs a 'Private Window'.

"I can steam in the private window with no throttling and in the normal with throttling at the same time. Side-by-side! So crazy; one’s being throttled the other is not and with the same ‘live’ stream in the same web browser and plugins."
https://forum.level1techs.com/t/google-throttling-youtube-streaming-based-on-google-account-and-ua-string/166570/29?u=vidiot_x

Interesting stuff.

I wonder if you would encounter throttling when you're using chrome? (sign-in/sign-out/in private window) Per link you posted on comment6, it seems using Chrome (when signout) would also face the throttling problem?

That seems to me that Youtube probably has some internal problems on determining the throttling?

Flags: needinfo?(rrbetson)
Whiteboard: [media-youtube]

There are many open old bugs with "YouTube" in their titles, which makes it hard for users facing problems to find relevant reports.

Since OP never replied to you, and many things have changed since then, I believe this bug can be closed as "Incomplete" now.

Flags: needinfo?(alwu)

Redirect a needinfo that is pending on an inactive user to the triage owner.
:jimm, since the bug has recent activity, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(rrbetson) → needinfo?(jmathies)
Status: UNCONFIRMED → RESOLVED
Closed: 2 years ago
Flags: needinfo?(jmathies)
Flags: needinfo?(alwu)
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.