Microsoft MarkItDown 工具摘要與使用範例
MarkItDown 是由微軟開發的 Python 工具,專門用於將各種文件格式和辦公文檔轉換為 Markdown 格式。這個工具在發布後迅速獲得了廣泛關注。
Github
https://github.com/microsoft/markitdown
格式轉換
MarkItDown 支援多種文件格式的轉換,包括: - PDF - PowerPoint - Word - Excel - Images (EXIF metadata and OCR) - Audio (EXIF metadata and speech transcription) - HTML - Text-based formats (CSV, JSON, XML) - ZIP files (iterates over contents) - Youtube URLs - EPubs - ... and more!
使用範例
安裝方法
1pip install markitdown[all]
使用命令轉換格式
1# 基本轉換
2markitdown 1_PDFsam_pool_charlie.pdf -o 1_PDFsam_pool_charlie.md
MarkItDown 將 YouTube 轉換成 Markdown 的範例
沒什麼作用,因為只是提取了字幕文本,但沒任何 Markdown 語法元素,就結果來說只是個純文本。
1from markitdown import MarkItDown
2import youtube_transcript_api
3import os
4
5def youtube_to_markdown(video_id, languages=['en','zh-Hant']):
6 # 使用 youtube_transcript_api 獲取字幕
7 try:
8 transcript = youtube_transcript_api.YouTubeTranscriptApi.get_transcript(video_id, languages=languages)
9
10 # 將字幕轉換為純文本
11 transcript_text = ""
12 for line in transcript:
13 transcript_text += line['text'] + "\n"
14
15 # 保存為臨時文本文件
16 temp_file = "temp_transcript.txt"
17 with open(temp_file, "w", encoding="utf-8") as f:
18 f.write(transcript_text)
19
20 # 使用 MarkItDown 轉換為 Markdown
21 md = MarkItDown()
22 result = md.convert(temp_file)
23
24 # 清理臨時文件
25 os.remove(temp_file)
26
27 # 從結果對象中提取文本內容
28 # 嘗試可能的屬性或方法
29 if hasattr(result, 'text'):
30 return result.text
31 elif hasattr(result, 'content'):
32 return result.content
33 elif hasattr(result, 'get_text'):
34 return result.get_text()
35 elif hasattr(result, 'get_content'):
36 return result.get_content()
37 else:
38 # 如果以上都不存在,則嘗試直接將結果轉換為字符串
39 return str(result)
40 except Exception as e:
41 return f"轉換失敗: {str(e)}"
42
43# 使用示例,如果影片本身沒字幕,則會下載失敗
44video_id = "TQDHGswF67Q" # YouTube ID
45markdown = youtube_to_markdown(video_id)
46print(type(markdown))
47print(markdown)
48
49# 保存為 Markdown 文件
50with open(f"{video_id}.md", "w", encoding="utf-8") as f:
51 f.write(markdown)