How to Import a Pocket Export into ArchiveBox
Import saved Pocket links into ArchiveBox from a CSV you already have. Convert it to a URL list, run the import, and check what metadata carries over.
Short answer: if you already have a Pocket export, extract its URLs into a plain text file and pass that file to ArchiveBox with archivebox add < urls.txt. ArchiveBox accepts text containing URLs, including CSV text, but the current documentation does not guarantee how Pocket CSV columns or metadata are interpreted. Mozilla’s Pocket export deadline has passed, so this guide assumes you already saved the export or have another accessible link list. ArchiveBox Quickstart; Mozilla’s Pocket shutdown information.
1. Check that you have an export
Pocket services shut down on July 8, 2025. Mozilla’s documented deadline to export saved items was November 12, 2025. If you have a CSV saved locally, continue below. If you do not have an export, the normal Pocket export is no longer available through that process; look for a backup, a previously downloaded file, or another copy of your links.
The official export contained URLs for saved links, archives, and favorites. Mozilla said it did not include article text, tags, or highlights. Importing the CSV therefore cannot restore content or metadata that was absent from it. Mozilla: Exporting your Pocket saves.
2. Set up ArchiveBox
Install ArchiveBox using its current instructions for your operating system and preferred installation method. The current project documentation covers Docker Compose and uv, among other options. Run the commands below from the ArchiveBox collection’s data folder, where its archive is stored. Follow the current Quickstart for installation and initial setup; installation details vary by platform.
3. Turn the Pocket CSV into a URL list
A plain text URL list is the most predictable input for this migration. Keep one URL per line. The following Python script reads a Pocket CSV, finds cells that look like HTTP or HTTPS URLs, and writes unique URLs to pocket-urls.txt. It uses only Python’s standard library.
import csv
from pathlib import Path
from urllib.parse import urlparse
source = Path("ril_export.csv")
destination = Path("pocket-urls.txt")
seen = set()
urls = []
with source.open(newline="", encoding="utf-8-sig") as csv_file:
for row in csv.reader(csv_file):
for cell in row:
candidate = cell.strip()
parsed = urlparse(candidate)
if parsed.scheme in {"http", "https"} and parsed.netloc and candidate not in seen:
seen.add(candidate)
urls.append(candidate)
destination.write_text("\n".join(urls) + ("\n" if urls else ""), encoding="utf-8")
print(f"Wrote {len(urls)} unique URLs to {destination}")
Save the script as extract_pocket_urls.py in the same directory as your export, update ril_export.csv if your filename differs, then run:
python3 extract_pocket_urls.py
The script extracts URL-shaped cells rather than relying on specific CSV headers. Review the resulting file before importing, especially if your CSV has unusual content or URLs embedded in other fields. This step intentionally retains URLs only; it does not transfer tags or highlights.
4. Import the links
From the ArchiveBox data folder, run the documented standard-input import command:
archivebox add < pocket-urls.txt
ArchiveBox also documents equivalent stdin patterns for Docker and Docker Compose, if those are how you run it:
# Docker
docker run -v "$PWD:/data" -i archivebox/archivebox:dev add < pocket-urls.txt
# Docker Compose
docker compose run --rm -T archivebox add < pocket-urls.txt
Use the service and image names from your own ArchiveBox setup if they differ from the Quickstart examples. The important part is passing the URL file to add through standard input. ArchiveBox documents that it ingests text containing URLs and creates snapshot folders for added URLs. Quickstart: adding URLs.
5. Verify the imported collection
- Review ArchiveBox’s command output for errors or skipped URLs.
- Open the archive folder and check that snapshot folders were created, or start the web interface using the command for your installation.
- Open several representative snapshots, including links with query parameters or redirects, and confirm the saved output is useful.
- Compare the number of unique URLs in
pocket-urls.txtwith the number of URLs you expect. ArchiveBox may treat duplicates or already archived links according to its current behavior and configuration.
What transfers, and what does not
The CSV is a source of saved URLs; ArchiveBox then visits those URLs and stores available page representations using its configured extractors. ArchiveBox can save outputs such as HTML, PDF, screenshots, JSON, and WARC, depending on enabled extractors. This is a new capture of the linked pages, not a restoration of Pocket’s saved article view.
Do not assume Pocket tags, favorites, timestamps, or other CSV fields will be mapped into ArchiveBox. The current documentation reviewed here establishes URL ingestion, but does not specify current Pocket CSV column mapping. A detailed Pocket parser reference found for ArchiveBox 0.4.1 is historical and is not a guarantee for current releases. Keep the original CSV if you may need its other fields later. ArchiveBox overview.
Common problems and fixes
| Symptom | Likely cause | What to do |
|---|---|---|
| The export file is missing | The Pocket export period ended. | Search local downloads and backups for the CSV or another link list. The documented Pocket export is no longer a recovery option. |
| The script writes zero URLs | The file path is wrong, the file is not CSV, or its cells do not contain HTTP(S) URLs. | Check the filename and open a copy in a text editor. Confirm the export contains URL values; do not edit the original. |
| ArchiveBox says the command or executable is unavailable | ArchiveBox is not installed in the active environment, or the command is being run outside its configured environment. | Use the installation method’s documented command or activate the correct environment, then retry from the collection data folder. |
| Docker reports a missing file or imports nothing | The current directory is not mounted where expected, or the file path is outside the mounted folder. | Run from the directory containing pocket-urls.txt and ensure that directory is mounted as the ArchiveBox data directory. |
| Some pages fail to capture | A source site may be offline, require authentication, block automated access, or have changed since the link was saved. | Open the URL in a browser, check whether it is still reachable, and inspect ArchiveBox’s output and enabled extractors. Import success does not guarantee every site can be captured. |
| Tags or article text are absent | The Pocket CSV does not contain article text, tags, or highlights, and current ArchiveBox docs do not promise Pocket metadata mapping. | Preserve the CSV for its available fields. Treat page capture and metadata migration as separate tasks. |
Privacy, reliability, and cost considerations
ArchiveBox may fetch pages from the public internet, so importing many links can take time and results depend on each source page being reachable and capturable. Run a small sample first if you need to check the result format or estimate the time for your collection. The documented import command does not promise that every URL will produce every output type.
ArchiveBox warns that private URLs, cookies, and session tokens passed to an archive may be visible to people who can view that archive. Restrict access to the collection if it contains private links or saved content, and avoid publishing snapshots that include secrets. Review ArchiveBox’s access and publishing guidance before exposing an archive. ArchiveBox documentation.
Or skip the browser setup
If you need a clean screenshot of an individual page from your collection, ScreenshotNeo can return an image or PDF with one API request. It complements an ArchiveBox collection; it does not import a Pocket CSV into ArchiveBox.
For a working API key, replace YOUR_API_KEY and the example target URL. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie banners, popups, and chat widgets before capture. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, no card required.
FAQ
Can ArchiveBox recover my Pocket account or saved article text?
No. This imports links you already have and captures pages that are available now. It does not restore Pocket accounts or article text missing from the export.
Can I pass the original CSV directly to ArchiveBox?
ArchiveBox accepts text containing URLs, and CSV is text, but current documentation does not guarantee Pocket CSV parsing or metadata handling. Converting the URLs to one per line makes the input explicit and easier to inspect.
Does the archived Pocket Exporter still work?
The separate Pocket Exporter repository linked from ArchiveBox documentation is archived and no longer supported. Do not rely on it as a currently maintained way to obtain an export. Pocket Exporter repository.


