- Respect user privacy
- Be extensible
ytTUI -- A Terminal User Interface for YouTube
[link—standalone]Over the last few weeks (and, maybe even months) I have become increasingly more interested in and aware of three things-- privacy, free software as a philosophical concept, and terminal minimalism.
There is a wealth of information on the internet concerning anything and everything. Google's YouTube is no exception. YouTube is a fantastic place to learn about new things, find interesting topics, or just waste hours upon hours falling down a rabbit hole *because you just can't stop watching cat videos*. However, even though it has its advantages, there are several things wrong with YouTube. Broadly, these are it being 1) YouTube and 2) Google. More concisely, YouTube doesn't respect user privacy, it is not free software, and perhaps most importantly, it doesn't exemplify terminal minimalism.
That brings me to the topic of today: the ytTUI-- or, YouTube Terminal User Interface for those people who'd rather speak with long words instead of short letters. After slaving away at trying to find a program that would allow me to browse the terabytes of videos on YouTube without using YouTube, I decided "I can just write my own!" Because its obviously a trivial task.
Goals
The end goal of the project is twofold:
By "respect user privacy," I mean exactly what I say-- the end user of this program will not have YouTube or Google snooping on what they search or watch. Even though (initially, perhaps not permanently) I decided to use the YouTube data API, these companies won't be able to see who is searching or watching what. Searches are handled by the API key through the program. "Subscriptions" will be using a separate system of generated RSS feeds (more on that down below). The only thing that they might be able to see is the IP address from which the http request was made, but this is a nonissue considering how this is more or less open information and if a user is concerned about it, they're probably already doing something about it.
What I mean "be extensible" is a little less clear. On top of being completely free (free as in freedom), I plan for it to be configurable. Not just colors and layout, but in which video player is used, among other things. In the end, users will be able to browse YouTube content in a comfortable terminal environment, without the prying eyes of the internet overlords.
"Subscriptions"
YouTube has a feature called 'subscriptions' which allows a user to 'subscribe' to a channel and get notified when a new video gets uploaded (or at least, that's the idea-- you now have to hit the 'notification bell,' because subscriptions don't mean a whole lot on YouTube anymore). ytTUI will have a similar feature, but in a way which the user has total control over.
ytTUI's 'subscription' system will revolve around generating an RSS feed for specific channels that users flag. This will 'subscribe' them to the channel-- when there is a new video posted on the channel, the RSS feed will update and an asterisk (or something) will notify the user that a new video is available to watch.
The first mock up of the ytTUI interface
Want to keep track of the project? Visit the GitHub page.
by Chad Wilson
Sat, 18 Sep 2021 20:13:12 -0400Passphrase Generator
[link—standalone]Recently, I finished doing some touch-up work on a passphrase generating program that I had written for personal use and decided to upload it to GitHub so other people can use it if they want.
Why Use a Passphrase?
In general, if a password is longer then it is more secure. It will take more time to be compromised by a malicious party, whether that's by simply brute forcing the characters, performing a dictionary attack, or some third arbitrary attack type that I don't care enough to list. This is why many websites and such require certain length requirements for your password when creating an account.
The main advantage of a passphrase, after the security-through-length, is that they are easy to remember. After practicing just a few times, most people can memorize a short combination of 4-6 words better than they can memorize a random series of letters, numbers, and symbols. As an added bonus, the words in a passphrase can combine to a phrase or short sentence, which makes them even easier to remember.
The following are examples of passphrases:
PeterJumpsThroughHoops
ACrazyAgileSprinter
LawyerDamageEquityTrack
As you can see, all of these above examples are easier to remember and just as secure as "Pny88ykXP@HXy$DR"
What does it do?
It generates passphrases. When run, it loads two word lists-- one for adjectives, and one for nouns -- from the directory that the program is run in. Users can specify a few options to their liking, such as supply custom word lists with the "a" and "n" options or telling the program to generate a certain length passphrase ("m" for minimum length and "M" for maximum length). They can also give it the "x" option to generate "x" number of passphrase, which is super handy when you just want some ideas for passphrases. The default word lists are rather comprehensive, being something like 55,000 nouns and 20-something,000 adjectives. The passphrases that it generates are in the form "Adjective+Adjective+Noun".
Ideally
The passphrase generation was initially written to spit out a good passphrase or two that the user could just copy it directly into whatever box they needed to when they need a new password. As it stands, you certainly *can* do that, but the passphrases aren't generally in a format that I would like. Rather than spending countless hours trimming down or rewriting the word lists, I found it easy enough to just have it create enough passphrase to help me think of ideas for one (after all, it is a computer program that we shouldn't totally rely on for something important). For example, even if you don't like a passphrase that it generates, its easy enough to generate 10 and pick and choose words from that longer list and make something that you like or would remember.
Future Work
Soon, I plan to add an option to convert the characters it produces into "l33tspeak", which would provide extra entropy for the password by increasing the set of possible characters. There would probably be two options-- the first would be to enable l33tspeak, and the second would be the chance a character could change (for example, 50 means a capital "O" has a 50% chance to change to 0). This feature isn't terribly pressing to add, though, because if somebody wants to change some characters they'd just as easily do it themselves without the computer knowing.
by Chad Wilson
Wed, 08 Sep 2021 20:54:07 -0400A New Blog
[link—standalone]Welcome to the new blog! I hope to have some writings up soon about projects that I'm working on, technical tips, and anything else that I want to write about. It should be a good enough way to satisfy my desire to write and create things that people can see and read, even if they don't see or read them.
Wed, 08 Sep 2021 20:03:27 -0400