My FFMPEG book ‘FFMPEG Quick Hacks’ eBook published – 140-page full-color print-replica for Kindle

Costs from Rs. 70 in India and $2 in US

I discovered FFMPEG many years ago and have often marvelled about its versatility and user-friendliness. It is intriguing that its awesomeness is not so well-known. To change this, I wrote a tip-and-tricks article on FFMPEG some years ago for a magazine. I wrote several blog posts on using FFMPEG too. For my personal use, I had created several Nautilus Action Configuration scripts that automated FFMPEG tasks. When I wanted to write a follow-up article with more FFMPEG tips and tricks, I thought it would be a better idea to publish a book so that all of this knowledge could be found in one place.

In this book, I provide an easy introduction to FFMPEG without going through all the boring confusing technical details. However, I will provide enough information for you to know what needs to be done in situations that FFMPEG users often find themselves in. Those who need in-depth information can check online FFMPEG documentation and media format specifications. This book is for those who need an easy-to-read tutorial and a desk-side ready-reference


Back cover of the book ‘FFMPEG Quick Hacks’

When I started writing this book, I was only planning to write about what I knew of FFMPEG but to make it really worthwhile to the reader I began forcing myself to learn more stuff from the documentation. I ended up with a lot more FFMPEG knowledge now than before.

Ebook Before Paperback

I have asked the Twitter handle @FFMPEG to privately review the book before I publish it as a paperback. @FFMPEG agreed to review the book if it was free. I have told him the book will become free after one year because I want to prove that my FOSS toolchain to create professional quality books is successful. The 140-page FFMPEG book is available as a print-replica Kindle ebook now for $2.

Online FFMPEG Demo Videos

A book can have only pictures. To demonstrate videos, you need to have videos. Here is a online playlist of some videos I created to illustrate the book.

EmailTweetor for Linux/Mac/Windows v2020.04.14 adds tweets archiving ability

Also available: A shell script to mass-delete tweets.

Subhash TweetsToRSS can also has the ability to archive tweets but I wanted the ability to use the archive in a shell script.

java -jar emailtweetor.jar dump TwitterUserName [last_status_id]

When used without the last_status_id, EmailTweetor will try to list upto 3200 of the latest tweets from the user. This limit, they say, is for 15 minutes. Upto 1 lakh tweets can be requested in 24 hours. If you specify the ID of the 3200th tweet after 15 minutes, you may be able to proceed further.

The list has three columns – URL, text content and date.

java -jar emailtweetor.jar dump realDonaldTrump > tweets-archive.txt
tail -n +2 tweets-archive.txt | \
  awk 'BEGIN { FS="⁑"; RS="¶"; ORS="" } { print $1 }' \
  > tweets-urls.txt

This command eliminates the first line of the output and prints only the first column containing the tweet URLs.

This URL list can be given to EmailTweetor so that each tweet can be deleted.

cat tweets-urls.txt | read -p sTweet
  java -jar emailtweetor.jar delete $sTweet

I did not create the ability do this within EmailTweetor to prevent accidental destruction of tweets. This way of deleting tweets is much simpler than the obsolescence-prone GreaseMonkey Twitter Deletor.

Archive in spreadsheet

When you paste the output in Calc (LibreOffice), the field separator option should be set to ⁑. The text delimiter should be set to ⁗.


BASH script to block Twitter followers, en masse

Without even looking at their names

In a previous update of EmailTweetor, I added the ability block/unblock, follow/unfollow and mute/unmute other Twitter accounts from the command-line (in Linux/Mac/Windows, not Android).

I do not follow anyone on Twitter and I do not want anyone following me. (I use Tweets for their temporary presence online, as a historical record. I delete all my tweets afterwords after I take a backup with TwitterToRSS.) When TwitterToRSS shows me that somebody is following me, I need to manually type their names to block them. Today, I created a Linux BASH script to automate the process of blocking them – en masse.

ETR="java -jar ./EmailTweetor.jar "

cd $DDIR
if [ -f "$LISTFIL" ]; then
  sTimeStamp=`date +%G-%m-%g-%I-%M-%S`
  mv $LISTFIL $LISTFIL.$sTimeStamp.bak

$ETR trolls > $LISTFIL
#LISTFIL="test.txt" #Comment this

iLines=`wc -l $LISTFIL | awk '{ print $1 }'`

#echo $iLines

if [ $iLines -gt 4 ]; then
  let iCatch=iLines-4
  tail -$iCatch $LISTFIL > follower-accounts.lst
  cat follower-accounts.lst | while read sLine
    #echo $sLine | awk '{ print $1 }'
    sAccount=`echo $sLine | awk '{ print $1 }'`
    $ETR block $sAccount >> $DDIR/blocked-twitter-followers.lst
  echo "Finished blocking all followers"
  echo "No followers"

The command java -jar EmailTweetor.jar trolls displays the owner account name, two blank lines, column headings, and two columns of follower accounts and account names. This script ignores the first four lines and the second column (containing the account names) and then proceeds to block the accounts in the first column.

How to block Twitter accounts suggestions

The simplest way to do this is to disable the HTML block containing these suggestions. (Right-click near the block, select Inspect element fro the context menu, find the ID or class names of the DIV elements, and mark them as “display: none!important” in the /home/$USERNAME/.mozilla/firefox/[your-profile-name]/chrome/user-Content.css.)

Another way is to manually block accounts that are repeatedly suggested. Twitter cannot suggest an account if you have blocked it. The coronavirus has given obscure bureaucrats some exposure.

How to block Twitter account suggestions

Italy offers 400 Fresh Clean Jokes For Everyone

The not-so leaning tower of Pisa.
Not-so leaning tower of Pisa, Italy

Not-so leaning tower of Pisa, Italy

Improve your world outlook with this 167-page 470-joke subset (Rs. 50 or $2 for Kindle eBook and $8 for paperback) of the great book. It has plenty of children’s jokes, computer jokes, computer programming jokes, cross-the-road jokes, animal jokes, physics jokes, biology jokes, geography jokes, medical jokes, pun jokes, bar jokes, blonde jokes, knock-knock jokes, financial jokes, jokes in advertising, jokes on journalism, romantic jokes, Rajinikanth Facts (like Chuck Norris facts), Confucius-say jokes, ethnic jokes, lightbulb jokes and political jokes.

Read a sample of the jokes in the newly published excerpts from the book.

All jokes in the book are child-friendly and family friendly. No ( ͡⚆ ʖ ͡⚆ ), 彡 or (‿ˠ‿) humour.

Photo courtesy: Lizzie

“400 Fresh Clean Jokes For Everyone” by V. Subhash published as paperback and Kindle eBook download

A 171-page 470-joke subset of the 2020 Fresh Clean Jokes For Everyone is now available for order on

I reduced the paperback price by $2 today because I need to order a copy.

The book is available as

The eBook is a full-color print-replica. The paperback is black-and-white or rather grayscale printing. There is only one joke section (“Journalism Jokes”) that requires color printing. To print the entire book in color print because of just one color chapter increases the cost sky-high. There is only one picture in that section that requires color so I have made it available for free in the jokes listed in the newly published excerpts.

Today, I noted that the physics, chemistry and biology joke sections did not have enough jokes and increased them to two pages minimum. The total number of jokes in the book is now above 470. Some unusual mistakes were also found and corrected.

How to search for 400 Fresh Clean Jokes For Everyone on Amazon

Stop quarantining “CORONAVIRUS” patients in enclosed places like hospitals, hotels, and ships! Use isolated open spaces to treat victims and limit spread of infection!

Developed countries are using medieval practices of quarantining. Concentrating the airborne virus in an enclosed space is a stupid procedure with a dangerous outcome.

Shiploads of people have been stranded on the sea and country after country are turning them away. What good is medical science if you have to be this callous?

When you quarantine people in enclosed places like hospitals, hotels and ships, you are only concentrating the number of viruses that are spread by the air. The virus gets settled in the ventilation system, from where they will continue to flourish and spread.

How to effectively quarantine and treat CORONAVIRUS patients

Instead, infected people should be taken to isolated flat grounds and placed under roof-only tents with limited paneling so that wind draft will harmlessly take away any virus sneezed or coughed into the air by patients. In cold places, room-heaters should be placed under patients beds so they do not feel the cold.

Without fresh supply of air, medical staff are putting themselves at risk of infection. This is how so many medical personnel have themselves become infected in China. Masks are useless in an atmosphere where the viral load is high.

If there is no medical personnel to treat the infected, then it is ZOMBIE APOCALYPSE.

How to quarantine and treat CORONAVIRUS patients

YouTube Annoyances Remover (GreaseMonkey JavaScript) 2020.01 update

Format labels are now included in the download links

Recently, I found that the thumbnails were not loading and the alternative download links were not getting listed. Both problems have been fixed in this update.

Youtube video download links and thumbnail fixed

About this User JS

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, and adds a link to the lighter version on Hooktube if video is not playable for codec reasons. Supports Firefox-based browser up to Firefox 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. For embedded YouTube videos, use the script com.vsubhash.js.embedded-video-catcher.user.js.

The download links can then be sent to the DownThemAll add-on with the file renaming mask set to “*text*.mp4”.

EmailTweetor v2020.01.21 for Linux/Mac/Windows can list trolls (followers) and follow, unfollow, mute, unmute, block and unblock Twitter accounts

I will add a direct message option when the ones that I am following start following me.

I have written another book – a book of cartoons. I wanted the book to be privately reviewed by some American commentators and had to manually log into Twitter to follow them. ‘Following’ is the only way to send a direct message with the download link.

I also found that some accounts following my account. The only way to block an account is to visit that person’s timeline and then click on block option. I hate to look at these people. (I block everyone on Twitter and I do not follow anyone.)

So, I updated EmailTweetor with new options – trolls, follow, unfollow, block, unblock, mute, and unmute.

EmailTweetor.jar -jar trolls #list 1000 followers
EmailTweetor.jar -jar block HillaryClinton #blocks the mad cow
EmailTweetor.jar -jar unblock realJamesWoods #unblocks the jailed

Bloomberg and New Yorker also protect their paywall with Javascript

Joins New York Times and BloombergQuint

Thanks to Modi’s slow Internet, I found yet another site taking forever to download. When the page finished downloading, the content of the article suddenly disappeared and paywall appeared. Now, Bloomberg is also confirmed to be using Javascript to protect its paywall.

A few months after I informed BloombergQuint, they implemented a real paywall with truncated content, instead of one protected by CSS. New York Times continues to be on Javascript security.

When you truncate content, search engines cannot find much value in the pages. These pages will not appear in the search results. CSS and Javascript paywalls continue to provide the content to search engines.

There is a simple alternative to all this. Like my website, use Javascript to lazy-load images, CSS, other Javascript files and content for sidebar, header and footer. Someone who disables Javascript will not see the images and miss out on formatting. Search engines will continue to index those pages.

Articles should be truncated and moved behind the paywall as they grow old. Their URLs should not be changed to retain whatever search engine mojo they have acquired. And, the meta tags for robots (in the HTML) should say “index,nofollow,nocache,noarchive”.

Update: I found that the New Yorker is also on Javascript security.

New York Times protects its paywall with JavaScript – BloombergQuint used CSS

Instead of promoting social media sites and writing click-baity articles using millennials, how about hiring some experienced journalists and programmers.

One of the advantages of having the Modi government’s slow Internet is that web pages take forever to download. I clicked on a link and this NYT page started downloading quite lethargically. For some time, I was able to read the article but when the Javascript gunk finished downloading the article suddenly got truncated and a floating panel asked me to register to read the article. So, I turned off Javascript and the article loaded in full. No registration necessary.

They say that the site is still free if you sign up but I was not going to investigate. With BloombergQuint, I had to write a GreaseMonkey script.

NYT paywall defeated by switching off Javascript

NYT paywall defeated by switching off Javascript