https://www.brow.sh/docs/introduction/#design
> To save having to parse every single character’s colour and visibility, Browsh uses a custom uni-glyph fullblock font, where every character is: █. Parsing the computed styles for an element is computationally expensive. So instead, to get the colour of a character, the frame builder inspects the pixel value of the page’s screenshot that corresponds to the charcter’s position. This also has the added benefit of being able to detect a character’s visibility without parsing CSS – if the pixel value changes colour when showing and hiding text, then the character is visible. There are of course edge cases, but their infrequency means that dealing with them is still cheaper than CSS parsing.
Uses Firefox to parse CSS, render the page -> processing screenshots of the results "is still cheaper than CSS parsing"
I'm the dev of Browsh. I'd like to point out that it's completely free and easy to remove the nag, you just change the config file, instructions are here: https://www.brow.sh/donate
Also, as other people have pointed out in this post Browsh has some usability issues, I would love to find the time, therefore time off normal work, to improve Browsh, which is totally possible BTW. In the early days I actually received a significant amount of donations, but these days not enough.
> What server costs?
I looked it up to find out: https://www.brow.sh/donate/
He runs a service that reduces the high bandwith use (which people have pointed out as a shortcoming).
> We appear to have different definitions of what constitutes a nag.
We do. I associate it with popups or big banners that take your attention off whatever task you are trying to perform. Not annoying = not nagging.
> You seem to be implying that I'm disparaging reuse in open source projects. This is absolutely not the case. I personally just think it seems weird to be asking for money when you're leveraging another project that did the overwhelming majority of the work.
Because they provide a compelling reason for why the project could benefit from money, I don't find it weird.
It only uses the headless mode of Firefox, not the GUI (duh). Is it possible to compile Firefox wherein the GUI bits are stripped out, leaving the rest (including headless mode) intact? I'd imagine that would remove the necessity for GTK+ 3, at the very least.
EDIT: The stated purpose of Browsh is to reduce bandwidth usage, not storage space. From the homepage: > Its main purpose is to significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs.
Sounds like brow.sh. Using it, you can run Firefox on a beefy server and render it to a text terminal. Good for plebs with only 2-4 cores and 8GB of RAM; that's not even enough to run two Electron apps, so web browsing is out of the question. Hardware like that is only useful as a door stop or a thin client in $current_year.
I disagree. There is much respect for Lynx. Enough that someone has created a new, HTML5-compatible text browser call Browsh.
Respect. Everybody mash that F key (for some unknown reason.)
Even better, some real browsers that can run in a terminal:
Lynx - a text based webbrowser. Keeps the render simple, as it is all text. I don'tthink it supports any stuff like images and HTML5, but that also makes it very fast. I haven't played around with it yet.
Brow.sh - A browser that uses Firefox as backend. It converts the rendered page to text. This means that it can render anything that Firefox can render, even video's! I think it also supports Firefox addons. One of the reasons why you would want to use this is when you have a very slow connection. The Firefox backend can run on a server somewhere else. This way, you can SSH into the system, meaning you can browse the web with a connection of only a few kb/s.
I know that his has already been solved, but
> that displays a text-only version of the site
For that there's also Browsh. Don't know if it bypasses any pop-ups, just thought I'd link it here in case some of you are interested.
Oh wow, thank you! I don't know if you can see it (Google has wrongly marked my domain as a phishing attack), but my donations options are here: https://www.brow.sh/donate/
I have https://www.patreon.com/browsh and Bitcoin: 1J151HVLhprhs8wfKB8xwBgANAGawAfudh
When I have limited mobile data I use JuiceSSH on Android to connect to connect to my server ($2 VPS) with Mosh (reduces latency and saves data) and then I can extract the audio from stuff I want to listen to on YouTube (podcasts etc) with youtube-dl and ffmpeg, and browse the web with w3m. JuiceSSH translates swipe into scroll and w3m handles scrolling so it works great together :)
https://www.brow.sh/ on the other hand, actually renders the web page, and converts the image to text (with optional text-based graphics and colors!) Live demo is down but homepage has a nice screenshot / video, and it's open source so you can run it on your own server. This one works both thru the terminal and the browser (so it has a text-only web proxy mode!) browsh demo vid
There's this too, but I haven't had great luck with it:
https://www.brow.sh/docs/introduction/
https://www.ostechnix.com/browsh-a-modern-text-browser-that-supports-graphics-and-video/
Example using browsh
:
https://www.reddit.com/r/unixporn/comments/bucqm9/i3gaps_when_all_you_use_is_terminals/
There's also https://www.brow.sh/ which came out a few days ago which hooks into a remote computer running firefox and sends it over ssh, which depending on what the terminal session supports can be pretty and useful. Still feels more like a modern browser though, complete with slower loading than lynx but with full javascript and css and modern websites, very compressed images though.
Browsh works very well with modern websites, see this video. However, it uses full blown Firefox under the hood. What if there was more lightweight modern text-based browser?
Honestly you can't really have a decent solution. IMHO the internet is broken and inefficient. Enable swap like other have said to avoid lockups.
You could consider https://www.brow.sh. Install and have it enabled on a remote VPS for example and use ssh or mosh to have a minimal browser experience.
Also I can recommend using a email client instead to save on browser overhead.
well, current state :
TL;DR : there are multiple ways to proxy traffic, and i've yet to pick one :
honestly at this point i'm just waiting to see whether people are interested or not, because cross-compiling is awful :/
EDIT : discovered this on the NewtonTalk mailing list. might be useful!
I'm not the author or anything like that, but this looks amazing.
"Browsh is a fully-modern text-based browser. It renders anything that a modern browser can; HTML5, CSS3, JS, video and even WebGL. It can be used from a terminal or from within a normal browser. Its main purpose is to significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs." -- From https://www.brow.sh/
It seems to utilize Firefox for grabbing pages and then can render them in your TTY/console, including playing videos from places like YouTube.
This was made by viewing this subreddit with Browsh through Cool Retro Term using the IBM DOS profile with bloom and RGB shift visual effects turned off (they make it hard to read).
There's browsh, which uses a headless Firefox to render the pages and converts them to text and ANSI escape codes, and it supports images and JS. Can't automatically crawl websites though.
Text-mode web browsers that don't break the web. Hmm... Actually, no. More participation in the gopher:// and gemini:// protocols, generally, but especially by big media (news) outlets. That's what I'd like to see.
^---- That's not software, though.
How about a text-mode web browser that parses a site, but only presents to the user a readable output, stripped of js and other active components.
What if we had https://www.brow.sh/ but it only ever provided the Readability output, as plaintext, to a normal text mode browser such as lynx or w3m ?
Aside what has already been mentioned about w3m image handling being a hack, you may want to try browsh for a weird Firefox terminal experience. It's not light, but it's as good as terminal browser can get, probably.
As far as accessing the web, there's several browsers that can run from just a TTY
Most notably lynx and w3m
An interesting project as well is "browsh" https://www.brow.sh/ though I'm not entirely certain what that requires in terms of dependencies to function. You host it on a different machine which you access through ssh
not a data compressing browser, but I found brow.sh quite useful when I have slow connection (in my campus's basements). All you have to do is simply ssh (also with mosh) into your server and run the container. It displays website correctly for text-based websites and saves many data.
> Headless seems a solution, until they ban it.
The idea of headless is that you can't distinguish between it and a real browser. In the case of firefox, the headless browser is just regular firefox with a command line argument to not display the window and allow remote control instead.
Browsh uses firefox this way and has a command line switch to make the firefox window visible.
Well, from what I can tell, browsh looks to be pretty good. (haven't tried it myself yet though.) Not sure if using U+1D9C would look perfect, but what I was trying to point out was that it's Just Another Unicode Character which tends to work well enough even in fairly odd/rare/unexamined contexts.
Also not sure how it would affect alphabetization.
There is browsh, and elinks. You can even SSH into a browsh demo, "ssh brow.sh" with no auth.
https://www.brow.sh/ So you can definitely still browse the modern web from the console.
Where was this last week when I learned all this permissions stuff hard way? A side note; If you are trying to use gmail api on a headless server, authentication requires a browser with javascript support and only one I could find actually working on linux without installing a Desktop environment was Browsh. I hope this saves some headaches.
I believe lynx doesn't really evaluates css beyond maybe showing and hiding stuff.
In that case it's important to keep the HTML in order. For example I put all modal dialogs at the very bottom.
If you want a better terminal browser experience: https://www.brow.sh/
Not quite what you're asking for but you might find this interesting if you haven't seen it before: https://www.brow.sh/
You can even watch youtube videos over ssh in ascii.
Hey, ich bin's der Manu (du weißt schon). Wie schaffst Du das eigentlich, dass Du nur sowenige Pakete installiert hast? Ich bin fast immer über 1000 und hab kaum mehr als einen Browser und Editor installiert. Btw kennst du schon https://www.brow.sh/ ?
This is quite a complicated story, but basically Browsh installs a custom webextension that uses JS to parse the text on a tab and a <canvas>
element to take basic screenshots to capture the graphics. There's a more detailed explanation here: https://www.brow.sh/docs/introduction/