
You can bypass YouTube ads by adding a dot after the domain - ashitlerferad
https://www.reddit.com/r/webdev/comments/gzr3cq/fyi_you_can_bypass_youtube_ads_by_adding_a_dot/
======
gruez
Tangential rant: I hate it when sites ask for your domain name (eg. for
setting up hosting) and say that they want the "fully qualified domain name",
but they don't actually accept the FQDN. eg. they reject "www.example.com.",
but accept "www.example.com" (without the trailing dot). But the FQDN by
definition includes the trailing dot.
[https://en.wikipedia.org/wiki/Fully_qualified_domain_name](https://en.wikipedia.org/wiki/Fully_qualified_domain_name)

~~~
amatecha
Reminds me of sites not accepting "+" in an email address, even though it's a
completely valid character to use before the "@".

~~~
u801e
Some websites accept them when creating an account, but not when trying to log
in with that account.

~~~
firethief
I encounter that a lot with passwords. Amazing how many websites break in
weird ways when your password manager throws in random symbols...

~~~
wyattpeak
This happens with AWS, which I find just incredible. It'll silently accept a
password when changing, but fail when you try to log in.

I think in that case it might a matter of length, rather than symbols, but
I've never put in the effort to pin down the problem exactly, now that my
password manager settings work.

~~~
jjoonathan
That sounds pretty typical of AWS though.

Like, I caught them doing the "ask for FQDN but reject FQDNs" a couple of
weeks ago in either Route53 or something immediately adjacent (i.e. where
people who know better should have been involved), yesterday SageMaker stopped
launching kernels because of a "known issue" (don't worry, it doesn't meet the
definition of downtime though), and today I had to diagnose an unresponsive
control panel by opening the console and digging up a REST error response that
they didn't bother to handle in any way.

Everything about AWS is not merely broken and half-assed, but fractally so, so
that even after using a service for years you are still uncovering severe
caveats and awkward limitations. Password validation traps fit that pattern to
a T.

------
unnouinceput
Ads? On desktop? not in a million years with uBlock Origins. I forget how
shitty internet is actually since several years now. Occasionally a new client
doesn't have and I'm reminded of it, but it takes all of those 30 seconds to
install it and no ads baby.

~~~
tomp
Actually I just started getting ads again, with uBlock Origin, both in YouTube
and in newly-redesigned Facebook. I wrote a simple script that removes FB ads,
but I need to "productivize" it and make sure it auto-loads...

~~~
petargyurov
Facebook's "sponsored" content is a disgusting mess of <span> elements with
autogenerated IDs in order to bypass ad-blockers. How did you get around it?

~~~
lini
It's a cat and mouse game. Every couple of months FB tries a new version of
the HTML layout with slightly changed elements and every time someone writes a
CSS selector that manages to find the appropriate tag for the sponsored story
and hide it. Currently with the new FB redesign it's:

div[data-pagelet^="FeedUnit"]:has([role^=button]:has(> span:has-
text(S)):not(:has-text(1)):not(:has-text(2)):not(:has-text(3)):not(:has-
text(4)):not(:has-text(5)):not(:has-text(6)):not(:has-text(7)):not(:has-
text(8)):not(span:has-text(9)):not(span:has-text(w)))

~~~
coryfklein
I find this so crazy! It says "Promoted" right there. I can use my browser's
inspector to click on the element to select the div and then delete it.

Is there no simple way to accomplish the same in a browser extension without
bringing in some crazy AI solution? Just read the webpage as it is rendered to
an actual human, identify the x/y coordinates of the element, pass that to
Firefox/Chrome/Safari's element selector, and delete. Voila!

I'm sure there's a very good reason why this exact solution just _doesn 't
work_, but I'd love to hear it explained, because it _seems_ so simple to me.
Then again I'm a backend guy, and I just don't even know frontend.

~~~
roryokane
> Just read the webpage as it is rendered to an actual human

Humans read web pages using their vision. So what you’re proposing is to look
at the final rendered image of text instead of the DOM tree. The only way to
do that would be to perform OCR
([https://en.wikipedia.org/wiki/Optical_character_recognition](https://en.wikipedia.org/wiki/Optical_character_recognition))
on a screenshot of the whole web page. This would be possible, but I think
nobody’s tried because it feels overly complicated, and many OCR libraries
can’t understand text 100% reliably, not even computer-rendered text. Also
remember that the OCR library would have to run in JavaScript. Would it run
fast enough to block the ad before the user sees it? Would it annoy the user
by spinning up their computer’s fan?

> identify the x/y coordinates of the element

This wouldn’t be too too hard to implement using
`document.elementsFromPoint(x, y)`. This part isn’t the problem.

~~~
abrichr
You could replace OCR with a CNN trained to predict bounding boxes of ads. You
could generate the training data by looking at the visual diff between a page
rendered with an ad blocker enabled, and the same page rendered with the ad
blocker disabled.

~~~
grenoire
I don't want a badly trained CNN accidentally removing relevant content from
the page, though. The CSS selector solutions are deterministic, and you can't
just throw ML at every damn thing you see.

Also, the problem with OCR/CNN solutions are that you have to render ahead
(i.e. parts of the page that you haven't scrolled to yet) to remove ads
without being disruptive to the website's content flow.

------
jdright
This remembers me a bug I came across while developing a game for an <old game
console here>.

Implementing a network feature, I had to poke a service server. But the OS DNS
resolver returned broken results and sometimes hanged or crashed the system.

After a lot of head scratching and exchanges with the first party support, we
found the issue to be a misread of the cache line of the CPU, delivering
broken data to the OS and causing havok.

The problem was that as the cache line was 32 bytes, if the url being resolved
was exactly 32 bytes long, it would trigger this edge case (probably the OS
missing the ending null character).

The first party support said there was nothing they would do to solve this and
suggested creating an DNS alias, but the domain was a third party address
specific per project which in our case with our project codename was 32 bytes,
they also were unwilling to modify or create aliases.

My solution was to add a dot in the address and this fixed it, as now the
address was 33 bytes and the CPU fetched two cache lines. The first party
technical support was surprised by the fix and called it "sneaky ;)"

Fun times.

------
smaili
For those wondering why:

 _It 's a commonly forgotten edge case, websites forget to normalize the
hostname, the content is still served, but there's no hostname match on the
browser so no cookies and broken CORS - and lots of bigger sites use a
different domain to serve ads/media with a whitelist that doesn't contain the
extra dot_

~~~
gorkish
I would disagree that this is an "edge case;" it's a rather fundamental
feature of DNS that is relied on every time a record from one domain
references a record in another domain. The dot at the end fully qualifies the
name and makes it unambiguous. Without the dot, unqulified DNS names are
treated as members of their parent SOA. This is why when creating CNAME or NS
or MX records that reference a foreign domain, you have to specify a dot at
the end, and when you don't they dont resolve as expected.

So a machine with a search domain of 'foo.com' looking up 'www.google.com'
should ideally seek the record for 'www.google.com.foo.com' first. Conversely,
looking up 'www.google.com.' is more specific and returns google's ip even if
'www.google.com.foo.com' were to exist.

The reason it's not common is because all DNS client behaviors have been
modified for convenience to avoid this; in basically every resolver any query
containing at least one dot is automatically treated as if it were a fully
qualified name. So behind the scenes, the DNS resolver is caring very much
about the trailing dot and adding it to nearly every query; it's just
typically hidden from users.

~~~
robbrown451
It's an edge case from the point of view of the people who develop the ad
serving software. If 99.9 percent of urls don't have that dot at the end, then
it's an edge case.

------
darth_avocado
Goddamnit, why'd you have to out the secret? Now everyone's going to plug it.
T_T

~~~
umvi
Yeah, never put something like this in a LPT unless you want it immediately
fixed.

Like most nice things, it gets ruined once everybody starts using it.

~~~
not2b
Looks like the NY Times already fixed it.

------
userbinator
You can also bypass YouTube ads by watching the videos using a different
player, like VLC.

(I find it ironic that their "polymer" redesigned site is also ridiculously
slow and bloated, yet my computer, which is many years old now, has zero
problems playing the videos themselves; somehow it takes more resources to
render a UI --- which I could probably make easily in static HTML --- than to
play an HD video...?)

~~~
xwowsersx
You could easily make YouTube with static html? For each of these as they
currently exist, how would you implement them in static html: comments,
liking, subscribing, video annotations, livestream chat, etc?

~~~
userbinator
_comments_

Comments are essentially a tiny subset of the features of an Internet forum,
which is definitely possible with static HTML. (Some things come naturally
with that too, such as pagination so you can continue reading from exactly
where you left off without the cursed O(n^2) of "infinite" scrolling.)

 _liking, subscribing_

HTML forms.

 _video annotations_

I thought annotations disappeared long ago?

 _livestream chat_

That's one which could do with some AJAX, but...

[http://blog.johnkrauss.com/html-only-live-chat-No-
JS/](http://blog.johnkrauss.com/html-only-live-chat-No-JS/)

I remember using a few in the early 2000s which didn't require JS either, and
probably worked on a similar principle.

~~~
read_if_gay_
> cursed O(n^2) of "infinite" scrolling

What exactly is that?

~~~
userbinator
Every refresh, accidental or otherwise, forces you to start from the beginning
and scroll through comments you've already read.

------
easterncalculus
In a similar tangent, if you want to bypass age checks without logging in, you
can use the embed link for a video.

For a link like this (this one is not actually age restricted or NSFW):

[https://www.youtube.com/watch?v=ScVi_L817ec](https://www.youtube.com/watch?v=ScVi_L817ec)

Just visit this instead:

[https://www.youtube.com/embed/ScVi_L817ec](https://www.youtube.com/embed/ScVi_L817ec)

This one is a lot more interesting, though. I guess I assumed that sites
wouldn't even respect the FQDN like that, but it's definitely interesting to
see a changed site returned instead.

~~~
userbinator
Unless the uploader has also disabled embedding, in which case there is a way
which I forget at the moment since I usually don't watch YouTube videos on
their site.

------
buzzert
Gotta throw this out there; if you hate ads but actually like YouTube and want
to support YouTube creators, I’d highly recommend YouTube Red. Totally worth
it IMO.

~~~
monadic2
Youtube Premium is quite expensive for paying to remove ads and to download
videos on mobile unless you’re also willing to use Youtube Music as your
dedicated streaming service (and last I checked on the desktop there wasn’t
even a way to disable the video part, which is an absolutely colossal waste of
bandwidth).

~~~
covercash
It’s insane to me that they don’t include Premium with a YouTube TV
subscription. I’d immediately switch from AT&T Now (formerly Directv Now) if
they included Premium, even as a discounted add on.

~~~
t-writescode
YouTube TV started out as something that was almost worth the price; but, yes,
it's a service that, IMO, _combined_ should be max $45 a month. At $60 a month
for both, it's just absolutely not worth it.

------
smashah
Get YouTube premium. You won't regret it.

The added benefit of listening to audiobooks on YouTube while doing other
things on your phone make it worth it.

YouTube premium = no ads, Spotify + audible + supporting creators + more
productivity on mobile (pip mode). Also you can download videos for a
flight/later.

~~~
ben-schaaf
Google doesn't get to dictate what/how their webpage works. Firefox on Android
can run extensions like "Video Background Play Fix" to let videos play in the
background. Youtube-dl is a great way to download videos for watching later.

I prefer supporting creator directly.

~~~
the_pwner224
If you're on Android, NewPipe is a lot better than hacking extensions into
your browser. Plus FF will add a convenient button in the address bar to open
a youtube page in NewPipe.

------
chadlavi
Very neat but now I'm sure they'll fix it and close the loophole

~~~
gruez
or you know... install ublock origin

edit: add "origin" qualifier

~~~
Avicebron
The amount of people I know who don't use adblocker/ublock etc is ridiculous.
Many are non-technical, but it's not any more difficult than installing an app
on your phone. Does anyone know if there is some philosophy to this I don't
understand?

~~~
scottmcf
I've had arguments with friends on the topic who see this as stealing content
without paying for it.

~~~
rajup
Well it is an argument that has a fair bit of merit. How exactly do you expect
YouTube or the creators to pay their bills? Don't feel like watching ads? You
can subscribe to YouTube premium if you dislike ads so much.

~~~
kalleboo
Yeah I subscribe to YouTube Premium for this reason. I'd also subscribe to
"AdWords Premium" or whatever to support general content sites if it was an
option.

~~~
icebraining
There's something like that:
[https://contributor.google.com/v/beta](https://contributor.google.com/v/beta)

------
meroes
YouTube Vanced for Android removes all in-video ads in case anyone doesn't
know.

~~~
grawprog
And newpipe lets you download videos, stream and play them using an external
audio or video player, has a built in background and popup player, lacks ads
and is open source.

~~~
oehtXRwMkIs
And is on F-Droid. Also supports other services including PeerTube. I probably
forgot other useful features. Always irks me a little when people recommend
Vanced.

~~~
livre
> And is on F-Droid

I use F-Droid whenever I can but only for NewPipe I started to actively avoid
it. YouTube occasionally changes it's HTML and breaks NewPipe, the app starts
crashing and while it usually gets fixed quickly and the apk gets uploaded to
GitHub, F-Droid still takes weeks to update it. Last update was about 2 weeks
late, that's when I uninstalled the F-Droid version and started installing it
directly from the GitHub releases page. Unfortunately for time critical bug
fixes F-Droid still has a lot to improve.

A useful feature you forgot is the AMOLED theme. Also subscribing to channels
without having to use a YouTube account.

~~~
sickmate
You could add this repository to get the latest github releases:
[https://archive.newpipe.net/fdroid/repo/](https://archive.newpipe.net/fdroid/repo/)

Some ongoing discussion on this issue thread here.
[https://github.com/TeamNewPipe/NewPipe/issues/1981](https://github.com/TeamNewPipe/NewPipe/issues/1981)

~~~
livre
Thank you very much for that! I didn't know they had their own repository.

------
Zealotux
It'll probably be "solved" by the end of the week now.

~~~
hckr_news
Whom does this fall under? SRE?

~~~
hidiegomariani
Probably SDE. It must be a CORS config somewhere in the code/config

~~~
lrem
Having been an SRE in Google for 6 years now... I don't actually know what
does SDE stand for :D

~~~
shric
It stands for Software Development Engineer, but Google use SWE instead, as
though "software" is two words.

------
oh_sigh
[https://tools.ietf.org/html/rfc3986](https://tools.ietf.org/html/rfc3986)

> The rightmost domain label of a fully qualified domain name in DNS may be
> followed by a single "." and should be if it is necessary to distinguish
> between the complete domain name and some local domain.

------
gguevaraa
Layluh [0] removes ads on videos, along with literally everything else so all
you're left with is an iframe (shameless plug).

Use it like outline.com, so just put layluh.com in front of any YouTube video
(layluh.com/URL)

[0]:
[https://www.layluh.com/watch?v=izxXGuVL21o](https://www.layluh.com/watch?v=izxXGuVL21o)

------
sbmthakur
I am being redirected to _youtube.com_ when I try this in a Firefox window
where I am logged in with my Google account.

It worked as explained when I tried it in a private window.

------
hackcasual
Also used this trick to get around my high school's internet filter.

~~~
JMTQp8lwXL
I have seen filtering of only http, but not https.
[https://facebook.com](https://facebook.com) was accessible, for example. But
that was back when https wasn't omnipresent, either.

~~~
kn0where
Back in the day, my high school used OpenDNS to block all kinds of sites. Of
course, setting 8.8.8.8 on your laptop got around that trivially. They also
had separate WiFi networks for teachers and students, and because they didn’t
pay for a fast enough connection, the student WiFi was always unusably slow
whereas the teacher WiFi was less used and quite fast. They also didn’t use
Radius or anything, just WPA personal, so the teachers all shared the same
WiFi password. Since the student WiFi was unusable and the seniors needed to
be able to work on their college applications, they were given the teacher
WiFi password, and then they would share it with some of us in the lower
grades and it would spread from there until the admin changed the password
again.

There were also Ethernet jacks in the walls of each classroom by the teacher’s
desk. I had a free period in a classroom where the teacher didn’t use the
Ethernet, so I would plug in my laptop and torrent at high speed. High school
sucked, but moments like that were satisfying.

~~~
hadrien01
In my school, printers had reserved IPs that didn't need to go through the
proxy. And because they were more reserved IPs than printers, we simply put a
router with one of those IPs and had access to all of the Internet at greater
speeds.

------
benmmurphy
I'm surprised adding the '.' after a website works as well as it does. I would
have expected lots of broken vhost configurations because the browser sends
the '.' at the end and I would have expected TLS errors from some clients.

For example if you use erlang you will get a TLS error like:

'TLS client: In state certify at ssl_handshake.erl:1774 generated CLIENT
ALERT: Fatal - Handshake Failure\n {bad_cert,hostname_check_failed}'

I don't think it is clear from the rfc6125 what TLS clients should be doing.
However, if foo.com. resolves the same as foo.com then it makes sense that a
certificate for foo.com can be used for foo.com. and vice versa.

------
Karuma
Using Firefox on Windows, doing this this will create a folder in
"%APPDATA%\Mozilla\Firefox\Profiles\\[yourname]\storage\default\https+++www.youtube.com."
which can't be deleted at all without some kind of hack.

~~~
rmellow
I would really appreciate an explanation for this:

(1) why does this get created

(2) why it's not deleteable.

------
joering2
Its even better than that - once you enter any "extra dot" youtube link, all
other youtube links on that page will have dot as well :)

~~~
nawgszy
Makes sense that they'd use relative to / urls, no? Otherwise how could you
handle youtu.be versus youtube.com versus...

------
oriettaxx
Great! and you can redirect automatically by using a redirect browser
extension/plugin :)

I just set it up with my favourite:
[https://einaregilsson.com/redirector/](https://einaregilsson.com/redirector/)

* Include pattern: ^[https://www.youtube.com/watch\?v=](https://www.youtube.com/watch\\?v=)(. _)

_ Redirect to:
[https://www.youtube.com./watch?v=$1](https://www.youtube.com./watch?v=$1)

* (check "regular expression)

you can check it's working by adding, e.g.

* Example URL: [https://www.youtube.com/watch?v=dfdsfasd](https://www.youtube.com/watch?v=dfdsfasd)

(I see the code is not rendered well here, see
[https://pastebin.com/LVqWMgAM](https://pastebin.com/LVqWMgAM) )

~~~
oriettaxx
(you can also select all checks in the advanced option)

------
s_gourichon
Reminds me of a solvent metaphor for adblockers.

Ads on web pages are like stains on a surface.

Browsing with ublock origin is like cleaning a surface with _alcohol-based
product_. It worked for a while.

Cat-and-mouse game tends to yield ads that bypass these. Like sticky dirt that
won't go away with alcohol.

Enters uMatrix. Browsing with uMatrix is like cleaning the surface with a mix
of stronger solvents, like _acetone_. It's much more effective, but it will
more or less ruin the surface/web page in many cases.

Tuning uMatrix allows to find a mix that works. For geeks that are okay with
contributing, or just clicking on colored cells in a grid, uMatrix is best.
Like wolves, ads bite the laziest part of the flock, leaving the strongest
clear.

------
signaru
Perhaps Youtube shows differently where I am, or perhaps the ad block
extension I have installed is helping. But I also just noticed that Youtube is
now occasionally showing skippable ads before starting the video.

I actually find the workaround quite interesting. But for me, for now, it is
just simpler click skip than to type a dot on the URL.

~~~
sbarre
Yeah skippable ads is a reasonable compromise in my mind.. Show me an ad, but
if I'm not interested, let me skip it after 4-5 seconds..

I can live with that in exchange for otherwise free content.

~~~
signaru
It's different for me.

The youtube page just starts with a whitened stationary placeholder where the
video should play. It has a "skip" button and I don't have to wait 4-5 seconds
(watching an ad video).

This is probably Youtube simultaneously testing different stuff to different
people. The version I am seeing is not as bad.

Previous ads where I have to wait 4-5 seconds are already dealt with by my
installed ad blocker.

------
seddin
Now we need a trick for the mobile app too

~~~
ship_it
Is's called Vanced.

------
mandeepj
It did not work on this - [https://www.wsj.com./articles/zuckerberg-
lieutenant-returns-...](https://www.wsj.com./articles/zuckerberg-lieutenant-
returns-to-facebook-a-year-after-departure-11591899761)

------
laszlokorte
Seems to fixed already. If I include the trailing dot I get redirected to the
youtube homepage.

~~~
ghostbrainalpha
Still working for me here.

------
ezoe
So, adding a dot after the domain FQDN and identical but it cause the cookie
mismatch and CORS. If we have a browser extension that force CORS for any
domain including the identical one, does it work as a powerful adblock?

------
the_arun
I use Brave browser to get rid of ads from most of the sites including
youtube.

~~~
bobsoap
...and you get Brave's MITM attacks in return, like URL hijacking for their
affiliate links and more fun stuff.

------
StavrosK
This is great! Now let's just hope nobody who works on YouTube reads HN.

------
SubiculumCode
How come HN doesn't think I am logged in when I go to '
'[https://news.ycombinator.com.'](https://news.ycombinator.com.') ?

------
nmstoker
On mobile you can post a YouTube video in WhatsApp and it won't show you ads
when you view it

------
subsubzero
Also fun fact, get around bloomberg's paywall on their news site by using this
trailing dot trick:

Free of paywall:
[https://www.bloomberg.com./news/articles/2020-06-10/second-u...](https://www.bloomberg.com./news/articles/2020-06-10/second-
u-s-virus-wave-emerges-after-state-reopenings?srnd=premium)

paywall:
[https://www.bloomberg.com/news/articles/2020-06-10/second-u-...](https://www.bloomberg.com/news/articles/2020-06-10/second-
u-s-virus-wave-emerges-after-state-reopenings?srnd=premium)

~~~
peterburkimsher
Thanks for the info! Sorry to say it didn't work on CouchSurfing.

------
DarmokJalad1701
Same trick can be used to bypass paywall on nytimes.

------
wnevets
I'm sure google will fix it now

------
fwip
This also works to bypass the NYT paywall.

~~~
MayeulC
IIRC, blacklisting the <something>-graphql subdomain is enough to evade
private window detection. Can be done easily with uMatrix, a DNS or a hosts
file.

------
borismus
Not for long

------
MintelIE
This is great, everybody hates Youtube's ads. They are incredibly loud and
annoying.

~~~
ianlevesque
They are. But they offer an alternative
[https://www.youtube.com/premium](https://www.youtube.com/premium) \- what
more do you want?

~~~
Enginerrrd
It's too much for the value for me. $12/mo. The problem is _everyone_ on the
web is like this. I'd be paying $300+/month if I subscribed to every service
like that when I want to occasionally watch a video, or read 1-2 articles a
month from a bunch of different sources. It doesn't work, I'm getting ripped
off compared to the amount advertisers are spending to show me ads. Why do I
have to be the one who gets screwed?

I'd MUCH rather just have a system where I can just choose to either get ads,
or to debit the amount the advertisers spent to show me an add to get an ad-
free experience on a per-article or per-video basis where the provider (or
host) isn't trying to bend me over compared to the deal they offer
advertisers.

The problem is that would "disincentivize engagement" and no one would ever
offer such a thing. Well, ok then, screw you, I'll use adblock and you get no
benefit.

~~~
AnthonyMouse
> The problem is that would "disincentivize engagement" and no one would ever
> offer such a thing.

It's actually a slightly different problem.

Advertisers want the people who are willing to pay for stuff.

If the advertiser pays $0.03 to show you the ad and you could get out of
watching it by paying the same amount, the only people watching the ad would
be the most aggressive of cheapskates who never buy anything. Nobody wants to
advertise to them, so there would be no point in even trying to sell
advertising. But that's not even the problem.

The problem is in order to collect $0.03 you would need a functioning
micropayments system that both doesn't charge prohibitively high transaction
costs and doesn't invade everybody's privacy by de facto giving the bank your
browsing history.

~~~
jakear
It’s always seemed to me that this would be fairly easy by just setting up a
“wallet” model. I.e fill up wallet with $20, browser extension has a “tip”
button where your wallet gets deducted however many cents and the site owner’s
gets added the same amount (challenge is identifying the site owner). You re-
up every so often, perhaps automatically, and everyone goes on their merry
way.

~~~
AnthonyMouse
Then people pay for things and don't like what they received. The cardholder
wants their money back, and you have two choices.

Choice one, you have a dispute resolution system which costs money which
requires high transaction costs, and can't have $0.03 transactions. Choice
two, you don't, the user gets mad, disputes the charge with the credit card
company and then the browser extension goes out of business due to
chargebacks.

What you need is something that works like cash. Money is exchanged for goods
and services, the end. If somebody steals from you or rips you off, your
recourse is by recovering it from the person who ripped you off, not the bank.
If that makes people stop doing business with shady people using this payment
method, fine. Still works for the local newspaper.

~~~
jakear
Or just make the tips refundable for a short time period with no formal
process (submit a short sentence about why for later review in case of abuse
suspicion maybe). If people abuse the system, ban them (eta: identity banning
should be pretty easy given you need to provide a credit card) If sites
frequently get refunds requested, disable the app for them.

~~~
AnthonyMouse
> Or just make the tips refundable for a short time period with no formal
> process

Then you get the fraud the other way. People get content and then ask for a
refund.

> If people abuse the system, ban them

So now you're back to needing an expensive dispute resolution process.

> If sites frequently get refunds requested, disable the app for them.

Which punishes the sites who are the most common victims of buyer fraud.

There are three options. Option one, dispute resolution process, high
transaction costs. Option two, caveat emptor, no refunds. Option three, caveat
venditor, totally unconditional refunds.

And option three doesn't really work either, because if readers are anonymous
they could all ask for a refund with no consequences, but if they're not it's
a privacy problem. So what you really need for small transactions is option
two. Which isn't really a problem for small transactions, because they're
small -- if somebody rips you off to the tune of $0.03, whatever, lesson
learned, don't do business with them again.

~~~
jodrellblank
> if somebody rips you off to the tune of $0.03, whatever, lesson learned,
> don't do business with them again.

They won't need you to do business with them again. 10k viewers being ripped
off is $300, and let the site fail, onto the next domain to do it over again.

Now it's the email spam problem - every site gets to rip you off $0.03, you
add them to your blocklist, but there are so many you never hear of that site
again anyway.

~~~
AnthonyMouse
> Now it's the email spam problem - every site gets to rip you off $0.03, you
> add them to your blocklist, but there are so many you never hear of that
> site again anyway.

We already have this problem with clickbait. They get the $0.03 from filling
their site with spamvertisements and then waste your time getting you to click
on it. Whether the $0.03 is from you or advertisers is irrelevant.

Though you could add a "screw those guys" button where you don't get your
money back but they don't get it either. That might even allow there to be
_no_ transaction costs, by using that money to fund the system.

~~~
jodrellblank
A "give the money to their competitors" button, I like the sound of that.

