The short version: your library stays on your own computer unless you choose an optional AI action or explicitly share a generated file. The developer operates no servers, collects no data, and never sees anything you save. AI categorization sends selected post text directly from your browser to Google Gemini using your own API key; selected-post sharing sends a local file only to the person or app you choose through your operating system.
This policy covers Threads, Instagram, Facebook, X Posts Library & Downloader, formerly Post Library and referred to below as Post Library.
Post Library saves posts from your own logged-in account's Saved list, or original posts from a public Threads profile that you explicitly enter, into a private, searchable library on your device. A public-profile run uses your current browser session and reads only what Threads publicly loads in that run; it skips replies, reposts, private or unavailable content and ambiguous cards, and does not promise the account's complete history.
For Instagram, choose your own Saved list or enter an Instagram public profile; both use the current browser session. Public-profile mode reads only exact-user post/reel links in the main profile grid and checks the detail author before saving. Login, private, unavailable or blocked pages stop without bypass or automatic retry, and the loaded results are not complete account history.
For Facebook, this version can read the user's own Saved list after the user presses Start. It opens that list in a separate Facebook window, gathers only the bounded items Facebook loads for that run, and verifies each supported exact post before saving. Unsupported items are skipped; login, checkpoint, rate-limit, private/unavailable and wrong-target states stop without bypass or automatic retry. It does not promise complete Saved history. It also supports user-started exact text posts, pure-photo posts/carousels, one /photo/?fbid=… photo, one /reel/<id> Reel and ordinary/group posts with one directly attached progressive MP4. A pasted link may omit https://; official mobile/web aliases are normalised to www.facebook.com. A strict fb.watch short link is used only to navigate until Facebook resolves it to an already-supported exact identity: the extension has no permission to read the short host and injects no reader there. For an exact-link action, after optional permission is granted, it opens one inactive background tab in the current browser session and checks bounded login/checkpoint, rate-limit, private/unavailable and exact-target signals without taking focus from the dashboard. A successful action closes that tab; a failed action may retain only the inactive tab for inspection. An ordinary post is accepted only when a direct Story's own id or permalink matches the requested post. It uses that Story's ordered direct Photo attachments or one immediate Video whose asset id matches both nested delivery ids; the outer post identity, author and text stay separate from the Video asset. Chrome must confirm every carousel photo or the verified MP4 as complete before one local Library record is written. A Reel progressive file needs the requested id at both nested delivery layers. If an exact Facebook Library write fails, newly accepted files are removed or handed to terminal cleanup; a path already referenced by the previous record is not deleted. Shared or nested Stories, mixed-media ordinary posts, multiple-video or ambiguous attachments, conflicting photo groups, adjacent stories and recommendations are rejected without a record. A direct photo uses its HTTPS Facebook-CDN image; a Reel uses an exact progressive MP4, preferring HD. A DASH-only Reel is labelled Partial and may keep proven text/poster without claiming a Library MP4. The standalone Photo action downloads only an exact direct photo or pure-photo post/carousel; standalone Video handles a progressive exact Reel or an ordinary/group post with one directly attached progressive MP4. Ordinary DASH-only posts remain unsupported. These standalone actions write no Library record or backup.html, never substitute a Reel poster or DASH stream, and count success only after Chrome confirms the file complete. Facebook profile scanning remains disabled. The extension never reads or exports Facebook cookies or tokens, replays internal requests, or sends Facebook content to the developer.
For Patreon (beta), you can paste one accessible exact post, creator /home or /posts page, creator /collections page, or exact /collection/<id> link. Only after you grant optional access and start the action does the extension use your current Patreon login. It keeps the requested creator/collection list visible while a separate owned tab verifies exact posts, and it presses only the main control named exactly Load more, never Load more comments. Supported post text, photos and videos can be saved into the local Library, or the named media type can be downloaded without a Library write. Locked, blocked, unavailable, wrong-route, ambiguous and non-progressing pages stop without bypass, and creator/collection results are not promised as complete history. Mux HLS transport is handled only by the already-open exact Patreon page through its normal page origin; the extension requests no Mux host permission and sends no Patreon content to the developer.
For X, choose Bookmarks or Likes and press Start, or paste one exact X /<user>/status/<id> into Save this post, Download photos only or Download videos only. Optional access is requested only from that chosen action. A History run uses your current signed-in browser session and keeps the exact /i/history or /i/history/likes route in one inactive tab. Both History and one-link actions first make one credential-free GET of each exact public status URL, reading at most 4 MiB. The result is accepted only when head metadata proves the canonical username/status id and creator, the exact Tweet root links to its own details and separate counts object, and the complete ordered media_entities2 reference list resolves only to that root's native media rows. A proved native photo/video or an explicit empty native-media list can save without rendering an exact-status tab; external card_img artwork remains a link preview, not an X photo. Private, unavailable or unsupported public shapes fall back to one inactive signed-in exact-status tab. If that fallback is still showing X's loading shell, a temporary no-article result enters a bounded readiness window for the exact outer article before the settled content/media reads; login, rate-limit and wrong-status results still stop immediately, and the tab is not activated. X Bookmarks and Likes skip every status already in Library by default, including older blank and Partial records. Enable Settings → Update existing X posts to refresh existing records on future History runs. Pasting one exact link and saving it explicitly still updates that post. A proved empty media set stores that small marker locally inside the existing forward-compatible record section, and JSON or Full backup/restore preserves it. One immutable status id owns one record, so the same status is updated rather than duplicated. A direct save does not invent a Bookmarks/Likes membership and preserves any real memberships already stored. Outer post text, the exact outer post's public like/reply totals and the requested name=orig variant of pbs.twimg.com/media/ photos stay local. External article-card previews, including CTV-style link previews, remain links and are not copied as native X photos. Photo-only downloads only exact outer photos and never a video poster; both standalone actions leave Library and backup.html unchanged. Reply bodies and quoted-post content/media are not borrowed. For a MediaSource blob: video in History or a tab-backed fallback, one packaged page script is dynamically registered only during that user-started run, only for X, and removed after the owned tab closes; Photo-only does not register it or request webRequest/video-host access. Whether X uses Fetch or XHR, it inspects only X GraphQL JSON responses the exact status page already requested, traverses a bounded number of nodes to locate the exact Tweet, reads only that Tweet's declared extended_entities.media[].video_info.variants, and temporarily exposes at most 20 known progressive-MP4 metadata rows. When that exact video/animated-GIF media row has a generic pbs.twimg.com/media/ poster, the temporary row may additionally carry only that poster URL and numeric media id so the extension can require the id to equal the MP4's CDN asset. It does not make or replay an internal API request and does not retain other response fields. The bounded public exact-status document may also supply literal declared MP4 rows whose media family/id matches its exact poster. A generic poster is accepted only when the same bounded ApiMediaEntity is a video/animated GIF and its own id_str equals the candidate asset; Photo rows, escaped post text, source_status_id_str and arbitrary images cannot substitute. An optional non-blocking response listener is separately restricted to one extension-owned fallback/History tab and video.twimg.com; a proved no-tab one-link action creates no listener. It temporarily retains only a bounded media URL, HTTP status and Content-Type tuple. Every captured row is treated as untrusted. A direct progressive MP4—including X's current codec-labelled form only when exact declarative metadata supplied it—is saved only when its family/asset id or the exact media-object relationship matches the exact status poster and a fresh credential-free request returns one full HTTP 200 response that again passes the exact host/path, MIME and file-signature checks. HLS playlists, /aud/, segments, unknown streams and unmatched or failed files keep only the poster with an explicit Partial reason for a Library save and produce no standalone video file. Login, wrong-route, rate-limit, unreadable and repeated-layout failures stop without bypass or automatic retry. The reader never accesses or exports X page cookies, tokens, request bodies or headers, unrelated response headers or X page local/session storage, clicks Like/Bookmark controls, or calls/replays internal X requests or APIs; no X content is sent to the developer.
X Link previews are separate from X photos. When the exact requested Tweet root proves its own external Card, Post Library stores the safe destination URL, title and site as a labelled Link preview. Its optional image is requested without credentials only from an exact pbs.twimg.com/card_img/ URL, streamed to an 8 MiB limit and kept only after final URL/path, HTTP 200, image MIME and file-signature checks. A failed image becomes a text-only preview. Link-preview artwork is not added to native photo arrays, Pictures/OCR or Download photos only. Its local thumbnail is covered by Library/offline display, text search, JSON and Full backup/restore, and is removed when an exact later save proves that Card was removed or replaced.
For supported ordinary/group posts, the Facebook comments-per-post setting limits collection to 0–200 available top-level comments (default 20; 0 disables collection). A captured comment can include its own identifier/permalink, author, available text and directly attached verified photos. It does not collect nested replies, paginate comment history or support comments on direct Photo/Reel pages. Up to four photos per comment may be saved, within bounded image-size, total-size and time limits; the loaded image may be a small preview rather than a full-resolution original. Comment photos are fetched without credentials or redirects from permitted Facebook media hosts and checked before being stored locally. They stay separate from the parent post's photos and standalone photo downloads. Off or unavailable collection preserves previous comments, and image failures retain text and previously saved pictures.
None. Post Library has no analytics, no tracking, no telemetry, no ads and no developer-operated servers. Nothing you save, type or configure is ever transmitted to the developer.
backup.html) are written to a folder you choose inside your Downloads folder. This can include a separately owned X link_preview.jpg; it is not an X photo. Standalone photo/video actions write only native media to photo_downloads/video_downloads and do not add Library data or rewrite backup.html..plbackup download you start after choosing your library folder. It can contain post records (including valid To do/reminder data), category order, selected non-sensitive settings, in-app media and readable listed media files; API keys, tokens, login/session data, computer paths and computer-account names are excluded. If a listed file cannot be read, the archive is labelled Partial with its relative name.Prepare project references, Video research brief, and Projects and private notes are archived in version 0.49.23: their editor entry points are disabled. Existing project references, private notes and workflow checkpoints are retained locally; archiving does not erase them. Compatible JSON and Full backups continue to preserve supported private data, and a complete offline backup can contain its labelled private section. Restore may show a conflict decision for existing private data. Selected sharing, AI categorization, Related posts and notifications do not automatically include private notes or project names.
Adding a saved post to your To do list, its due date, snooze state and completion state stay with that post in local extension storage. You can use all of these Library controls without granting notifications. When you first save a due date, Post Library explains the optional system alert before Chrome asks. If you allow it, Chrome receives only a generic local notification request: the extension name as the title and how many saved posts are due. It never includes post text, author, category, media, replies or picture-reading text, and nothing is sent to the developer. A browser or device that was asleep can show the alert later than the due time.
Settings lets you hide reminder controls and the Related posts button independently. These display preferences stay on this device; hiding reminder controls does not cancel existing reminders.
Only when you press Related posts on a saved card, Post Library makes a bounded local scan of up to 100,000 saved records already on your device and can show up to five non-duplicate matches with a plain reason. It compares existing categories, tags, post text, picture-reading text and replies; an existing transcript is only a lower-weight local signal. This feature makes no related-post network request and does not write the derived matches into a saved-post record, JSON export or Full backup.
Only after you tick specific saved posts, review the preview and press Create share file, Post Library makes one single local HTML file. By default it includes only the selected posts' author/handle, date, outer post text, complete Threads Article title/body when stored, source URL and safe stored thumbnail or poster bytes. Categories/tags, replies, picture-reading text, transcripts and stored video are separate opt-ins; video also needs its own warning acknowledgement. Tasks/reminders, API keys, tokens, private settings, computer/library paths, unselected posts and derived caches are excluded. Remote media is never embedded. The file has no public link and never goes to the developer. Where your browser supports it, you can deliberately hand the file to a person or app through the operating system's Share sheet; otherwise it stays a local download.
Off by default. If you choose to run it, the text of your selected posts (never media files) is sent directly from your browser to Google Gemini, authenticated with your own API key. The developer is not part of that connection and cannot see it. Google's privacy policy governs its handling of that text. Your API key is stored only on your device and is only ever sent to Gemini itself. Pressing Check API connection sends Gemini one short test prompt with your key and classifies its response; it does not send a saved post, call a separate quota service or make a second request to estimate remaining quota.
Optional, off by default, and runs entirely on your device using an engine bundled inside the extension. Pictures are never uploaded anywhere, and no network request is made to read them.
| Permission | Used for |
|---|---|
storage, unlimitedStorage | Keeping your library (which can include videos) on your device. |
downloads | Saving post media, a separately owned X Link-preview thumbnail, the offline backup page and a user-started Full backup archive into your Downloads folder; restoring archived media under Downloads; removing a superseded exact X link_preview.jpg when a later save proves its Card changed; and — for other post files — removing them only when you tick that box while deleting. |
downloads.ui | Temporarily hiding Chrome's download bubble during Library-writing jobs to avoid a prompt for every file or regenerated offline page. This browser-wide UI setting can also hide other concurrent downloads' bubbles; downloads continue. The extension requests restoration after its last job and a short grace period. Standalone photo/video downloads do not change this setting. |
sidePanel | Providing the optional native panel for local Library search, recent saves and a confirmed exact-post save. Bulk imports use the full dashboard. |
activeTab | After an explicit panel action, shortcut or link-menu choice, reading the current source URL and document identity to confirm the intended post. Opening the toolbar panel alone does not collect page content or save a post. |
contextMenus | Showing a link-only menu for supported social-platform URLs. A chosen target must be confirmed before saving; it does not monitor browsing history. |
alarms | Keeping one local wake-up for the earliest due saved-post reminder. It does not upload data or create automatic scraping. |
tabs (optional) | Requested only when a Patreon import or exact-post action needs owned browser tabs. The creator/collection list stays separate from the exact-post reader; both are rechecked before use and closed when a run safely finishes. |
notifications (optional) | Only after you choose it following the due-date explanation, so Chrome can show a generic due-post count. Declining leaves the in-app To do working. |
scripting, access to threads.com | Reading the supported exact post, Saved list or public profile you explicitly request through Save, a download-only action or Start, in your current browser session. Access covers both threads.com and threads.net. A public-profile run stops on login, private/not-found, soft-block or rate-limit pages and does not bypass or automatically retry them. |
| Access to instagram.com (optional) | Not requested at install. Only if you start an Instagram import or an exact-link Save/Photo/Video action is Chrome asked for it, and only then can the extension open your own Instagram Saved list or a public profile you entered and read the matching posts. Saved-list mode can also read the names of your collections when Collections → categories is ticked, so each post can be filed under the name you gave it; the same access lets you paste a single Instagram post link to save just that post. You can withdraw it at any time in Chrome's extension settings, and nothing about Threads is affected. |
| Access to facebook.com (optional) | Not requested at install. Chrome asks only after you press Facebook Start, or paste a recognised Facebook exact/share link and press Save this post, Download photos only or Download videos only. Start opens the user's Saved list in a separate Facebook window and visits only supported exact posts gathered from that bounded load; exact-link actions use an inactive background tab. Official mobile/web aliases are opened through the same www.facebook.com permission. An fb.watch URL can be opened only for its normal redirect; no reader is injected until the final URL is an exact supported www.facebook.com identity. One matching ordinary Story with text/direct Photos or a directly owned progressive MP4, one exact /photo/?fbid=… image or one /reel/<id> progressive MP4 may be read for that action. Save requires every ordinary-post photo to complete first. Standalone Photo/Video writes only the requested supported media and leaves Library unchanged; A directly attached ordinary-post progressive MP4 must match its own media identity; Reel posters and DASH streams are not substituted for a verified MP4. Declining opens no page, and you can withdraw access at any time. |
| Access to Instagram/Facebook CDN domains | Downloading the images and videos belonging to selected Threads/Instagram posts and the exact direct photos, verified comment photos, progressive MP4 or Partial poster belonging to a supported Facebook save or standalone download. |
webRequest and access to x.com / www.x.com / pbs.twimg.com / video.twimg.com (optional) | Not requested at install. Chrome asks only after you start X Bookmarks/Likes, X Save this post or X Download videos only. X Download photos only requests just X and pbs.twimg.com, without webRequest or video-host access. History uses one inactive tab. A one-link action first reads at most 4 MiB from its public exact-status URL without credentials and requires the same canonical username/status id, creator and exact Tweet Relay media prefix. A proved Photo/Video, or Save with complete exact text, opens no source tab. Private or unsupported public-document shapes fall back to one inactive exact-status tab. A packaged X-only page script is registered only for History or a video-capable tab fallback, observes only X GraphQL JSON the exact status page already requested, and temporarily keeps at most 20 progressive-variant metadata rows from the matching status object; a generic pbs.twimg.com/media/ video poster additionally needs that same exact video/animated-GIF media row's numeric id to equal the MP4 asset. It makes/replays no internal API request and retains no other response fields. The non-blocking webRequest listener is created only for an owned History/fallback tab and filtered to that tab plus exact video.twimg.com. It keeps only a bounded URL/status/Content-Type tuple long enough to match and revalidate a direct progressive MP4. The listener and page capture are removed after the owned tab closes. None of these paths inspect request bodies/headers, cookies, tokens, unrelated response headers or page storage, and they do not accept playlists, /aud/, segments or unmatched streams. Declining opens no tab, and you can withdraw access at any time. |
X pbs.twimg.com/card_img/ access (optional) | Only after an exact user-started X save proves its own external Card, one credential-free image request may create a local Link-preview thumbnail. The final host/path, HTTP 200, MIME, signature and 8 MiB streamed limit must all pass. It is excluded from native X photos, Pictures/OCR and Photo-only. |
| Access to patreon.com / patreonusercontent.com / c8.patreon.com / c10.patreon.com (optional) | Requested only after you start a Patreon beta exact-post, creator or collection action. These hosts provide the requested Patreon page and its proved image/video files. Locked, blocked, wrong-route or unavailable content stops without bypass. Mux transport is handled by the already-open exact Patreon page; no Mux host permission is requested. |
| Google Gemini (optional) | Requested only if you use optional AI setup or categorization, to let your browser call Gemini with your own key. Check API connection uses one short Gemini request and no separate quota request. |
Post Library does not sell user data and does not send any user data to the developer. The developer holds no user data. When you deliberately run optional AI categorization, the selected post text and your API credential are sent directly to Google Gemini. When you deliberately use selected-post sharing, the generated local file goes only to the person or app you choose through the operating system; it is not uploaded to a developer server and has no public link. Otherwise the extension does not share your library data.
You are in full control.
link_preview.jpg and local thumbnail Blob so they do not become orphaned. Native post media is not affected by this cleanup.Post Library's use of information received from browser APIs adheres to the Chrome Web Store User Data Policy, including its Limited Use requirements.
Post Library is not directed at children under 13.
Any change will be posted at this page with a new effective date.
Questions about this policy: support@yaka310.com
The optional Discord (bug report) link opens Discord in a new tab only when you click it. The extension does not attach your Library or activity log; you decide what to share there, and Discord applies its own privacy policy.
The extension includes a native side panel, keyboard shortcut and link context menu. Opening the panel does not save or analyse page content. A deliberate current-post or link action reads the source URL and document identity, displays the target and requires confirmation before saving. The panel searches the same on-device Library; its separate dashboard tab owns any save task.
Only bounded source confirmations and job references are kept in browser-session storage. No social cookies, tokens, API keys, clipboard content or general browsing history are added to this data. Existing optional platform/media permissions still apply.