DailyDoseNews-contentManager

Official application site for Google OAuth verification. This desktop/CLI app helps upload, schedule, and manage YouTube Videos securely and locally across three owned channels.

This page contains the explanations, policies, and contact information required for Google OAuth app verification.

Demo video showing OAuth flow, video upload, and metadata update.

Requested Scopes and Justifications

To upload, edit, and manage multiple items across three channels at the same time—building the automations that keep this operation concurrent and sustainable—these scopes are required.

./auth/youtube.upload

This scope is used to programmatically upload multiple items to three channels at once via videos.insert. If needed, scheduling is done with status.publishAt. During testing, all uploads are set to private by default. Uploading with a narrower scope is not possible. This permission is required to keep multi-channel, multi-asset upload flows sustainable.

./auth/youtube

This scope is required to manage existing content beyond uploads: update titles/descriptions/tags (videos.update), set thumbnails (thumbnails.set), edit playlists (playlists.*, playlistItems.*), and schedule/update live broadcasts (liveBroadcasts.*). youtube.upload alone does not cover these operations. This scope is necessary for the automations that keep multi-channel content operations concurrent and sustainable across the three channels.

Data Handling, Storage and Removal

DailyDoseNews-contentManager is a production-ready tool under continuous development. It currently operates on my three channels but is designed to scale further.

Testing Instructions

Prerequisites

  • Google/YouTube account for testing.
  • Desktop/CLI environment (Python 3.10+).
  • Project directory: contentManager/youtube/.

Setup

pip install google-api-python-client google-auth google-auth-oauthlib pyyaml python-dateutil

Place OAuth client JSON into contentManager/youtube/secrets/google_client_secret.json.

On first run, a browser window will open for consent.

Test Steps (TR channel)

  1. Edit YAML: contentManager/youtube/centers/tr.yaml → set flags.videos.insert: true.
  2. Add a sample video path in upload.media.path.
  3. (Optional) Set default_schedule date/time.
  4. Run: python -m contentManager.youtube.pipelines.yt_run_center --channel tr
  5. Consent screen: only https://www.googleapis.com/auth/youtube and https://www.googleapis.com/auth/youtube.upload are requested.
  6. Expected logs: videos.insert (and if enabled: videos.update, thumbnails.set, playlistItems.insert) in contentManager/youtube/logs/tr/<date>/<run_id>/run.log.
  7. artifacts.json contains the new video_id.
  8. Video appears in YouTube Studio (Private/Planned/Public per YAML).
  9. Revoke access: delete token_tr.json or via Google Account → Security → Third-party access.

Other Channels

Repeat the same steps for EN/AR channels with --channel en / --channel ar.

Contact & Support

For questions, support, or issues regarding the app:

Support Email : kmclabs.digital@gmail.com, kutaycetiner@gmail.com

This email address is also listed in the Google OAuth “User support email” field.

Developer/Owner: Kutay Mehmet Çetiner — Software Engineer based in Izmir, Turkiye.

Project: DailyDoseNews-contentManager is a production-ready application used to manage my YouTube channels. It is actively maintained, and future updates and improvements are always announced here on the official site.