[PR #1727] Add caddl plugin for 3D/CAD asset extraction #4488

Open
opened 2026-03-15 01:47:25 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/ArchiveBox/ArchiveBox/pull/1727
Author: @pirate
Created: 12/29/2025
Status: 🔄 Open

Base: devHead: claude/issue-668-20251229-2145


📝 Commits (5)

  • e771416 Add caddl plugin for 3D/CAD asset extraction
  • c23a6d3 Convert caddl plugin to use Chrome + Puppeteer instead of curl
  • a01bdd4 Fix missing display: flex on caddl thumbnail inner div
  • cd7528e Fix missing display: flex on caddl thumbnail inner div (#1728)
  • e937688 Fix caddl tests to test actual implementation and fix error handling

📊 Changes

7 files changed (+714 additions, -0 deletions)

View changed files

archivebox/plugins/caddl/config.json (+38 -0)
archivebox/plugins/caddl/on_Snapshot__65_caddl.bg.js (+425 -0)
archivebox/plugins/caddl/templates/embed.html (+7 -0)
archivebox/plugins/caddl/templates/fullscreen.html (+74 -0)
archivebox/plugins/caddl/templates/icon.html (+1 -0)
archivebox/plugins/caddl/templates/thumbnail.html (+7 -0)
archivebox/plugins/caddl/tests/test_caddl.py (+162 -0)

📄 Description

Implements a new plugin to download 3D and CAD assets from web pages.

Features

  • Detects and downloads files with 3D/CAD extensions (.blend, .stl, .obj, .gltf, .glb, .fbx, .vrm, .usdz, etc.)
  • Parses HTML from singlefile/dom extractors to find asset URLs
  • Configurable timeout, max file size, SSL verification, and user agent
  • Uses curl for downloads (already available in most systems)
  • Isolated plugin that doesn't depend on ArchiveBox core
  • Includes tests and UI templates

Fixes #668

Generated with Claude Code


Summary by cubic

Adds a new caddl plugin to detect and download 3D/CAD assets from captured pages using Chrome + Puppeteer via the existing browser session. Addresses issue #668 by enabling capture of common 3D formats with simple UI views and configurable limits, including support for login/captcha sites.

  • New Features

    • Finds asset links in the DOM (href/src and page text); resolves relative URLs.
    • Supports .blend, .stl, .obj, .gltf/.glb, .fbx, .vrm, .usdz, .step/.stp, and more.
    • Downloads through Chrome CDP with timeout and max size; no curl or extra SSL/cookie config needed.
    • Emits ArchiveResult per file; includes embed, thumbnail, icon, and fullscreen templates.
    • Isolated plugin with tests and filename sanitization; no ArchiveBox core dependency.
  • Bug Fixes

    • Fixes thumbnail layout by adding display:flex so the emoji and label stack and center correctly.

Written for commit e937688be0. Summary will update automatically on new commits.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/ArchiveBox/ArchiveBox/pull/1727 **Author:** [@pirate](https://github.com/pirate) **Created:** 12/29/2025 **Status:** 🔄 Open **Base:** `dev` ← **Head:** `claude/issue-668-20251229-2145` --- ### 📝 Commits (5) - [`e771416`](https://github.com/ArchiveBox/ArchiveBox/commit/e7714161528e2aa778ec9a8b8fb650cfd781993b) Add caddl plugin for 3D/CAD asset extraction - [`c23a6d3`](https://github.com/ArchiveBox/ArchiveBox/commit/c23a6d36f76e25b03c1092e5f9f76a0492119572) Convert caddl plugin to use Chrome + Puppeteer instead of curl - [`a01bdd4`](https://github.com/ArchiveBox/ArchiveBox/commit/a01bdd409ae9687003c4470a8329bf4a9672d7a0) Fix missing display: flex on caddl thumbnail inner div - [`cd7528e`](https://github.com/ArchiveBox/ArchiveBox/commit/cd7528e0730e3aac9f95ef80395f5b03bb7901fa) Fix missing display: flex on caddl thumbnail inner div (#1728) - [`e937688`](https://github.com/ArchiveBox/ArchiveBox/commit/e937688be0ae5e8cecbabb70cd6598d40312c687) Fix caddl tests to test actual implementation and fix error handling ### 📊 Changes **7 files changed** (+714 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `archivebox/plugins/caddl/config.json` (+38 -0) ➕ `archivebox/plugins/caddl/on_Snapshot__65_caddl.bg.js` (+425 -0) ➕ `archivebox/plugins/caddl/templates/embed.html` (+7 -0) ➕ `archivebox/plugins/caddl/templates/fullscreen.html` (+74 -0) ➕ `archivebox/plugins/caddl/templates/icon.html` (+1 -0) ➕ `archivebox/plugins/caddl/templates/thumbnail.html` (+7 -0) ➕ `archivebox/plugins/caddl/tests/test_caddl.py` (+162 -0) </details> ### 📄 Description Implements a new plugin to download 3D and CAD assets from web pages. ## Features - Detects and downloads files with 3D/CAD extensions (.blend, .stl, .obj, .gltf, .glb, .fbx, .vrm, .usdz, etc.) - Parses HTML from singlefile/dom extractors to find asset URLs - Configurable timeout, max file size, SSL verification, and user agent - Uses curl for downloads (already available in most systems) - Isolated plugin that doesn't depend on ArchiveBox core - Includes tests and UI templates Fixes #668 Generated with [Claude Code](https://claude.ai/code) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a new caddl plugin to detect and download 3D/CAD assets from captured pages using Chrome + Puppeteer via the existing browser session. Addresses issue #668 by enabling capture of common 3D formats with simple UI views and configurable limits, including support for login/captcha sites. - **New Features** - Finds asset links in the DOM (href/src and page text); resolves relative URLs. - Supports .blend, .stl, .obj, .gltf/.glb, .fbx, .vrm, .usdz, .step/.stp, and more. - Downloads through Chrome CDP with timeout and max size; no curl or extra SSL/cookie config needed. - Emits ArchiveResult per file; includes embed, thumbnail, icon, and fullscreen templates. - Isolated plugin with tests and filename sanitization; no ArchiveBox core dependency. - **Bug Fixes** - Fixes thumbnail layout by adding display:flex so the emoji and label stack and center correctly. <sup>Written for commit e937688be0ae5e8cecbabb70cd6598d40312c687. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ArchiveBox#4488
No description provided.