Yotter: Twitter and Youtube with privacy

Imatge
Imatge
Àmbits de Treball

Yotter allows you to follow your favo­rite Twit­ter and YouTube accounts with full privacy using rss feeds in order to gather the latest content from your favou­rite accounts and builds a beau­ti­ful feed so you can read them. Yotter is writ­ten in Python and Flask and uses Seman­tic-UI as its CSS frame­work.

Yotter is possi­ble thanks to seve­ral open-source projects that are listed on the Powe­red by section. Make sure to check out those awesome projects!

 

Index:

 

Featu­res:

white_check_mark No Ads. white_check_mark No JavaS­cript. white_check_mark Mini­ma­list. white_check_mark Search on Twit­ter and Youtube. white_check_mark Zero connec­ti­ons to Google/Twit­ter on the client. white_check_mark Follow Twit­ter accounts. white_check_mark Follow Youtube accounts. white_check_mark Save your favou­rite Tweets. white_check_mark Tor-friendly. white_check_mark Termi­nal-brow­ser friendly. white_check_mark Easy 2 minute self-hosting deploy.

And many more to come!

performing_arts Privacy

 

globe_with_meridians Connec­ti­ons

Yotter cares about your privacy, and for this it will never make any connec­tion to Twit­ter or Youtube on the client. Every request is proxied through the Yotter server; video stre­a­ming, photos, data gathe­ring, scrap­ping, etc.

The Yotter server connects to Google (Youtube) and Nitter in order to gather all the neces­sary data. Then it serves it (proxied through itself) to the client. This means that as a client, you will never connect to Google – the Yotter server will do it for you. So if you want to set up a Yotter server for privacy reasons I recom­mend you to set it up on a remote VPS so you don’t share your IP with Google or use a VPN on the server.

If you don’t mind expo­sing your IP making requests to Google then you can set it up where­ver you want. Even with this method you will avoid all trac­kers, ads, heavy-loaded pages, etc.

 

shield Your data

The only things the data­base stores are:

  • Hash of the pass­word
  • User­name
  • List of follo­wed users
  • List of saved posts

This data will never be used for any other purpose than offe­ring the service to the user.

 

Others

If you want to use a speci­fic Nitter instance you can replace it on the file app/routes.py.

 

closed_lock_with_key Secu­rity

Only the hash of your pass­word is stored on the data­base. Also no perso­nal infor­ma­tion of any kind is kept on the app itself, if a hacker gets access to it only thing they could do would be to follow/unfo­llow some accounts.

I always recom­mend self-hosting, as you will be the only person with access to the data.

Impor­tant note: The client never connects to Google / Youtube howe­ver, the server does in order to gather all the neces­sary things!

 

house Self hosting

 

hatching_chick Test

You can test this new version.

 
IMPOR­TANT: Connec­ti­ons to google­vi­deo will be made to stream the videos. It is recom­men­ded to use a VPS server or a VPN to preserve your privacy. This version is inten­ded for a remote server.
  1. Install python3, pip3, python3-venv (opti­o­nal) and git.

  2. Clone this repo­si­tory:

  3. Navi­gate to the project folder:

    • cd Yotter
  4. Prepare a virtual envi­ron­ment and acti­vate it:

    Python lets you create virtual envi­ron­ments. This allows you to avoid insta­lling all the pip packa­ges on your system.

    • python3 -m venv venv
    • source venv/bin/acti­vate

    Now you are inside of the virtual envi­ron­ment for python. All instruc­ti­ons wiht [env] indi­cate that must be done inside the env if you deci­ded to create one. From now on, you will always need to start the appli­ca­tion from within the virtual env.

  5. [env] Update pip

    • python3 pip install—up­grade pip
  6. [env] Install the requi­red libra­ries:

    • python3 pip install -r requi­re­ments.txt

      If you get errors, try running source venv/bin/acti­vate again of use—u­ser option.

  7. [env] Initi­a­lize and prepare the data­base.

    • flask db init
    • flask db migrate
    • flask db upgrade

    If you get «No such command db», try running source venv/bin/acti­vate again.

  8. [env] Run the appli­ca­tion.

    • flask run

    You can opti­o­nally use flask run—­host 0.0.0.0 so you can use Yotter from other devi­ces from the same network using the host devi­ce’s IP address and port. ¡Test it from a smartp­hone!

  9. Go to «http://local­host:5000/» and enjoy.

link Hosting on a server:

SOON

rooster Upda­ting to newer versi­ons:

IMPOR­TANT: Before upda­ting to newer versi­ons, always export your data on Settings>Export Data. A major version update could have chan­ges on the whole data­base and you may be forced to remove and reset the data­base (only when running locally)!

  1. Navi­gate to the git repo­si­tory (the one you cloned when insta­lling).

  2. Pull new chan­ges:

    • git pull
  3. Install new packa­ges (if any):

    • pip install -r requi­re­ments.txt

    It may be that there are no new packa­ges to install. In that case, all requi­re­ments will be satis­fied.

  4. Update the data­base:

    • flask db migrate
    • flask db upgrade

If you expe­ri­ence any error in this step, it might be that there were big chan­ges on the data­base struc­ture. You can solve it by expor­ting your data, then dele­ting and reset­ting the data­base. Run rm -rf app.db migra­ti­ons and then flask db init. Then run step 5 normally.

  1. Done! You are on latest version.

See CHAN­GE­LOG for a list of chan­ges.

 

fuelpump Powe­red by:

 

This project is comple­telly free and Open Source and will always be. I am dedi­ca­ting my free time to build it so if you like it, you can buy me a coffee!

  • Bitcoin: 3EjaWjtsHz4WpbVL5Wx8Xg6MfyRRnKYj4e
  • Monero: 83hinY­mUkMH2ANgdhx­Rup­makzLwN26d­dePrLQvZv4E3Q1CWjq7MDzsKRcPqLPQwTvG3D­dujyaxbKbMsf9VK­VAmphMhsfndc
  •  
  •