Category: Software

How to beat Google’s censorship of YouTubers’ videos – eliminate TV shows from the results

After CNN started a campaign to ban Alex Jones from the online world, YouTube was hit with a boycott by ad agencies for promoting conspiracy videos. In response, YouTube now displays clips from TV shows in the results while videos uploaded by ordinary YouTubers have been demoted.

Recently, I was trying to find the funny video of Joe Biden posted by US president Donald Trump and found that YouTube has censored the video. In its place are numerous TV reports talking about the Trump twitter message.

If you check the results page of YouTube search, you will find a “filters” drop-down list. In this list, YouTube will allow ordering the results by “relevance” and “view count”. The default is “relevance” and by YouTube’s definition, it means TV shows are always better than videos uploaded by ordinary YouTube users. To make YouTube search work like earlier, you need to select “Video” under “Type” and “View Count” under “Sort By”.

Censored YouTube search:

Uncensored YouTube search:

YouTube search filter

To make this easy, I created a custom YouTube search engine XML file based on the OpenSearch standard at:

Save this file as YouTube-Search.xml and copy it to your ‘searchplugins’ directory in the Firefox profile directory.


Subhash Browser & Feed Reader v2019.03.04 for Android adds RSS support for YouTube

As the Crown Corporation guy says in the movie Fahrenheit 911, “lossa” things. Lossa updates.

YouTube supports RSS feeds for its channels. But, it does not display them or include it in the HTML source. Why? If people subscribe to YouTube anonymously, it might get the traffic but how will it spy on who is watching what?

  • A permanent scrollbar (one that does not fade away) will be available in the two browser tabs. This feature is supported in Android versions 2 and newer.
  • An automatic User JS script (prefixed with ‘_’) has been added, which displays an RSS feed link next to the channel name. It will also add an RSS LINK tag to the HEAD section of the page HTML code. The feed link will appear in Android devices running version 1.6 (Donut) to 8 (Oreo). The feed link will also appear when Subhash Browser is imitating desktop browsers too. (While coding, I was wondering why the script was not working until I realized Subhash Browser was using the desktop Firefox disguise.)

    RSS support for YouTube in Subhash Browser

    Subhash Browser will now automatically display an RSS feed link next to the channel name on YouTube pages

  • Browser disguises have been revamped – Android (1.6, 2, 4, 6, 8), Desktop Firefox (36, 46, 60), Ipad/Iphone.
  • The old automatic YouTube downloader has been made optional and a new one has been added. The new one simply displays the link of the current video. The new one is useless on newer devices where mediastreaming is enabled. The old one continues to parse Javascript and manages to find a URL or that’s what I think it does.
  • A file name dialog will appear if link targets are saved. The animation above shows how this is done. Earlier, when saving YouTube videos, the downloader would change the extension to MP4 after identifying the mime type but the filename was a jumble of numbers. Now, you can provide a meaningful name. Some links might not have a file name but the link will resolve to a file with a name. In these cases, “server choice” option can be chosen. Pressing the Back button cancels the download. A space is added between the extension and the filename so that the filename can be selected and deleted (for a more meaningful name) without disturbing the extension. The link targets in the Feed Reader screen are like earlier (without the dialog) have not been changed.

APK installer and more info:

I have also incorporated the YouTube RSS script into my desktop YouTube AdBlocker and Annoyances Remover script.

Subhash TweetsToRSS v2019.03.04 for Android, Linux, Mac and Windows

Mostly bug fixes.

  • The search form at the top of results page has been revamped and made more meaningful. You can specify the number of results per search.
  • The bug which causes the “older tweets” link in the footer to omit the location information has been fixed.
Search form of Subhash TweetsToRSS

Subhash TweetsToRSS search form is more meaningful.

JAR executable (Linux/Mac/Windows) and APK installer (for Android) available at:

EmailTweetor v2019.03.04 for Android adds unlock password and Twitter timeline support

Support for replying, favoriting, retweeting, and deleting tweets in the timeline.

  • A permanent scrollbar (one that does not fade away) will be available in the main screen. This feature is supported in Android versions 2 and newer.
  • A menu option to retrieve the “timeline” (tweets by you and others you follow) has been added.
  • Earlier, there was a context menu option to delete from the “Latest Tweets” section. Now, you can also reply, retweet and favorite on those tweets.
  • The text size of the Twitter message editing box has been increased.
  • A lock password will be required to use EmailTweetor. It is not an extremely secure password system. It can protect the Twitter client in case you hand over your phone to somebody else for just a few minutes.

    Unlock password for EmailTweetor

    Unlock password protects your Twitter client from misuse.

JAR executable (Linux/Mac/Windows) and APK installer (for Android) available at:

YouTube Ad Blocker and Annoyances Remover GreaseMonkey script updated

Blocks video ads too.

YouTube ad-blocker and annoyances remover script

This script removes ads, disables autoplay, mutes video, adds RSS support and displays all comments.

In this version, the script will

  • disable ads, including video ads. If a video ad is loaded, a new window will be opened until an ad-free video is loaded. You will have to manually close the other tabs. I am not sure how effective it is in blocking text ads, I use a ad-blocking HOSTS file and I don’t see ads most of the time.
  • pause all videos automatically. This is useful if you open multiple videos in different tabs and if they all start playing simultaneously, you will hear the biblical Tower of Babel.
  • turn off autoplay button
  • add an RSS link next to the channel name and in a LINK tag in the HEAD section of the HTML so that the browser can activate its RSS button (if available).
  • delete “recommended for you” videos
  • unhide description
  • display all comments
  • change profile link to videos page
  • change region to US. By default, YouTube pages defaults to India and all the results are tilted in favour of Indian Youtubers. The problems with the Indian Youtubers is that their videos have low-volume voice and high-volume music. By changing to US, the video results are mostly from English-speaking countries. They are not enamoured by the need to pepper their videos with loud interludes of the same copyright-free music.

The script supports Firefox-based browser up to version 36. Newer Firefox versions should use a UserAgent (UA) spoofer add-on. YouTube loads a lighter version of the YouTube page for older browsers. This script will require the GreaseMonkey add-on to be executed by the Firefox browser.

For non-YouTube pages, I have a more generic autoplay video autostopper script. It will also work on YouTube pages if the @exclude line is removed.

This browser user js is also available at

AutoPlay Video AutoStopper GreaseMonkey Script

If you are the type of person who opens several tabs at once and reads them one by one much later, then you need this browser user script.

Many news sites have autoplay videos on all their pages. This script will automatically pause them. You can play them manually. It also mutes the videos. If the videos use custom controls, then they may not realize that the videos has been muted. You may have to click on the play and mute buttons more than once to get them working as intended.

Autoplay videos auto stopper

All videos are auto-stopped by this script

This script, by default, does not work on YouTube pages but I have a more powerful YouTube version at

This browser user js is also available at

EmailTweetor v2019.02.20 for Android builds a list of tweets it creates

This feature should have been there from the beginning.

Earlier, the app used to copy the tweet URL to the email body. In this version, EmailTweetor will build a list at the bottom of the screen with the Twitter messages it creates. Each tweet in the list will have a context menu with which, you can copy the text or the URL. An option to delete/un-retweet/de-favourite the tweet is also available.

Tweets, retweets and favorites are differently colored for easy identification.

How to get the silly Twitter verified status without any real verification

With this Greasemonkey script it is easy.

// ==UserScript==
// @name        Twitter Verified Status For Everyone
// @namespace   com.vsubhash.js.twitter-verified-status-for-everyone
// @include*
// @version     1
// @grant       none
// ==/UserScript==

var oEls;
var sVerifiedHtml1 = "<span>‏</span><span class=\"UserBadges\"><span class=\"Icon Icon--verified\"><span class=\"u-hiddenVisually\">Verified account</span></span></span><span class=\"UserNameBreak\">&nbsp;</span></span>";
var sVerifiedHtml2 = "<span class=\"ProfileHeaderCard-badges\"><a href=\"/help/verified\" class=\"js-tooltip\" target=\"_blank\" title=\"Verified account\" data-placement=\"right\" rel=\"noopener\"><span class=\"Icon Icon--verified\"><span class=\"u-hiddenVisually\">Verified account</span></span></a></span>";

function addTwitterVerifiedStatus() {
	console.log("TVSFE: Changing HTML");
	oEls = document.getElementsByTagName("span");
	if (oEls.length > 0) {
		for (var i = 0; i < oEls.length; i++) {
			if (oEls[i].className) {
				if (oEls[i].className.indexOf("FullNameGroup") > -1) {
					if (oEls[i].innerHTML.indexOf("Icon Icon--verified") == -1) {
						oEls[i].innerHTML += sVerifiedHtml1;
						console.log("TVSFE: Screenname icon added");
	oEls = document.getElementsByClassName("ProfileHeaderCard-name");
	if (oEls.length > 0) {
		for (var i = 0; i < oEls.length; i++) {
			if (oEls[i].innerHTML.indexOf("ProfileHeaderCard-badges") == -1) {
				oEls[i].innerHTML += sVerifiedHtml2;
				console.log("TVSFE: Profile icon added");

function handle_DOMLoaded(aoEvent) {
	try {
		console.log("TVSFE: Page loaded");
		window.setTimeout(addTwitterVerifiedStatus, 3*1000);
	} catch (e) {
		console.error("TVSFE: Error - " + e);

document.addEventListener("DOMContentLoaded", handle_DOMLoaded, false);

NetCheck v2019.02.09 for Linux, Mac and Windows

NetCheck v2019.02.09 for #Linux, #Mac and #Windows adds ability change ping URL and interval (20 to 300 seconds) via the command-line arguments and notification tray icon menu. The Android version can already change the URL (but not the interval).


Subhash TweetsToRSS v2019.02.04 for Android, Linux, Mac and Windows adds support animated GIFs and videos

A bug led to the discovery new capabilities.

EmailTweetor (desktop version) has the ability to post multiple images in one tweet. When checking this capability, I found to my dismay that TweetsToRSS was displaying only the last image in any tweet. Instead of += in the for loop, I had been using just =, which made the previous image details to be overwritten. I further explored the API and discovered support for animated GIFs and videos. So, the changes are:

  • Support for animated GIF images and videos.
  • Fix for bug which caused only the last image in a tweet to be displayed.
  • Fix for the bug (in Android) causing the locations.html file was displayed as raw HTML.
  • Fix for the following error, which caused the whole request to be cancelled if just one tweet in the list sent by Twitter generated it:

    404:The URI requested is invalid or the resource requested, such as a user, does not exists. Also returned when the requested format is not supported by the requested method. message – No status found with that ID. code – 144

Support for animated GIFs and videos in Subhash TweetsToRSS

Subhash TweetsToRSS now displays multiples images and any GIF animations or video found in a tweet.

A news report playing as a video from a Twitter account