What’s the difference between 마치다, 끝나다, and 끝내다?

This is the best video I’ve found on the topic:

The teacher also explains 마무리하다. I especially like how he describes the difference between 끝나다 (“the end shows up”) and 끝내다 (“to pull out the end”). I still struggle with difference between 끝내다 and 마치다. I will try to address that question in another page.