Из того, что вы пишете, мне кажется, что вы не поняли концепцию OAuth и когда использовать OAuth против ключа API.
Попытайтесь думать об этом так: у вас, как человека, есть учетная запись Google. Этот аккаунт Google не совпадает с вашим аккаунтом YouTube (или, как его чаще называют, вашим каналом YouTube). Но ваша учетная запись Google связана с вашим каналом YouTube (из которых вы можете иметь несколько). Поскольку вы вошли в свою учетную запись Google, а ваш канал и учетная запись Google связаны, веб-сайт YouTube знает, кто вы, и предоставляет вам доступ к своему каналу.
Теперь вы переходите на консоль Google Cloud. Здесь вы создаете проект, который очень похож на учетную запись YouTube в том смысле, что он также является независимой учетной записью, которая в данном случае представляет ваше приложение, но связана с вашей учетной записью Google, так что веб-сайт Cloud Console знает, как дать вам доступ к проекту, если вы вошли в свою учетную запись Google.
ОДНАКО, ваш аккаунт YouTube не связан с вашим проектом Cloud Console. Когда вы делаете запрос API с ключом API, API видит вас не так, как в «вашей учетной записи Google», а скорее проект Cloud Console вашего приложения. Вот почему с ключом API вы можете получить доступ только к общедоступным данным (все, что вы могли «видеть», просматривая YouTube, не входя в систему).
Таким образом, для того, чтобы приложение могло считывать информацию о частном канале или изменять информацию о канале, API необходимо проверить, что тому, кто делает этот запрос, действительно разрешено это делать. Это где OAuth вступает в игру.
Когда вы говорите, что должны предоставлять код подтверждения для каждого запроса, я думаю, что вы не сохраняете токен доступа и не обновляете токен. Я настоятельно рекомендую вам прочитать Использование OAuth 2.0 для доступа к API Google и Получение учетных данных авторизации для разработчиков Google, чтобы помочь вам начать работу.