Readit News logoReadit News
Posted by u/stayml 3 years ago
A self-updating list of the most current useragentsuseragents.me...
Hi Hacker News!

I made a site which displays the most common useragents found on the web.

The site updates weekly with data sourced from the server access logs of another site I run in order to give an accurate picture of the devices and browsers being used on the web.

I do a lot of web scraping in my work and it's this group of people who I had in mind when creating the site.

The data is presented as useragent, browser, os, and relative percentage of occurence. It can be viewed as a table on the site or via json in the API.

Please let me know your thoughts or feedback and I hope you find it useful!

Thanks!

dj_mc_merlin · 3 years ago
First of all, good job on the project. I do not mean to be too negative, but this:

> The site updates weekly with data sourced from the server access logs of another site I run in order to give an accurate picture of the devices and browsers being used on the web.

If you only source data from one website, it is not an accurate picture by any means. Consider that other websites have different user bases. Your Firefox usage seems way too high for example, it's likely your other website is largely used by other technical people.

playingalong · 3 years ago
AFAICT they are not trying to provide current browser usage stats. They are only after having a list of popular browsers which is only a subset of the former. The last paragraph about scraping seems to indicate that.

So they only need what is a reasonable UA as of this week. They don't need what is the most popular one.

stayml · 3 years ago
Yes, this too. It should just be a -passable- sample of what's popular and seen on the web
jsnell · 3 years ago
I think it's worse than that. Based on quantization of the percentage field [0], I think the source data has to be about 925 requests and is including all browsers seen at least twice.

[0] I.e. look at how many browsers are bunched at 0.22, 0.32, 0.43, 0.54, 0.65 with no entries between.

kretaceous · 3 years ago
What about this?:

    1. Run a website like whatsmyuseragent.com
    2. Collect all user agents
    3. Show the list

aix1 · 3 years ago
That's certainly workable but, if the intention is to get a representative sample of Internet users, it'd be very biased.
stayml · 3 years ago
Thanks! And yep, fair comment, and I had noticed this as well even more so in last week's list. I have been thinking about how I could adjust the numbers in some way to counteract this or add another data source.
culi · 3 years ago
it's kinda weird how high Windows Firefox is on the list yet Firefox on mac doesn't make it in the top 50 at all... Do mac users just not use Firefox??
eitland · 3 years ago
On Mac I can use Orion so I don't use Firefox that much.

Why Orion?

1. It supports tree style tabs (note lower case, I mean the concept, not the extension) natively. (I think you can also use TST, the Firefox extension, as Orion strives to be compatible with Firefox and Chrome extensions).

2. It is not based on Chrome/Chromium, but rather on the built in browser engine on Macs.

That said I don't know if it shows up as Safari or if it shows up as its own.

TheBrokenRail · 3 years ago
Can we please just freeze the user-agent string all browsers use? (I'd prefer if we could remove it, but we all know that isn't ever happening due to all the old websites.) It's silly that it's almost 2023 and web browsers are still sending legacy-infested nonsense like "(KHTML, like Gecko)" and websites actually change behavior based on it! We have proper APIs for feature detection nowadays, websites shouldn't need to change behavior based on the browser anymore.
vikingerik · 3 years ago
Browsers still have weird behavior cases that aren't covered by feature detection. Here's an example from this year where I needed to change behavior based on the browser.

We have a single-page app with lots of dynamically created elements. We discovered a case where Chrome kept input focus on an element that was deleted and recreated, while Firefox didn't, resulting in different behavior if the user pressed Enter next after clicking on that element. (I don't know which of those is the bug, if either. We wanted the Firefox behavior so I hacked in a .blur() in the event handler for Chrome.)

viraptor · 3 years ago
But that doesn't require you to check the browser. You can force the same behaviour in every case, as you did with .blur() Neither feature detection nor user agent string matter here.
toast0 · 3 years ago
Feature detection doesn't work well for some bugs either.

How do you feature detect a crash bug? Or a leak? If you run the code that crashes, you've crashed the page and can't then run alternative code.

TheBrokenRail · 3 years ago
To me, that just sounds like an pretty good argument to improve feature detection. Freezing user-agents and improving feature-detection aren't mutually-exclusive.
Klonoar · 3 years ago
You would not use the UA for this - there are plenty of other safer detection techniques.
Joker_vD · 3 years ago
On the one hand, I absolutely agree, UA-dependent behaviour is generally a huge PITA. Some sites even refuse to return content if you don't set UA header in request, WTF is with that? Last time I checked, only Host header was absolutely required.

But on the other hand, there are certainly some cases where you want to know actual browser version to work around the critical bugs: e.g., Safari 13 (I think?) had broken their implementation of WebSocket compression for about a year: the byte stream becomes garbled after about 64 KiB of data transmitted, and the WebSocket connection breaks down. How do you work around that without UA string?

And on the third hand, we may have proper APIs for feature detection nowadays but — how many webdevs actually have heard of them? And willing to update their legacy codebases? I personally haven't although I'm not a webdev by any stretch. And when one tries to google how to e.g. support some feature in different browsers, there are lots of older pages/resources/answers telling how to do it with contents of the UA header.

ezfe · 3 years ago
Safari froze OS version, but they received a lot of pushback so they didn't freeze the browser version
cpeterso · 3 years ago
Firefox and Chrome froze the macOS version in their User-Agent strings, too, because jumping from “Mac OS X 10.15” to “Max OS X 11.0” broke quite a few websites’ UA parsing code that never expected a value other than 10.
khiqxj · 3 years ago
literally this. user agents are an obsolete feature (i considered it obsolete around 10-15 years ago) and whenever a new protocol includes it you already know its made by backseat networking "engineers". all user agents do is break more shit because people think they're smart or clever for modulating their machine behavior based on them (blocking, working around broken standards, etc)

"there exists a use case that wouldn't be possible to implement without user agents" is not an argument. it's not philosophically valid. its dead obvious that you do not consider the whole picture if you make this argument. why does that 0.1% use case matter? especially given that it's not officially supported. especially given that for the last 10 years, the likes of google have shoved everything _straight_ into the web specs when they started considering it an official supported use case? if you are doing something that's not an official supported use case, why do we need to have hacks to support it? obviously the least ecologically harmful solution is for your use case to not be supported. of course we are talking web here, where scope creep is infinite and the protocols do nothing well instead of one thing well.

this is the very problem with the web, that "it doesnt have a concrete use case maaaaan", "ill just add and take what i want as i go", "the web is just the web maaaan you need to think on my wavelength to get it". these people embedded in web actually unironically just make shit up as they go along. they literally operate on an oscillating wave where today feature set 1 is good, tomorrow feature set 2 is good, and the day after, (what is essentially) feature set 1 is good. arguing to have a user agent string is the same idea. this is in strict contrast to a well designed product that actually solves a specific problem, like Standard ML, or a good SQL implementation (disregarding the specification conundrum) or JSON or VGA or TCP.

bluesmoon · 3 years ago
Already happening. Client Hints are the way forward.
laudecum · 3 years ago
That’s weird. Didn’t Chrome plan to freeze that already years ago? Did they walk back?
bluesmoon · 3 years ago
Nope, this is already happened in Chrome. Client Hints are the way forward.
daneel_w · 3 years ago
"What browser are you?" -"I'm Firefox, WebKit, Chrome and Safari. One of those."
jcfields · 3 years ago
What’s so hard to understand about Edge pretending to be Chrome pretending to be Safari, using Blink pretending to be WebKit pretending to be KHTML pretending to be Gecko, all pretending to be Netscape Navigator? I’m the dude playing the dude disguised as another dude.
elxx · 3 years ago
At least everyone can agree that we're all really just standing on the shoulders of Mozilla. In a way, that's beautiful.
black3r · 3 years ago
The OS column comes off as a bit deceptive, because windows 11 still presents as Windows NT 10.0 and newer versions of macOS still present themselves as "Intel Mac OS X 10_15_7", even if you're on an ARM chip...,

If you're parsing this info into the OS column, you should probably display this info in there at least with a note, or something like "Windows 10/11", "macOS 10.5 or newer"

zerocrates · 3 years ago
I was going to say, having read the chart: a little surprising that Windows 11 isn't on here somewhere, wonder if it just advertises as 10.0 still. And apparently it does.

I wonder if we can get to a default User-Agent string for a browser where just none of the information it contains is accurate. Lying to say you're "Mozilla 5.0" is ubiquitous, now we've got lying about the version of the OS you're on and lying about the architecture... the only stumbling block is that browsers pretty much all admit who they themselves actually are and their version somewhere. So we need to get a browser that's lying about those things, too.

withinboredom · 3 years ago
Windows 11 is just marketing. It’s still Windows 10 version string in the code.
black3r · 3 years ago
Brave's user agent string is identical to Chrome's by default, unlike some other Chromium-based browsers like Opera or Edge, which also list their own name.
reshie · 3 years ago
it is so easy to spoof and really does not matter in usage except desktop/mobile. there are so many analytics out side that that it is indeed antiquated.
stayml · 3 years ago
Good point, thanks. I'll add that in
drusepth · 3 years ago
Always interesting to browse these lists. Figured I'd add this week's browser %s from a site I run to the thread for others interested in another source:

> Chrome 62.09%

> Safari 26.55%

> Edge 3.23%

> Opera 2.94%

> Firefox 2.64%

> Samsung Internet 0.88%

> Internet Explorer 0.54%

> Android Webview 0.24%

> YaBrowser 0.16%

Bias: site audience is mostly writers/authors

dj_mc_merlin · 3 years ago
I'll do mine:

> Chrome 44.36%

> Safari 22.40%

> Firefox 18.23%

> Edge 3.12%

> Samsung Internet 2.24%

> IE 0.38%

> Opera 0.32%

> YaBrowser 0.03%

Bias: German middle-upper class young families

edit: also in case someone is wondering about the Firefox numbers, Germans love Firefox. It's a thing.

Semaphor · 3 years ago
Hah, I saw FF at 18% and knew it would be German ;)

Here’s our (also German, photography market) Top 5:

39.78 % Chrome

24.39 % Firefox

20.11 % Safari

7 % Edge

2.44 % Opera

edit:

And just because there are essentially only 2 mobile browsers, here’s the Desktop-only list:

34.08 % Chrome

32.26 % Firefox

16.82 % Safari

9.61 % Edge

2.79 % Opera

jhardy54 · 3 years ago
That looks like it adds to ~91%, are you missing an entry or do you just have a very long tail of unique low-volume browsers?
userbinator · 3 years ago
I wonder how much of the Chrome is actually Firefox presenting itself as Chrome, because of the increasingly common practice of making sites that attempt to be locked to Chrome but are actually perfectly usable with Firefox if you just switch the UA.
zerocrates · 3 years ago
Probably very very little... there just aren't that many Firefox users to begin with, and the number that are going to alter the User-Agent is a tiny subset.

On your second point, I use a mix of Chrome and Firefox... can't remember the last time I ran into something that didn't work on Firefox. Is mandating Chrome really particularly common?

tuetuopay · 3 years ago
Sadly this kind of lockout is implemented client-side in Javascript. Either by actively nerfing the FF performance (if ff then bad perf), or by using APIs known to be bad on firefox. All of Google's websites are a perfect example of both actually (no proof needed, but I cannot believe it's only the second option).
TingPing · 3 years ago
WebKit also pretends to be Chrome on problematic websites. However this site wouldn't hit that logic for either browser.

Deleted Comment

quickthrower2 · 3 years ago
Funny if it becomes self reinforcing.

1. All the bots use the top UA to stay anonymousish.

2. This increases that UA share causing more of 1

3. Some of the bots are mission critical so humans complain if that UA is rejected so it is always accepted

4. Actual browsers decide to now just send the always accepted UA on any system to ensure the best experience, even as tech changes.

5. 100% of browsers send the 2022 UA top ranked string in 2032!

vzxvzxvestet · 3 years ago
> Actual browsers decide to now just send the always accepted UA on any system to ensure the best experience

Case in point. An issue with Vivaldi browser was reported at the beginning of the year where google search/gmail/etc would show broken pages with links and buttons not working:

> Search for example shows the carriage, but does not accept user input.

> Gmail opens the page, but does not respond to any clicks to open emails.

> Image search doesn't show the images and pretends it's stuck "loading"

IIRC the issue was resolved on Vivaldi's side by changing UA to Chrome's for google services.

jsdwarf · 3 years ago
The copy/paste python function looks nice, but why don't you publish this as a package on pip? Would allow for automatic updates through pip vs copying the function manually into my source code every n months.

Transparent license/copyright info is another advantage of a package.

gjvc · 3 years ago
"I really would like you to contrast that with what you have to do with HTML on the Internet. Think about it. HTML on the Internet has gone back to the dark ages because it presupposes that there should be a browser that should understand its formats. This has to be one of the worst ideas since MS-DOS."

-- https://www.youtube.com/watch?v=oKg1hTOQXoY&t=1415s