scheduler disabled
local polling disabled
active
command ready
read-only
due now
- Modern command
youtube:channels:videos
- Legacy command
/usr/bin/php /home/urtube/maint/get_video.php
- Schedule
*/5 * * * *每 5 分鐘
- Evaluation time
- 2026-05-26 09:55:09 Asia/Taipei
- External dependency
- Local DB
- Write targets
-
none by default; manual local-only `--execute` inserts videos/schedules/live rows
- Notes
- Legacy 會挑 `urt_channel.vtime` 到期或 NULL 的頻道,先把 `vtime` 推到一小時後,再呼叫 YouTube `playlistItems.list(snippet)` 抓 uploads playlist,insert `urt_video`、`urt_video_schedule`,live/upcoming 時 insert `urt_video_live`,最後依近七天影片數估算下一次 `vtime`。Modern command 預設仍只列出 would-fetch channels 和本地估算;manual local-only `--execute --id/--channel --limit --max-results` 會檢查 `YOUTUBE_API_KEY` 後限量呼叫 YouTube,idempotently upsert 本機 `urt_video`、`urt_video_schedule`、`urt_video_live` 並更新 `urt_channel.vtime`。Scheduler 不傳 `--execute`,仍是 dry-run。
Execution Guardrail
This job is read-only, active, command-ready, and allowed to execute when its cron expression is due. Scheduler execution still requires INGESTION_SCHEDULER_ENABLED=true.
Scheduled Local Polling
Scheduler-enabled local polling is blocked for this job until every explicit gate is satisfied.
- INGESTION_LOCAL_POLLING_ENABLED is false.
- Job key is not in INGESTION_SCHEDULED_WRITE_ALLOWLIST.
- Production polling is not explicitly enabled.
youtube:channels:videos --execute --limit=1 --max-results=1
Safe Commands
php artisan ingestion:run --job=youtube.channels.videos.general --at="2026-05-26 09:55:09"
INGESTION_SCHEDULER_ENABLED=true php artisan ingestion:run --execute --job=youtube.channels.videos.general
INGESTION_SCHEDULER_ENABLED=true INGESTION_LOCAL_POLLING_ENABLED=true INGESTION_SCHEDULED_WRITE_ALLOWLIST=youtube.channels.videos.general php artisan ingestion:run --execute --job=youtube.channels.videos.general
Next Runs
*/5 * * * *
- 2026-05-26 10:00:00 CST
- 2026-05-26 10:05:00 CST
- 2026-05-26 10:10:00 CST
- 2026-05-26 10:15:00 CST
- 2026-05-26 10:20:00 CST