Finished the URL checker. These are the choices I made:
I added the checker in gui.py around the original error code from the YouTubeVideo object, so it's easy to grasp if the error is being caught from the URL checker or the underlying YouTube downloader (pytube in this case);
I had to add one dependency, 'tld', to isolate the domain. The only direct calls to tld are from updateTldList() and from checkUrl(), so it's easy to remove the dependency if needed. The main workload of the checker is done by urllib.parser.
Finished the URL checker. These are the choices I made:
So, that's it. I hope you like it.