added  help message, requirements and exit code check

Hey I've updated the script to to fail more gracefully

- added help message (`-h` `--help`)
- added requirement check
- added exid code check of `youtube-dl`
- refactored to use functions