Youtube API refactor for testing

This PR is to address deficiencies discovered in #460, which calls for more testing "seams" to be present in the code. This will simply refactor the code to be more accessible during testing.

Closes #528