# MarkItDown
[](https://pypi.org/project/markitdown/)  [](https://github.com/microsoft/autogen) > [!TIP] > MarkItDown agora oferece um servidor MCP (Model Context Protocol) para integração com aplicações LLM como o Claude Desktop. Veja [markitdown-mcp](https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp) para mais informações. > [!IMPORTANT] > Mudanças incompatíveis da versão 0.0.1 para 0.1.0: > > - As dependências agora estão organizadas em grupos de recursos opcionais (mais detalhes abaixo). Use `pip install 'markitdown[all]'` para manter o comportamento compatível com versões anteriores. > - `convert_stream()` agora requer um objeto binário semelhante a arquivo (por exemplo, um arquivo aberto em modo binário ou um objeto `io.BytesIO`). Essa é uma mudança incompatível em relação à versão anterior, que aceitava objetos semelhantes a arquivo de texto, como `io.StringIO`. > - A interface da classe `DocumentConverter` mudou para ler streams de arquivos ao invés de caminhos de arquivo. _Nenhum arquivo temporário é criado mais_. Se você mantém um plugin ou `DocumentConverter` personalizado, provavelmente precisará atualizar seu código. Caso use apenas a classe `MarkItDown` ou a CLI (como nos exemplos abaixo), não deverá ser necessário alterar nada. MarkItDown é uma ferramenta leve em Python para converter diversos tipos de arquivo em Markdown, voltada para uso com LLMs e pipelines de análise de texto. Nesse sentido, é mais comparável ao [textract](https://github.com/deanmalmgren/textract), porém com foco em preservar a estrutura e o conteúdo importantes do documento em Markdown (incluindo: cabeçalhos, listas, tabelas, links etc.). Embora o resultado seja muitas vezes apresentável e amigável para humanos, ele se destina a ser consumido por ferramentas de análise de texto — e pode não ser a melhor opção para conversões de alta fidelidade para leitura humana. No momento, o MarkItDown suporta: - PDF - PowerPoint - Word - Excel - Imagens (metadados EXIF e OCR) - Áudio (metadados EXIF e transcrição de fala) - HTML - Formatos baseados em texto (CSV, JSON, XML) - Arquivos ZIP (itera sobre o conteúdo) - URLs do YouTube - EPubs - ... e mais! ## Por que Markdown? Markdown é extremamente próximo de texto puro, com marcações e formatações mínimas, mas ainda assim fornece um meio de representar estruturas de documento importantes. LLMs populares, como o GPT-4o da OpenAI, falam Markdown nativamente e frequentemente incorporam Markdown em suas respostas sem qualquer prompt especial. Isso sugere que foram treinados em vastas quantidades de texto formatado em Markdown e o compreendem bem. Como benefício secundário, convenções de Markdown também são muito eficientes em tokens. ## Instalação Para instalar o MarkItDown, use pip: ```bash pip install 'markitdown[all]' ``` Como alternativa, você pode instalá-lo a partir do código-fonte: ```bash git clone git@github.com:microsoft/markitdown.git cd markitdown pip install -e 'packages/markitdown[all]' ``` ## Uso ### Linha de Comando ```bash markitdown caminho-para-arquivo.pdf > documento.md ``` Ou use `-o` para especificar o arquivo de saída: ```bash markitdown caminho-para-arquivo.pdf -o documento.md ``` Você também pode usar pipe: ```bash cat caminho-para-arquivo.pdf | markitdown ``` ### Dependências Opcionais O MarkItDown possui dependências opcionais para ativar vários formatos de arquivo. No início deste documento, instalamos todas as dependências opcionais com a opção `[all]`. Porém, você também pode instalá-las individualmente para ter mais controle. Por exemplo: ```bash pip install 'markitdown[pdf, docx, pptx]' ``` instalará apenas as dependências para arquivos PDF, DOCX e PPTX. Atualmente, as seguintes dependências opcionais estão disponíveis: - `[all]` Instala todas as dependências opcionais - `[pptx]` Dependências para arquivos PowerPoint - `[docx]` Dependências para arquivos Word - `[xlsx]` Dependências para arquivos Excel modernos - `[xls]` Dependências para arquivos Excel antigos - `[pdf]` Dependências para arquivos PDF - `[outlook]` Dependências para mensagens do Outlook - `[az-doc-intel]` Dependências para Azure Document Intelligence - `[audio-transcription]` Dependências para transcrição de áudio (wav, mp3) - `[youtube-transcription]` Dependências para obter transcrição de vídeos do YouTube ### Plugins O MarkItDown também suporta plugins de terceiros. Plugins vêm desativados por padrão. Para listar os plugins instalados: ```bash markitdown --list-plugins ``` Para habilitar plugins, use: ```bash markitdown --use-plugins caminho-para-arquivo.pdf ``` Para encontrar plugins disponíveis, procure no GitHub pela hashtag `#markitdown-plugin`. Para desenvolver um plugin, veja o diretório `packages/markitdown-sample-plugin`. ### Azure Document Intelligence Para usar o Microsoft Document Intelligence na conversão: ```bash markitdown caminho-para-arquivo.pdf -o documento.md -d -e "