What is the best way to extend \Drupal\node\Entity\Node? When dealing with nodes on Drupal 8, we usually receive an instance from \Drupal\node\Entity\Node, that is great in many aspects, but i'm not sure on how to extend it so that I can use classes that represent something in my own domain, rather that generically using Node. I can make this here:

class Video extends \Drupal\node\Entity\Node {}


Ok. But to have Video::load() and that sort of things, i'm seeing that I need to probably also extend NodeStorage, because everything returns a Node class and type changing seems to be not so easy in PHP from what i'm seeing until now. I'm not sure if this is really the way to go.

I really like to work extending Node(I used to extend EntityDrupalWrapper on D7), as it becomes easier for newcomers to the project and to have stuff like $Video->getFileUrl()

Any ideas?
You shouldn't extend Node but rather \Drupal\Core\Entity\ContentEntityBase or \Drupal\Core\Config\Entity\ConfigEntityBase.