# ๐ฆ OpenClaw DeepReader > **OpenClaw ์์ด์ ํธ์ ๊ธฐ๋ณธ ์น ์ฝํ ์ธ ๊ฒ์ดํธ์จ์ด.** X (Twitter), Reddit, YouTube ๋ฐ ๋ชจ๋ ์นํ์ด์ง ์ฝ๊ธฐ โ ์ ๋ก ์ค์ , ์ ๋ก API ํค. DeepReader๋ [OpenClaw](https://github.com/anthropics/openclaw) ์์ด์ ํธ ํ๋ ์์ํฌ์ ๋ด์ฅ ์ฝํ ์ธ ๋ฆฌ๋์ ๋๋ค. ๋ํ์ URL์ ๋ถ์ฌ๋ฃ์ผ๋ฉด DeepReader๊ฐ ์๋์ผ๋ก ๊ฐ์ ธ์ค๊ณ , ํ์ฑํ๊ณ , ๊ณ ํ์ง Markdown์ ์์ด์ ํธ์ ์ฅ๊ธฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค. ์์ ๋ฏธ๋์ด์ ํ๋ ์น์ ์ํด ์ค๊ณ๋์์ต๋๋ค. ๐ **๋ฒ์ญ**: [English](README.md) ยท [ไธญๆ](README_zh.md) ยท [Espaรฑol](README_es.md) ยท [ๆฅๆฌ่ช](README_ja.md) ยท [ุงูุนุฑุจูุฉ](README_ar.md) ยท [Franรงais](README_fr.md) --- ## โก ์ค์น ```bash npx clawhub@latest install deepreader ``` ๋๋ ์๋ ์ค์น: ```bash git clone https://github.com/astonysh/OpenClaw-DeepReeder.git cd OpenClaw-DeepReeder python3 -m venv .venv && source .venv/bin/activate pip install -e . ``` --- ## ๐ฏ ์ฌ์ฉ ์๋๋ฆฌ์ค - **ํธ์, ์ค๋ ๋ ๋๋ X ์ํฐํด**์ ์ฝ์ด์ OpenClaw ๋ฉ๋ชจ๋ฆฌ์ ์ถ๊ฐํด์ผ ํ ๋ - **Reddit ๊ฒ์๋ฌผ**์ ์ธ๊ธฐ ๋๊ธ๊ณผ ํ ๋ก ์ปจํ ์คํธ์ ํจ๊ป ์์งํด์ผ ํ ๋ - **YouTube ์๋ง**์ ๋์ค์ ์ฐธ์กฐํ๊ฑฐ๋ ๋ถ์ํ๊ธฐ ์ํด ์ ์ฅํ๊ณ ์ถ์ ๋ - **๋ธ๋ก๊ทธ, ๊ธฐ์ฌ ๋๋ ๋ฌธ์ ํ์ด์ง**๋ฅผ ๊น๋ํ Markdown์ผ๋ก ํด๋ฆฌํํ๊ณ ์ถ์ ๋ - ์์ด์ ํธ์ **๊ธฐ๋ณธ ์น ๋ฆฌ๋**๊ฐ ํ์ํ ๋ โ API ํค ์์ด, ์ค์ ์์ด ๋ฐ๋ก ์๋ --- ## โจ ์ง์ ์์ค | ํ์ | ์์ค | ๋ฐฉ๋ฒ | API ํค? | |------|------|------|---------| | ๐ฆ **Twitter / X** | ํธ์, ์ค๋ ๋, X ์ํฐํด | [FxTwitter API](https://github.com/FxEmbed/FxEmbed) + Nitter ๋์ฒด | โ ์์ | | ๐ **Reddit** | ๊ฒ์๋ฌผ + ๋๊ธ ์ค๋ ๋ | Reddit `.json` API | โ ์์ | | ๐ฌ **YouTube** | ๋์์ ์๋ง | [youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api) | โ ์์ | | ๐ **๋ชจ๋ URL** | ๋ธ๋ก๊ทธ, ๊ธฐ์ฌ, ๋ฌธ์ | [Trafilatura](https://trafilatura.readthedocs.io/) + BeautifulSoup | โ ์์ | **API ํค ์ ๋ก. ๋ก๊ทธ์ธ ์ ๋ก. ์๋ ์ ํ ์ ๋ก. ๋ถ์ฌ๋ฃ๊ธฐ๋ง ํ๋ฉด ์ฝ๊ธฐ.** --- ## ๐ฆ Twitter / X โ ์ฌ์ธต ํตํฉ [FxTwitter](https://github.com/FxEmbed/FxEmbed) API ๊ธฐ๋ฐ. [x-tweet-fetcher](https://github.com/ythx-101/x-tweet-fetcher)์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. | ์ฝํ ์ธ ์ ํ | ์ง์ | |------------|------| | ์ผ๋ฐ ํธ์ | โ ์ ์ฒด ํ ์คํธ + ์ฐธ์ฌ ํต๊ณ | | ๊ธด ํธ์ (Twitter Blue) | โ ์ ์ฒด ํ ์คํธ | | X ์ํฐํด (์ฅ๋ฌธ) | โ ์ ์ฒด ๊ธฐ์ฌ + ๋จ์ด ์ | | ์ธ์ฉ ํธ์ | โ ์ค์ฒฉ ์ฝํ ์ธ ํฌํจ | | ๋ฏธ๋์ด (์ด๋ฏธ์ง, ๋์์, GIF) | โ URL ์ถ์ถ | | ๋ต๊ธ ์ค๋ ๋ | โ Nitter ๋์ฒด๋ฅผ ํตํด (์ฒ์ 5๊ฐ) | | ์ฐธ์ฌ ํต๊ณ | โ โค๏ธ ์ข์์, ๐ ๋ฆฌํธ์, ๐๏ธ ์กฐํ, ๐ ๋ถ๋งํฌ | ## ๐ Reddit โ ๋ค์ดํฐ๋ธ JSON ํตํฉ Reddit์ ๋ด์ฅ `.json` URL ์ ๋ฏธ์ฌ ์ฌ์ฉ โ **API ํค ๋ถํ์, OAuth ๋ถํ์, ๋ฑ๋ก ๋ถํ์**. | ์ฝํ ์ธ ์ ํ | ์ง์ | |------------|------| | ์ ํ ํฌ์คํธ (ํ ์คํธ) | โ ์ ์ฒด Markdown ๋ณธ๋ฌธ | | ๋งํฌ ํฌ์คํธ | โ URL + ๋ฉํ๋ฐ์ดํฐ | | ์ธ๊ธฐ ๋๊ธ (์ ์์ ์ ๋ ฌ) | โ ์ต๋ 15๊ฐ ๋๊ธ | | ์ค์ฒฉ ๋ต๊ธ ์ค๋ ๋ | โ ์ต๋ 3๋จ๊ณ ๊น์ด | | ๋ฏธ๋์ด (์ด๋ฏธ์ง, ๊ฐค๋ฌ๋ฆฌ, ๋์์) | โ URL ์ถ์ถ | | ๊ฒ์๋ฌผ ํต๊ณ | โ โฌ๏ธ ์ ์, ๐ฌ ๋๊ธ ์, ์ถ์ฒ ๋น์จ | | Flair ํ๊ทธ | โ ํฌํจ | --- ## ๐ ๋น ๋ฅธ ์์ ```python from deepreader_skill import run # ํธ์ ์ฝ๊ธฐ โ ์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ result = run("์ด ํธ์์ ํ์ธํ์ธ์: https://x.com/elonmusk/status/123456") # Reddit ํ ๋ก ์ฝ๊ธฐ โ ๊ฒ์๋ฌผ + ์ธ๊ธฐ ๋๊ธ ์บก์ฒ result = run("์ข์ ํ ๋ก : https://www.reddit.com/r/python/comments/abc123/my_post/") # YouTube ๋น๋์ค ์ฝ๊ธฐ โ ์ ์ฒด ์๋ง ์ ์ฅ result = run("์ด๊ฒ์ ๋ณด์ธ์: https://youtube.com/watch?v=dQw4w9WgXcQ") # ๋ชจ๋ ๊ธฐ์ฌ ์ฝ๊ธฐ โ ๊นจ๋ํ ์ฝํ ์ธ ์ถ์ถ result = run("ํฅ๋ฏธ๋ก์ด ๊ธ: https://example.com/blog/ai-agents-2026") # ์ฌ๋ฌ URL ์ผ๊ด ์ฒ๋ฆฌ result = run(""" ์ฌ๊ธฐ ๋ช ๊ฐ์ง ๋งํฌ๊ฐ ์์ต๋๋ค: https://x.com/user/status/123456 https://www.reddit.com/r/MachineLearning/comments/xyz789/new_paper/ https://youtube.com/watch?v=dQw4w9WgXcQ https://example.com/article """) ``` --- ## ๐ NotebookLM & ์ค๋์ค ํตํฉ ์ด์ DeepReader๋ **Google NotebookLM**๊ณผ ์๋ฒฝํ๊ฒ ํตํฉ๋ฉ๋๋ค. ๋ฉ์์ง์ `notebooklm`, `audio` ๋๋ `podcast`์ ๊ฐ์ ํค์๋๊ฐ ํฌํจ ๋ ๊ฒฝ์ฐ DeepReader๋ ์๋์ผ๋ก ๋ค์์ ์ํํฉ๋๋ค: 1. ์์ฒญ๋ URL์ Markdown์ผ๋ก ํ์ฑํฉ๋๋ค. 2. Google NotebookLM ๊ณ์ ์ ์ ๋ ธํธ๋ฅผ ๋ง๋ญ๋๋ค. 3. ๊น๋ํ Markdown ์ฝํ ์ธ ๋ฅผ ์์ค๋ก ์ ๋ก๋ํฉ๋๋ค. 4. **(์ ํ ์ฌํญ)** ๋งค๋ ฅ์ ์ธ ์ค๋์ค ๊ฐ์(ํ์บ์คํธ ํ์)๋ฅผ ์์ฑํ๊ณ ์์ด์ ํธ์ ๋ฉ๋ชจ๋ฆฌ ํด๋์ ์ง์ ๋ค์ด๋ก๋ํฉ๋๋ค. **์ง์๋๋ NotebookLM ์ํฐํฉํธ ์์ฑ:** ์ค๋์ค ๊ฐ์์ ํจ๊ป ์ด ํตํฉ์ ์ฝ๊ฒ ํ์ฅํ์ฌ ๋ค์์ ์๋์ผ๋ก ์์ฑํ๊ณ ์ ์ฅํ ์ ์์ต๋๋ค: - **๐๏ธ Audio Overview** (์ค๋์ค ํ์บ์คํธ) - **๐ฅ Video Overview** (๋น๋์ค ๊ฐ์) - **๐ง Mind Map** (๋ง์ธ๋๋งต) - **๐ Reports** (๋ณด๊ณ ์) - **๐ Flashcards** (ํ๋์์นด๋) - **โ Quiz** (ํด์ฆ) - **๐ Infographic** (์ธํฌ๊ทธ๋ํฝ) - **๐ฅ๏ธ Slide Deck** (์ฌ๋ผ์ด๋ ๋ฑ) - **๐ Data Table** (๋ฐ์ดํฐ ํ ์ด๋ธ) > **โ ๏ธ ์ฐธ๊ณ : ์ธ์ฆ ํ์** > NotebookLM ํตํฉ์ ์ฌ์ฉํ๊ธฐ ์ ์ ํฐ๋ฏธ๋์์ ์ธ์ฆํด์ผ ํฉ๋๋ค(์ด ์์ ์ ํ ๋ฒ๋ง ์ํํ๋ฉด ๋ฉ๋๋ค): > ```bash > notebooklm login > ``` --- ## ๐๏ธ ์ํคํ ์ฒ ``` deepreader_skill/ โโโ __init__.py # ์ง์ ์ โ run() ํจ์ โโโ manifest.json # ์คํฌ ๋ฉํ๋ฐ์ดํฐ ๋ฐ ํธ๋ฆฌ๊ฑฐ ์ค์ โโโ SKILL.md # ClawHub ์คํฌ ์ค๋ช โโโ requirements.txt # ์์กด์ฑ ๋ชฉ๋ก โโโ core/ โ โโโ router.py # URL โ ํ์ ๋ผ์ฐํ ๋ก์ง โ โโโ storage.py # Markdown ํ์ผ ์์ฑ ๋ฐ ์ ์ฅ โ โโโ utils.py # URL ์ถ์ถ ๋ฐ ์ ํธ๋ฆฌํฐ ํจ์ โโโ parsers/ โโโ base.py # ์ถ์ ๊ธฐ๋ณธ ํ์ ๋ฐ ParseResult ๋ชจ๋ธ โโโ generic.py # ๋ฒ์ฉ ๊ธฐ์ฌ/๋ธ๋ก๊ทธ ํ์ โโโ twitter.py # Twitter/X ํ์ (FxTwitter + Nitter) โโโ reddit.py # Reddit ํ์ (.json API) โโโ youtube.py # YouTube ์๋ง ํ์ ``` --- ## ๐ง ์ค์ | ๋ณ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช | |------|--------|------| | `DEEPREEDER_MEMORY_PATH` | `../../memory/inbox/` | ์ฝํ ์ธ ์ ์ฅ ๊ฒฝ๋ก | | `DEEPREEDER_LOG_LEVEL` | `INFO` | ๋ก๊น ์์ธ ์์ค | | `FIRECRAWL_API_KEY` | `""` | ์ ํ ์ฌํญ. ์ค์ ์ ์ฐจ๋จ/์ ๋ฃ ์ฝํ ์ธ ๋ฅผ ์ฐํ ์คํฌ๋ํํ๋ Firecrawl์ ํด๋ฐฑ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. | --- ## ๐ก ์ DeepReader์ธ๊ฐ? | ๊ธฐ๋ฅ | DeepReader | ์๋ ์คํฌ๋ํ | ๋ธ๋ผ์ฐ์ ๋๊ตฌ | |------|-----------|-------------|-------------| | **ํธ๋ฆฌ๊ฑฐ** | URL ์๋ ํธ๋ฆฌ๊ฑฐ | ์ฝ๋ ์์ฑ ํ์ | ์๋ ์์ | | **Twitter/X** | โ ์์ ์ง์ | โ ์ฐจ๋จ๋จ | โ ๏ธ ๋ถ๋ถ์ | | **Reddit ์ค๋ ๋** | โ + ๋๊ธ | โ ๏ธ ๋ณต์ก | โ ๏ธ ๋๋ฆผ | | **YouTube ์๋ง** | โ ๋ด์ฅ | โ ๋ณ๋ ๋๊ตฌ | โ ๋ถ๊ฐ | | **API ํค** | โ ๋ถํ์ | โ ์์ฃผ ํ์ | โ ๋๋๋ก | | **์ถ๋ ฅ ํ์** | ๊น๋ํ Markdown | ์์ HTML | ์คํฌ๋ฆฐ์ท | | **๋ฉ๋ชจ๋ฆฌ ํตํฉ** | โ ์๋ ์ ์ฅ | โ ์๋ | โ ์๋ | --- ## ๐ ํฌ๋ ๋ง - **[FxTwitter / FixTweet](https://github.com/FxEmbed/FxEmbed)** โ Twitter/X ์ฝํ ์ธ ๊ฐ์ ธ์ค๊ธฐ์ฉ ๊ณต๊ฐ API - **[x-tweet-fetcher](https://github.com/ythx-101/x-tweet-fetcher)** โ FxTwitter ํตํฉ ์ ๊ทผ ๋ฐฉ์์ ์๊ฐ - **[Trafilatura](https://trafilatura.readthedocs.io/)** โ ๊ฐ๋ ฅํ ์น ์ฝํ ์ธ ์ถ์ถ - **[youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api)** โ YouTube ์๋ง ๊ฐ์ ธ์ค๊ธฐ --- ## ๐ค ๊ธฐ์ฌ ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! 1. ์ ์ฅ์๋ฅผ Fork ํฉ๋๋ค 2. ๊ธฐ๋ฅ ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค (`git checkout -b feature/amazing-parser`) 3. ๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค (`git commit -m '๋๋ผ์ด ํ์ ์ถ๊ฐ'`) 4. ๋ธ๋์น๋ฅผ ํธ์ํฉ๋๋ค (`git push origin feature/amazing-parser`) 5. Pull Request๋ฅผ ์ฝ๋๋ค --- ## ๐ ๋ผ์ด์ ์ค ์ด ํ๋ก์ ํธ๋ **MIT ๋ผ์ด์ ์ค**์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค โ ์์ธํ ๋ด์ฉ์ [LICENSE](LICENSE) ํ์ผ์ ์ฐธ์กฐํ์ธ์. ---
OpenClaw์์ ๐ฆ ๋ก ๋ง๋ค์์ต๋๋ค