Repository navigation
Downloads Cookies
Cookies are private credentials. The native service stores personal cookies separately from the shared pool and rechecks current authority for reads and mutations.
Cookie lists return metadata, not contents. Request-body user IDs and JWT role claims do not select ownership.
Strict Netscape validation applies to ordinary uploads. Replacement retains relevant personal metadata and advances credential identity.
Queued work holds versioned references. Replacement or deletion invalidates stale references instead of silently selecting another cookie.
Personal capacity has configurable domain, actor-byte, and global-byte limits. Imported over-limit data can shrink or be removed without permitting new growth.
/cookie token issues a ten-minute single-use token. The browser extension submits it without a JWT.
Consumption and cookie writes commit together. Validation, capacity, or current-authorization failure rolls back the transaction and preserves the token.
Tokens expire when the current time reaches their deadline. Explicit revocation removes the actor's outstanding tokens.
The token response supplies the submission endpoint. It does not invent a mobile upload page.
YOINK_RUST_COOKIE_WEB_ORIGIN enables a link to the existing /cookies page. It requires an HTTPS origin without credentials, query, fragment, or a non-root path.
The native API does not serve the SPA. The operator must route the frontend and API at the configured origin.
There is no implemented /cookie-sync page. See the browser extension for the supported submission workflow.
Base path: /api/v1/dl/cookies.
| Method | Suffix | Purpose |
|---|---|---|
| GET, POST | Base path | Personal metadata and validated personal upsert. |
| POST | /upload |
Personal upload with authentication-cookie checks. |
| DELETE | /{domain} |
Personal domain removal. |
| DELETE | /by-id/{id} |
Personal owned-row removal or authorized administration. |
| GET |
/all, /pool
|
Authorized administrative metadata. |
| POST | /pool |
Authorized bounded pool update. |
| DELETE | /pool/{id} |
Authorized pool removal. |
| POST | /pool/refresh-labels |
Live account-label refresh. |
| POST | /{id}/validate |
Owned or administrative live validation. |
| POST, DELETE | /token |
Issue or revoke personal sync tokens. |
| POST | /submit |
Token-authorized browser cookie submission. |
| POST | /yttv/start |
Start an owned device session. |
| GET | /yttv/poll/{session} |
Poll the owned session. |
The HTTP router defines route ordering and response handling. No HTTP cookie-content export is exposed.
Inherited pool metadata requires current pool authority and a valid row. Pool opt-in is separate from permission.
Management operations recheck current bans, roles, and ownership under the protected write transaction.
Pool storage has its own finite bound. A personal mutation must not rewrite unrelated pool rows.
YouTube TV credentials use a typed versioned reference. Rust owns secret resolution, refresh, and current-authority checks.
Ordinary cookie upload does not accept OAuth credential JSON. Secret resolution is not a frontend content endpoint.
Provider calls happen outside the database guard. Protected writes recheck the expected reference and current authority afterward.
The combined YouTube service supplies the fixed Unix adapter. Synthetic device responses do not prove live account authorization.
| Setting | Default |
|---|---|
YOINK_RUST_COOKIE_OAUTH_POLL_BUDGET_SECS |
120. |
YOINK_RUST_COOKIE_OAUTH_RESULT_RETENTION_SECS |
1800. |
YOINK_RUST_COOKIE_OAUTH_MAX_INFLIGHT |
128. |
YOINK_RUST_COOKIE_OAUTH_CLEANUP_INTERVAL_SECS |
60. |
The accepted-work budget covers database waits, provider I/O, and persistence. Retries do not extend staged-result retention.
Shutdown closes poll admission and drains accepted tasks before store close. Its budget must exceed polling by more than five seconds.
Forced termination or prolonged database unavailability can still lose an unstaged provider response.
test-cookie-web-regression checks storage, HTTP, Telegram, and lifecycle contracts. test-personal-controls-native exercises actual token issuance, submission, and cookie-authenticated extraction on disposable state.
These checks do not establish the public reverse proxy, every browser flow, or live provider authorization.
- Native backup and restore
- Configuration
- Deployment and rollback
- PostgreSQL data import
- Installation
- Image publication
- Local releases
- User-mode Telegram session
- YouTube services
- Downloads
- Downloader commands and compatibility
- Cookies and YouTube authentication
- Native deferred private media
- Download history and automatic proxy routing
- Native downloader inline lookup
- Native downloader NSFW policy
- Downloader settings
- Inbox
- Inbox content processing
- Inbox durability and compatibility
- Inbox runtime
- Inbox Telegram delivery
- Access control and identity
- HTTP API
- Frontend architecture
- Runtime architecture
- Persistence and recovery
- Native Music and Stats composition
- Worker protocol
- Documentation and Wiki
- Local GitHub CI
- Media acceptance fixtures
- Development and verification
- Worker development