gitextract_xvmn6t33/ ├── .deepsource.toml ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-main-instance.yml │ │ ├── bug-report.yml │ │ ├── config.yml │ │ ├── feature-request.yml │ │ ├── hosting-help.yml │ │ └── service-request.yml │ ├── test.sh │ └── workflows/ │ ├── codeql.yml │ ├── docker-develop.yml │ ├── docker-staging.yml │ ├── docker.yml │ ├── fast-forward.yml │ ├── test-services.yml │ └── test.yml ├── .gitignore ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── api/ │ ├── LICENSE │ ├── README.md │ ├── package.json │ └── src/ │ ├── cobalt.js │ ├── config.js │ ├── core/ │ │ ├── api.js │ │ ├── env.js │ │ └── itunnel.js │ ├── misc/ │ │ ├── cluster.js │ │ ├── console-text.js │ │ ├── crypto.js │ │ ├── file-watcher.js │ │ ├── language-codes.js │ │ ├── load-from-fs.js │ │ ├── randomize-ciphers.js │ │ ├── run-test.js │ │ └── utils.js │ ├── processing/ │ │ ├── cookie/ │ │ │ ├── cookie.js │ │ │ └── manager.js │ │ ├── create-filename.js │ │ ├── helpers/ │ │ │ └── youtube-session.js │ │ ├── match-action.js │ │ ├── match.js │ │ ├── request.js │ │ ├── schema.js │ │ ├── service-alias.js │ │ ├── service-config.js │ │ ├── service-patterns.js │ │ ├── services/ │ │ │ ├── bilibili.js │ │ │ ├── bluesky.js │ │ │ ├── dailymotion.js │ │ │ ├── facebook.js │ │ │ ├── instagram.js │ │ │ ├── loom.js │ │ │ ├── newgrounds.js │ │ │ ├── ok.js │ │ │ ├── pinterest.js │ │ │ ├── reddit.js │ │ │ ├── rutube.js │ │ │ ├── snapchat.js │ │ │ ├── soundcloud.js │ │ │ ├── streamable.js │ │ │ ├── tiktok.js │ │ │ ├── tumblr.js │ │ │ ├── twitch.js │ │ │ ├── twitter.js │ │ │ ├── vimeo.js │ │ │ ├── vk.js │ │ │ ├── xiaohongshu.js │ │ │ └── youtube.js │ │ └── url.js │ ├── security/ │ │ ├── api-keys.js │ │ ├── jwt.js │ │ ├── secrets.js │ │ └── turnstile.js │ ├── store/ │ │ ├── base-store.js │ │ ├── memory-store.js │ │ ├── redis-ratelimit.js │ │ ├── redis-store.js │ │ └── store.js │ ├── stream/ │ │ ├── ffmpeg.js │ │ ├── internal-hls.js │ │ ├── internal.js │ │ ├── manage.js │ │ ├── proxy.js │ │ ├── shared.js │ │ └── stream.js │ └── util/ │ ├── generate-jwt-secret.js │ ├── test.js │ └── tests/ │ ├── bilibili.json │ ├── bsky.json │ ├── dailymotion.json │ ├── facebook.json │ ├── instagram.json │ ├── loom.json │ ├── newgrounds.json │ ├── ok.json │ ├── pinterest.json │ ├── reddit.json │ ├── rutube.json │ ├── snapchat.json │ ├── soundcloud.json │ ├── streamable.json │ ├── tiktok.json │ ├── tumblr.json │ ├── twitch.json │ ├── twitter.json │ ├── vimeo.json │ ├── vk.json │ ├── xiaohongshu.json │ └── youtube.json ├── docs/ │ ├── api-env-variables.md │ ├── api.md │ ├── examples/ │ │ ├── cookies.example.json │ │ └── docker-compose.example.yml │ ├── protect-an-instance.md │ └── run-an-instance.md ├── package.json ├── packages/ │ ├── api-client/ │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── LICENSE │ │ ├── package.json │ │ └── tsconfig.json │ └── version-info/ │ ├── index.d.ts │ ├── index.js │ └── package.json ├── pnpm-workspace.yaml └── web/ ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── changelogs/ │ ├── 10.0.md │ ├── 10.1.md │ ├── 10.3.md │ ├── 10.5.md │ ├── 11.0.md │ ├── 11.2.md │ ├── 2.0.md │ ├── 2.2.5.md │ ├── 2.2.6.md │ ├── 2.2.8.md │ ├── 2.2.9.md │ ├── 2.2.md │ ├── 3.0.md │ ├── 3.1.md │ ├── 3.2.md │ ├── 3.4.md │ ├── 3.5.2.md │ ├── 3.5.4.md │ ├── 3.5.md │ ├── 3.6.3.md │ ├── 3.6.md │ ├── 3.7.md │ ├── 4.0.md │ ├── 4.1.md │ ├── 4.2.md │ ├── 4.3.2.md │ ├── 4.3.md │ ├── 4.4.md │ ├── 4.5.md │ ├── 4.6.md │ ├── 4.7.md │ ├── 4.8.md │ ├── 5.0.md │ ├── 5.1.md │ ├── 5.2.md │ ├── 5.3.md │ ├── 5.4.md │ ├── 6.0.md │ ├── 6.2.md │ ├── 7.0.md │ ├── 7.1.md │ ├── 7.11.md │ ├── 7.13.md │ ├── 7.14.md │ ├── 7.3.md │ ├── 7.4.md │ ├── 7.5.md │ ├── 7.6.md │ ├── 7.7.md │ ├── 7.8.md │ └── 7.9.md ├── eslint.config.js ├── i18n/ │ ├── en/ │ │ ├── a11y/ │ │ │ ├── dialog.json │ │ │ ├── donate.json │ │ │ ├── general.json │ │ │ ├── queue.json │ │ │ ├── save.json │ │ │ └── tabs.json │ │ ├── about/ │ │ │ ├── credits.md │ │ │ ├── general.md │ │ │ ├── privacy.md │ │ │ └── terms.md │ │ ├── about.json │ │ ├── button.json │ │ ├── dialog.json │ │ ├── donate.json │ │ ├── error/ │ │ │ ├── api.json │ │ │ └── queue.json │ │ ├── error.json │ │ ├── general.json │ │ ├── notification.json │ │ ├── queue.json │ │ ├── receiver.json │ │ ├── remux.json │ │ ├── save.json │ │ ├── settings.json │ │ ├── tabs.json │ │ └── updates.json │ ├── languages.json │ └── ru/ │ ├── a11y/ │ │ ├── dialog.json │ │ ├── donate.json │ │ ├── general.json │ │ ├── queue.json │ │ ├── save.json │ │ └── tabs.json │ ├── about/ │ │ ├── credits.md │ │ ├── general.md │ │ ├── privacy.md │ │ └── terms.md │ ├── about.json │ ├── button.json │ ├── dialog.json │ ├── donate.json │ ├── error/ │ │ ├── api.json │ │ └── queue.json │ ├── error.json │ ├── general.json │ ├── notification.json │ ├── queue.json │ ├── receiver.json │ ├── remux.json │ ├── save.json │ ├── settings.json │ ├── tabs.json │ └── updates.json ├── package.json ├── src/ │ ├── app.css │ ├── app.d.ts │ ├── app.html │ ├── components/ │ │ ├── about/ │ │ │ └── AboutSupport.svelte │ │ ├── buttons/ │ │ │ ├── ActionButton.svelte │ │ │ ├── SettingsButton.svelte │ │ │ ├── SettingsToggle.svelte │ │ │ ├── Switcher.svelte │ │ │ └── VerticalActionButton.svelte │ │ ├── changelog/ │ │ │ ├── ChangelogEntry.svelte │ │ │ └── ChangelogEntryWrapper.svelte │ │ ├── dialog/ │ │ │ ├── DialogBackdropClose.svelte │ │ │ ├── DialogButton.svelte │ │ │ ├── DialogButtons.svelte │ │ │ ├── DialogContainer.svelte │ │ │ ├── DialogHolder.svelte │ │ │ ├── NoScriptDialog.svelte │ │ │ ├── PickerDialog.svelte │ │ │ ├── PickerItem.svelte │ │ │ ├── SavingDialog.svelte │ │ │ ├── SavingTutorial.svelte │ │ │ └── SmallDialog.svelte │ │ ├── donate/ │ │ │ ├── DonateAltItem.svelte │ │ │ ├── DonateBanner.svelte │ │ │ ├── DonateCardContainer.svelte │ │ │ ├── DonateOptionsCard.svelte │ │ │ ├── DonateShareCard.svelte │ │ │ └── DonationOption.svelte │ │ ├── icons/ │ │ │ ├── Clipboard.svelte │ │ │ ├── Cobalt.svelte │ │ │ ├── CobaltQR.svelte │ │ │ ├── CobaltSticker.svelte │ │ │ ├── Imput.svelte │ │ │ ├── Music.svelte │ │ │ ├── Mute.svelte │ │ │ └── Sparkles.svelte │ │ ├── misc/ │ │ │ ├── AboutPageWrapper.svelte │ │ │ ├── BetaTesters.svelte │ │ │ ├── BulletExplain.svelte │ │ │ ├── CopyIcon.svelte │ │ │ ├── DropReceiver.svelte │ │ │ ├── FileReceiver.svelte │ │ │ ├── Meowbalt.svelte │ │ │ ├── NotchSticker.svelte │ │ │ ├── OuterLink.svelte │ │ │ ├── Placeholder.svelte │ │ │ ├── PopoverContainer.svelte │ │ │ ├── SectionHeading.svelte │ │ │ ├── Skeleton.svelte │ │ │ ├── Toggle.svelte │ │ │ ├── Turnstile.svelte │ │ │ └── UpdateNotification.svelte │ │ ├── queue/ │ │ │ ├── ProcessingQueue.svelte │ │ │ ├── ProcessingQueueItem.svelte │ │ │ ├── ProcessingQueueStub.svelte │ │ │ ├── ProcessingStatus.svelte │ │ │ └── ProgressBar.svelte │ │ ├── save/ │ │ │ ├── CaptchaTooltip.svelte │ │ │ ├── Omnibox.svelte │ │ │ ├── OmniboxIcon.svelte │ │ │ ├── SupportedServices.svelte │ │ │ └── buttons/ │ │ │ ├── ClearButton.svelte │ │ │ └── DownloadButton.svelte │ │ ├── settings/ │ │ │ ├── ClearStorageButton.svelte │ │ │ ├── DataSettingsButton.svelte │ │ │ ├── FilenamePreview.svelte │ │ │ ├── ManageSettings.svelte │ │ │ ├── ResetSettingsButton.svelte │ │ │ ├── SettingsCategory.svelte │ │ │ ├── SettingsDropdown.svelte │ │ │ └── SettingsInput.svelte │ │ ├── sidebar/ │ │ │ ├── CobaltLogo.svelte │ │ │ ├── Sidebar.svelte │ │ │ └── SidebarTab.svelte │ │ └── subnav/ │ │ ├── PageNav.svelte │ │ ├── PageNavSection.svelte │ │ └── PageNavTab.svelte │ ├── fonts/ │ │ └── noto-mono-cobalt.css │ ├── lib/ │ │ ├── api/ │ │ │ ├── api-url.ts │ │ │ ├── api.ts │ │ │ ├── safety-warning.ts │ │ │ ├── saving-handler.ts │ │ │ ├── server-info.ts │ │ │ ├── session.ts │ │ │ └── turnstile.ts │ │ ├── changelogs.ts │ │ ├── clipboard.ts │ │ ├── device.ts │ │ ├── download.ts │ │ ├── env.ts │ │ ├── haptics.ts │ │ ├── i18n/ │ │ │ ├── locale.ts │ │ │ └── translations.ts │ │ ├── libav.ts │ │ ├── polyfills/ │ │ │ ├── abortsignal-timeout.ts │ │ │ └── user-activation.ts │ │ ├── polyfills.ts │ │ ├── settings/ │ │ │ ├── audio-sub-language.ts │ │ │ ├── defaults.ts │ │ │ ├── lazy-get.ts │ │ │ ├── migrate-v7.ts │ │ │ ├── migrate.ts │ │ │ └── validate.ts │ │ ├── state/ │ │ │ ├── dialogs.ts │ │ │ ├── omnibox.ts │ │ │ ├── queue-visibility.ts │ │ │ ├── server-info.ts │ │ │ ├── settings.ts │ │ │ ├── task-manager/ │ │ │ │ ├── current-tasks.ts │ │ │ │ └── queue.ts │ │ │ ├── theme.ts │ │ │ └── turnstile.ts │ │ ├── storage/ │ │ │ ├── index.ts │ │ │ ├── memory.ts │ │ │ ├── opfs.ts │ │ │ └── storage.ts │ │ ├── subnav.ts │ │ ├── task-manager/ │ │ │ ├── queue.ts │ │ │ ├── run-worker.ts │ │ │ ├── runners/ │ │ │ │ ├── fetch.ts │ │ │ │ └── ffmpeg.ts │ │ │ ├── scheduler.ts │ │ │ └── workers/ │ │ │ ├── fetch.ts │ │ │ └── ffmpeg.ts │ │ ├── types/ │ │ │ ├── api.ts │ │ │ ├── changelogs.ts │ │ │ ├── dialog.ts │ │ │ ├── generic.ts │ │ │ ├── i18n.ts │ │ │ ├── libav.ts │ │ │ ├── meowbalt.ts │ │ │ ├── omnibox.ts │ │ │ ├── queue.ts │ │ │ ├── settings/ │ │ │ │ ├── v2.ts │ │ │ │ ├── v3.ts │ │ │ │ ├── v4.ts │ │ │ │ ├── v5.ts │ │ │ │ └── v6.ts │ │ │ ├── settings.ts │ │ │ ├── task-manager.ts │ │ │ └── workers.ts │ │ ├── util.ts │ │ └── version.ts │ └── routes/ │ ├── +error.svelte │ ├── +layout.svelte │ ├── +layout.ts │ ├── +page.svelte │ ├── _headers/ │ │ └── +server.ts │ ├── about/ │ │ ├── +layout.svelte │ │ ├── +page.svelte │ │ ├── [page]/ │ │ │ ├── +page.svelte │ │ │ └── +page.ts │ │ └── community/ │ │ └── +page.svelte │ ├── donate/ │ │ └── +page.svelte │ ├── remux/ │ │ └── +page.svelte │ ├── settings/ │ │ ├── +layout.svelte │ │ ├── +page.svelte │ │ ├── accessibility/ │ │ │ └── +page.svelte │ │ ├── advanced/ │ │ │ └── +page.svelte │ │ ├── appearance/ │ │ │ └── +page.svelte │ │ ├── audio/ │ │ │ └── +page.svelte │ │ ├── debug/ │ │ │ └── +page.svelte │ │ ├── instances/ │ │ │ └── +page.svelte │ │ ├── local/ │ │ │ └── +page.svelte │ │ ├── metadata/ │ │ │ └── +page.svelte │ │ ├── privacy/ │ │ │ └── +page.svelte │ │ └── video/ │ │ └── +page.svelte │ ├── updates/ │ │ └── +page.svelte │ └── version.json/ │ └── +server.ts ├── static/ │ └── manifest.json ├── svelte.config.js ├── tsconfig.json ├── vite.config.ts └── wrangler.jsonc