# What File Formats Does Open Notebook Support for Import and Export?

> Discover which file formats Open Notebook supports for import and export, including documents, multimedia, archives, and web URLs. Export notes as Markdown or JSON.

- Repository: [Luis Novo/open-notebook](https://github.com/lfnovo/open-notebook)
- Tags: api-reference
- Published: 2026-07-03

---

**Open Notebook supports importing documents (PDF, Word, Excel, PowerPoint), multimedia files (MP3, MP4, WAV), archives (ZIP, TAR), and web URLs, while exporting notes as Markdown and full notebook snapshots as JSON.**

Open Notebook, developed in the `lfnovo/open-notebook` repository, provides a flexible content ingestion pipeline that converts diverse file types into searchable, embeddable sources. Whether you are importing research papers, meeting recordings, or entire web pages, the platform handles file format detection and text extraction automatically. Understanding these supported formats helps you maximize the knowledge capture capabilities of your notebooks.

## Import Formats Supported by Open Notebook

The platform categorizes importable content into several distinct groups, each handled by specialized extraction pipelines in the backend.

### Documents and Text Files

Open Notebook accepts standard office and text formats including **`.pdf`**, **`.doc`**, **`.docx`**, **`.ppt`**, **`.pptx`**, **`.xlsx`**, **`.xls`**, **`.epub`**, **`.md`**, **`.txt`**, and **`.html`**. PDFs undergo direct text parsing, with scanned PDFs automatically triggering OCR processing. Microsoft Office and Excel files are converted to plain text before embedding, while Markdown, HTML, and plain text files are ingested as-is without transformation.

### Audio and Video Files

When speech-to-text is enabled, Open Notebook processes audio files (`.mp3`, `.wav`, `.m4a`, `.aac`, `.ogg`, `.flac`) and video files (`.mp4`, `.avi`, `.mov`, `.wmv`, `.mkv`, `.webm`). The system transcribes audio content automatically, extracting searchable text from recordings and video captions. Video files also support caption extraction when embedded subtitle tracks are present.

### Archives and Web Content

You can upload archive files including **`.zip`**, **`.tar`**, and **`.gz`**. The backend unpacks these archives and processes each contained file according to its specific format rules. For web content, any standard HTTP/HTTPS URL is supported, including YouTube links and podcast RSS feeds. The system fetches the page content, extracts main article text, and retrieves YouTube captions when available.

## How Import File Handling Works

The frontend restricts file selection through the `accept` attribute in [`SourceTypeStep.tsx`](https://github.com/lfnovo/open-notebook/blob/main/SourceTypeStep.tsx), ensuring only supported formats reach the backend extraction pipeline.

```typescript
// In frontend/src/components/sources/steps/SourceTypeStep.tsx
<input
  id="file"
  type="file"
  multiple
  {...register('file')}
  accept=".pdf,.doc,.docx,.pptx,.ppt,.xlsx,.xls,.txt,.md,.epub,.mp4,.avi,.mov,.wmv,.mp3,.wav,.m4a,.aac,.jpg,.jpeg,.png,.tiff,.zip,.tar,.gz,.html"
/>

```

When a user selects a file, the UI sends it to `/api/sources` where the backend creates chunks, generates embeddings, and stores the source record. For web URLs, the frontend sends the link to the same endpoint with `{type: "link"}` for server-side fetching and text extraction.

## Export Formats: Markdown and JSON

Open Notebook provides two distinct export pathways depending on whether you need human-readable content or complete data portability.

### Exporting Notes as Markdown

Individual notes export as **Markdown (`.md`)** files containing the source text, AI-generated transformations, and a "References" block linking to original source records. This format is ideal for sharing content or importing into other documentation systems.

```bash

# Export a single note via the REST API

curl -X GET http://localhost:5055/api/notes/{note_id}/export \
  -H "Authorization: Bearer $TOKEN" \
  -o note_export.md

```

### Exporting Notebooks as JSON

Complete notebook snapshots export as **JSON** via the `/commands/export` endpoint. This format includes all source IDs, embeddings, chat history, and metadata necessary to restore the notebook in another Open Notebook instance.

```bash

# Export full notebook data as JSON

curl -X POST http://localhost:5055/api/notebooks/{notebook_id}/export \
  -H "Authorization: Bearer $TOKEN" \
  -d '{}' \
  -o notebook_export.json

```

## Key Implementation Files

The import and export functionality relies on specific service layers and UI components:

- **[`frontend/src/components/sources/steps/SourceTypeStep.tsx`](https://github.com/lfnovo/open-notebook/blob/main/frontend/src/components/sources/steps/SourceTypeStep.tsx)** – Defines the `accept` attribute that lists all importable extensions
- **[`docs/3-USER-GUIDE/adding-sources.md`](https://github.com/lfnovo/open-notebook/blob/main/docs/3-USER-GUIDE/adding-sources.md)** – Documents the human-readable list of supported import formats
- **[`api/routers/sources.py`](https://github.com/lfnovo/open-notebook/blob/main/api/routers/sources.py)** – Handles the `/api/sources` POST endpoint receiving uploaded files and URLs
- **[`api/notes_service.py`](https://github.com/lfnovo/open-notebook/blob/main/api/notes_service.py)** – Provides the `/notes/{id}/export` endpoint returning Markdown content
- **[`api/notebook_service.py`](https://github.com/lfnovo/open-notebook/blob/main/api/notebook_service.py)** – Implements the `/notebooks/{id}/export` endpoint for JSON snapshots

## Summary

- **Open Notebook** imports documents (PDF, DOCX, XLSX, PPTX, EPUB, MD, TXT, HTML), audio (MP3, WAV, M4A), video (MP4, AVI, MOV), and archives (ZIP, TAR, GZ)
- The UI restricts file selection in [`SourceTypeStep.tsx`](https://github.com/lfnovo/open-notebook/blob/main/SourceTypeStep.tsx) while the backend handles extraction and embedding generation
- **Scanned PDFs** trigger automatic OCR processing during import
- **Audio and video** files are transcribed to text when speech-to-text is enabled
- **Export** produces Markdown for human-readable notes and JSON for complete notebook restoration

## Frequently Asked Questions

### Can Open Notebook import scanned PDFs?

Yes. When you upload a scanned PDF, the backend detection triggers OCR processing to extract text from images before generating embeddings. This occurs automatically within the content extraction pipeline defined in the sources router.

### Does Open Notebook support direct image file imports?

No. While the `accept` attribute in [`SourceTypeStep.tsx`](https://github.com/lfnovo/open-notebook/blob/main/SourceTypeStep.tsx) includes image extensions (`.jpg`, `.jpeg`, `.png`, `.tiff`) for OCR processing, these are only utilized when images are embedded within PDFs. Standalone image files cannot be imported as direct sources.

### What is the difference between Markdown and JSON exports?

**Markdown export** provides a human-readable version of note content with source references, suitable for documentation or sharing. **JSON export** contains the complete notebook state including embeddings, chat history, and metadata, designed for backing up or migrating notebooks between instances.

### Can I import content from YouTube videos or podcasts?

Yes. By pasting a URL into the web link input field, Open Notebook fetches the content and extracts available captions from YouTube videos or processes podcast RSS feeds. The extracted text is then indexed and embedded like any other source.