I use Linux with a firewall. The firewall allows only DNS (53), http (80) and https (443) outgoing requests. All other ports are blacklisted. When I send mail, I manually open the firewall and close it immediately afterward.
When browsing a newer version of Ubuntu where no firewall was installed, the ads get loaded. I have not installed the firewall because it has become obsolte and I use the new Ubuntu installation only because the IRCTC website does not work with old browsers. Just when I am about to conduct financial transactions, BSNL loads ads from dubious sources. After I looked up the syntax for IP tables, I was able to block unwanted ports. But, still this is scary because most Linux users think that their OS is virus-free.
On the mobile, I have no firewall and that is why I don’t do any financial transactions on the phone. I was surprised to see my own website serving ads.
Ads are loaded from a dozen ad servers: Inmobi, Mobvista, Admaven, Adcash, etc.
Initially, I thought some hackers have taken control of BSNL DNS server. I emailed CERT-IN and got no response. It was clear that they knew what BSNL was doing and decided to be quiet.
In the US too, ISPs tried this form of ads but I am not sure if it is still allowed. This problem affects HTTP sites and not HTTPS sites.
The HTTPS Everywhere propaganda people are using this to goad everyone to add SSL certificates to their sites. Google is the biggest beneficiary of this campaign. People are more likely to upgrade their Android phones the browsers are unable to access SSL sites and sites with newer certificates.
I have all forms of ad-blocking – ad-blocking HOSTS file, user scripts, user CSS, ad-safe DNS providers. All of this gets defeated if the ISP inject ads hosted from their own IP address. Lesson learned – never browse without a firewall. Block all unwanted ports. Constantly update your HOSTS files to ensure that no ads are ever displayed.
Good job, BSNL! Thanks for nothing.
Modi wants all Indians to conduct digital transactions and you are not helping, are you? What am I talking about? Even Modi’s app has been reported as a personal information stealer.
Disables ads, turns off autoload/autoplay, adds RSS link, deletes “recommended for you” videos, unhides description, displays all comments, changes profile link to videos page; changes region to US, displays video thumbnail image, lists offline download links, and adds a link to the lighter version on Hooktube if video is not playable for codec reasons.will ensure the download is completed offline.
This script supports Firefox-based browser up to version 36. Newer 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. The download links can then be sent to the DownThemAll add-on with the file renaming mask “*text*.mp4”.
It seems that Mozilla has effectively destroyed its add-on ecosystem by switching over to Google Chrome’s WebExtensions format. I recently installed the latest version of Firefox and it has no add-ons worth naming in its download portal. DTA is not there and neither is Greasemonkey. If had Google had infiltrated Mozilla and decapitated its top management, Firefox couldn’t be worse. Mozilla’s own management is diluting its brand appeal, frustrating add-on developers, disappointing its user community and effectively throwing Internet users to the jaws of the Google spyware called Chrome. (https://www.thewindowsclub.com/microsoft-disabled-these-chromium-services-features-in-new-edge)
For embedded YouTube videos, use the new script com.vsubhash.js.embedded-video-catcher.user.js.
Unable to stream YouTube and other videos
I have lived in several houses in three South Indian states. In all of them, there are unusual electric disturbances. The net connection is also very unstable. (I wrote the NetCheck desktop and mobile application for this reason – http://vsubhash.com/netcheck-app-for-android.html) When the net connection seems to be stable, the electrical disturbances trips the Internet modem.
For this reason, I am unable to play videos as an online stream. I have to download them first and play them offline on the TV. The downloads have to be constantly restarted because the net connection stops intermittently.
The electrical disturbances destroys electrical appliances. I run the entertainment systems and computers on a UPS and this protects them. But, I can hear the UPS relay clicking incessantly. Earlier, the modem was on the mains directly. Now, it runs of the UPS. Even then, the modem stops net connection for some reason.
Apart from the electrical disturbances, the power supply is cut several dozen times a day – in all three states. In a month, they are off for an entire day or an entire night for at least three or four days. This always happens when I am visiting someone and trying to work on a computer. The UPS supports the modem and the network switch for about 20 minutes if my laptop is powered from the battery. If I am on the desktop, the backup lasts for just five minutes.
I rarely use the mobile now. Here too, the net connection is not stable.
In this video, you can hear the racket created by the relay. In the background, you can hear the fan speed going up and down with the voltage fluctuations.
Video overlays are not easy but can be done.
I have two videos and I need to place them side-by-side in a new video. The dimensions first video (blob.mp4) was 1280×720. The second video (aoc.mp4) was 406×720.
The compositing was achieved by using a complex filter:
ffmpeg -i blob.mp4 -i aoc.mp4 -filter_complex "[0:v]pad=1686:720:0:[a]; [a][1:v]overlay=1280:0[b]" -map "[b]" -pix_fmt yuv420p aoc-meets-garbage-disposal.mp4
In the first part of the filter, I specified that the first input video (blob.mp4) will have a dimension of 1686×720, where 1686 is the total width of the both videos side-by-side. A map identifier “[a]” is used for this screen canvas. Next, with a semicolon delimiter, the second video is specified as appearing at 1280 pixels from the left edge at 0. (Yes, it begins at zero. I got a stupid “Overlay area … not within the main area … or zero-sized… Failed to configure input pad on Parsed_overlay_1” error when I thought I had to use 1281 as the starting point of the second video.) The overlaid video is then map identified as “[b]”. This map is then encoded to the output video.
Of course, this video does not have audio. So, I extracted the audio from both videos using FFMPEG, mixed them using Audacity (although I could have done it using FFMPEG as well), and slipstreamed the audio to the composite video using FFMPEG.
ffmpeg -i blob.mp4 -vn blob.mp3 ffmpeg -i aoc.mp4 -vn aoc.mp3 #Created garbage.mp3 from blob.mp3 and aoc.mp3 using Audacity ffmpeg -i aoc-meets-garbage-disposal.mp4 -i garbage.mp3 -codec copy aoc-meets-garbage-disposal-mix.mp4
Alexandria Ocasio-Cortez, the US Congresswoman, lived in New York where garbage disposal machines were banned and people did not buy them even after the ban was lifted. She recently caused worldwide hilarity after posting an ominous video about her discovery of the garbage disposal machine in her sink. She must have at least seen them in movies or TV.
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: https://www.youtube.com/results?search_query=trump+trolls+biden
Uncensored YouTube search: https://www.youtube.com/results?search_query=trump+trolls+biden&sp=CAMSAhAB
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.
This is not a real solution, as Google censorship is very open when it comes to Trump.
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.)
- Browser disguises have been revamped – Android (1.6, 2, 4, 6, 8), Desktop Firefox (36, 46, 60), Ipad/Iphone.
- 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.
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.
JAR executable (Linux/Mac/Windows) and APK installer (for Android) available at:
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.
JAR executable (Linux/Mac/Windows) and APK installer (for Android) available at:
Blocks video ads too.
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
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.
This script, by default, does not work on YouTube pages but I have a more powerful YouTube version at https://vsubhash.wordpress.com/2019/03/10/youtube-ad-blocker-and-annoyances-remover-greasemonkey-script-updated
This browser user js is also available at
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.