Welcome to my ~
_____ _____
|__ /___ _ __ ___|__ /
/ // _ \ '__/ _ \ / /
/ /| __/ | | (_) / /_
/____\___|_| \___/____|
First of all this is an ongoing process, it might never finish.
My intent with this page is to document some tips/tricks/hacks that I've
applied to my 'digital' life, perhaps you'll find some of it useful.
zeroz@tilde.club
* Advertisement Sucks
(1)Youtube -->
You can watch YT ad free by using the 'mpv' player.
Install 'mpv' and 'yt-dlp' on your system.
Just pass the YT video link to 'mpv' like:
mpv https://www.youtube.com/watch?v=6Wz3dJVhuqw
To limit the video size you can for example use:
mpv --ytdl-format="bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best" https://www.youtube.com/watch?v=6Wz3dJVhuqw
Another command line switch I like to use with 'mpv' is 'keep-open' so the player won't exit:
mpv --keep-open=yes --ytdl-format="bestvideo[height<=?720][fps<=?30][vcodec!=?vp9]+bestaudio/best" https://www.youtube.com/watch?v=6Wz3dJVhuqw
To keep track of your subscriptions without a YT account, you can install a RRS reader like 'liferea'.
If you use the above example to play a video, take a look at the command line output.
Under 'File tags:' you will see the 'Channel_URL'
You can use that URL as a RSS subscription in 'liferea'
In other RSS readers, you might have to look at the channel ID and use (in our example):
https://www.youtube.com/feeds/videos.xml?channel_id=UCXA2lepIpHZ24iQU22WgDeA
Another way to get the channel ID is by using 'yt-dlp':
yt-dlp --print "%(channel_id)s" https://www.youtube.com/watch?v=6Wz3dJVhuqw
You can even make a little BASH script to pass along the link as a parameter and automate the output like:
#!/usr/bin/env bash
id=$(yt-dlp --print "%(channel_id)s" "$1")
echo "https://www.youtube.com/feeds/videos.xml?channel_id=$id"
exit
If for example the name of your script is 'getrss.sh' use:
./getrss.sh "https://www.youtube.com/watch?v=6Wz3dJVhuqw"
Some other options for ad free YT are programs like 'Freetube' or 'QMPlay2'.
I won't go into the details here, you can find them easily on the web.
Be aware that YT is fighting hard against ad blocking methods, so 'things' might break.
(2)Home Network -->
To block advertisement on all of your home internet connected devices, I highly recommend
'pihole' more details over at https://pi-hole.net
* LAN
(1)Pihole -->
As mentioned in the 'Advertisement Sucks' section use 'pihole'. you can install it
easily on an old Raspberry Pi2 you have laying around gathering dust.
You don't even *have* to put it on a Raspberry Pi. I've successfully installed it before on Ubuntu server.
Check out https://pi-hole.net
(2)PiVPN -->
Out and about using guest Wifi hotspots and cell data.. Want to be more secure? Tunnel home!
If you have 'pihole' installed, why not also add a personal VPN that you can use with 'wireguard' or
'openvpn'? Wireguard is the fastest and smoothest IMO and installs easily on your phone.
The 'pihole' website has some instructions on how to do that , but I recommend a menu driven
setup. details at https://pivpn.io
(3)DNS server -->
Don't use your providers assigned DNS server. Some ISPs like to insert so called 'landing pages'
that will happily serve you ads and other nonsense when you accidently type in a non resolvable URL.
This won't be an issue if you use 'pihole' but in any other case, log into your routers web panel
and look for 'DNS automatically assigned' and put in a DNS address yourself.
for cloudfare DNS (recommended) use '1.1.1.1' and '1.0.0.1'
* SSH
(1)SSH tunneling - Passwordless SSH - Socks5 Proxy -->
If you have SSH access to a remote server that you own, you can use that server as a proxy.
This could be very handy if for example you like to hide (spoof) your home IP address.
First you need to setup password less access to the remote server by ways of a shared key.
open up a terminal and enter the '.ssh' directory within your home directory:
cd .ssh
If that directory does not exist, do:
mkdir .ssh; chmod 700 .ssh
The next step is to generate a key pair. This will generate a private and a public key.
ssh-keygen -t ed25519 -a 100
The public key (ed25519.pub) needs to be uploaded to the remote servers 'authorized_keys' list.
This list can be found on your remote servers '.ssh' directory. If that directory does not
exist, login normally to the remote server and create that directory.
I've created a BASH script named 'push' to automatically upload the public key and add it to 'authorized_keys'.
#!/usr/bin/env bash
echo "Usage: ./push username somehost.net port"
cat ed25519.pub | ssh -vvv -p $3 $1@$2 'cat>>.ssh/authorized_keys'
exit
Normally the ssh port is 22, but in case it's running on a different port, you have to provide the port number.
When you run the script, you'll be prompted for your username password before the public key gets uploaded.
When that's finished, you can test if it all works by connecting to your remote server like:
ssh catgirl@dogsdroolcatsrule.org
There should be no password prompt.
Now we can create a ssh tunnel between your local host and the remote server with:
ssh -D 28080 -g -q -C -N -f -p 22 catgirl@dogsdroolcatsrule.org
If your remote ssh server listens on a non standard port change the '-p 22' parameter.
In this example the ssh tunnel listens on your localhost on port 28080 for you to connect to.
This is basically a Socks5 proxy, so now you can configure your clients like webrowsers to use
a Socks5 proxy on your localhost port 28080.
If your client has the option, always use the option 'resolve DNS remotely'.
(2)SSH filesystem
Mount a remote servers directory as a 'local' directory (after you've setup passwordless SSH).
First create a directory within your ~home dir. for example '/share'.
It's a good idea to create a sub dir within '/share' for each server you are planning to mount.
sshfs catgirl@dogsdroolcatsrule.org:/home/catgirl /home/catgirl/share/ddcr
In the above example, the remote directory '/home/catgirl' will be mounted on your local
path '/home/catgirl/share/ddcr'. To quickly test to see if worked (besides looking at content),
use the command:
mountpoint /home/catgirl/share/ddcr
The output should look like '/home/catgirl/share/ddcr is a mountpoint'.
To make it auto mount when it isn't, you can put something like this in a BASH script:
#!/usr/bin/env bash
mountpoint /home/catgirl/share/ddcr || sshfs catgirl@dogsdroolcatsrule.org:/home/catgirl /home/catgirl/share/ddcr
mountpoint /home/catgirl/share/meek || sshfs catslaw@someotherserverer.org:/home/catslaw /home/catgirl/share/meek
exit
* Tilde.club
(1)Updated pages
Looking at the the 'updated' pages list at https://tilde.club/tilde.24h.php ,I noticed some pages
got reported as updated, but I could not see any visible changes. mmmmm what's going on?
It looks like some clever users are doing a file timestamp change only, to keep their page listed.
I've made a system that looks for real changes and you can check the results here:
https://tilde.club/~zeroz/tilde_updates.html
Please note, that it's not my intention to call out users that are doing this, but rather to show as
a proof of concept, that a better update detection system uses checksums and not file timestamps.
.:[ This page is written with 'vim' by a human ]:.