import type { Metadata } from "next"; import Link from "next/link"; import { getPaths } from "yt-dlp-transcript-common/lib/paths"; import { getSettings } from "yt-dlp-transcript-common/lib/settings"; import { readXSessionStatus } from "yt-dlp-transcript-common/social/xSessionBroker"; import { resolveXCookieSourceFor } from "yt-dlp-transcript-common/social/xBrowserLogin"; import { xCookieSourceView } from "yt-dlp-transcript-common/social/xCookieSource"; import { xPostsVisibility } from "yt-dlp-transcript-common/lib/postsVisibility"; import { SettingsForm } from "./components/SettingsForm"; import { XSessionSection } from "./components/XSessionSection"; export const dynamic = "force-dynamic"; export const metadata: Metadata = { title: "Settings" }; const POINTER_LINK = "underline underline-offset-2 hover:text-foreground"; export default async function SettingsPage() { const paths = getPaths(); const settings = getSettings(); const pathRows: [string, string][] = [ ["monorepoRoot", paths.monorepoRoot], ["transcriptsDir", paths.transcriptsDir], ["channelsDir", paths.channelsDir], ["jobsDir", paths.jobsDir], ["lmdbPath", paths.lmdbPath], ["exportPublicDir", paths.exportPublicDir], ["ytdlpBin", paths.ytdlpBin], ["whisperBin", paths.whisperBin], ["whisperModel", paths.whisperModel], ["galleryDlBin", paths.galleryDlBin], ]; // The X session broker's current state and the X login source in use (see // xSessionActions.ts). The source is resolved here, not read: with no stored // choice it depends on cookiesFromBrowser and the profile. const xSession = await readXSessionStatus(paths); const xSource = xCookieSourceView( await resolveXCookieSourceFor(paths, settings), ); return (
Persisted in settings.json at the monorepo root.
Used by the export build to title the static site.
An operation's own settings live on its page, beside its backlog and its sweep:{" "} Digest ,{" "} Diarization {" "} (with the shared speaker work lane),{" "} Speaker names (from the transcript) {" "} and{" "} Speaker names (from the audio) . The sync scheduler is one of them:{" "} Sync {" "} carries the whole block, below the schedule it drives. The transcription worker list is configured on{" "} Workers , beside the workers it describes.
Read-only view of getPaths(). Set the matching env
vars (TRANSCRIPTS_DIR, SETTINGS_FILE, EXPORT_PUBLIC_DIR, YTDLP_BIN,
WHISPER_BIN, WHISPER_MODEL, CHOUGH_BIN, CHOUGH_URL, CHOUGH_MODEL)
before launching to override. The per-app Binary / Model fields in
the transcription settings above take precedence over these defaults
when running channel transcribe actions.
| {key} | {value} |
|---|