AfdianToMarkdown
Инструмент для скачивания динамики и сборников авторов с платформы 爱发电 (afdian.com) и сохранения их в формате Markdown.
Важно: Данная программа не позволяет бесплатно скачивать контент, требующий подписки.
Подготовка
- Установите расширение для браузера Cookie Master.
- Войдите в аккаунт 爱发电, откройте расширение и нажмите Copy, чтобы скопировать cookies в буфер обмена.
- Создайте файл
cookies.json в папке с программой (или в корне проекта, если клонировали репозиторий) и вставьте скопированный JSON-текст.
- При необходимости укажите хост вручную (по умолчанию
afdian.com).
Глобальные параметры
| Параметр |
Описание |
Значение по умолчанию |
--host |
Основной домен сайта |
afdian.com |
--dir |
Папка для сохранения данных |
data/ в папке программы |
--cookie |
Путь к cookies.json |
cookies.json в папке программы |
--disable_comment |
Отключить загрузку комментариев |
false |
--debug |
Включить отладочные логи |
false |
Установка и сборка
Вариант 1: Готовый бинарник
Скачайте последнюю версию из раздела Releases на GitHub.
Вариант 2: Сборка из исходников
Требуется Go. Выполните в корне проекта:
go build
Использование
Программа запускается из командной строки (cmd, PowerShell, bash).
Windows: откройте терминал в папке с AfdianToMarkdown.exe (например, Win+R → powershell → cd D:\...\AfdianToMarkdown).
Linux/macOS: используйте ./AfdianToMarkdown.
Справка по всем командам:
./AfdianToMarkdown -h
О user_id: это последняя часть URL автора, например https://afdian.com/a/user_id/.
Скачать все динамики автора
./AfdianToMarkdown motions --host="ifdian.net" -au "user_id"
Скачать все сборники автора
./AfdianToMarkdown albums -au "user_id"
Обновить все ранее скачанные данные
./AfdianToMarkdown --host="ifdian.net" update
- Требуется наличие папки
motions для каждого автора.
- Скачиваются только недостающие публикации; изменения в уже скачанных файлах не отслеживаются (комментарии тоже не обновляются).
- Для принудительного обновления удалите нужный файл вручную.
Быстрое обновление (для ежедневного использования):
./AfdianToMarkdown update --quick
Флаг --quick пропускает оставшиеся страницы, если файл уже существует.
Скачать один сборник по URL
./AfdianToMarkdown album -u https://afdian.com/album/aaa
Режим MCP-сервера
Программа может работать как MCP-сервер (Model Context Protocol), предоставляя AI-ассистентам (например, Claude Desktop) доступ к локально загруженным данным только для чтения.
Для MCP-режима не требуется cookies.json, нужна только папка с данными (--dir).
Доступные инструменты MCP
| Инструмент |
Описание |
list_authors |
Список всех скачанных авторов |
list_posts |
Список всех публикаций (динамики и сборники) указанного автора |
read_post |
Полное содержимое Markdown выбранной публикации |
search |
Полнотекстовый поиск по скачанным документам |
Режим stdio (локальное использование)
Подходит для Claude Desktop и других локальных MCP-клиентов:
./AfdianToMarkdown mcp
Подключение через Claude Code
claude mcp add --transport stdio afdian -- /путь/к/AfdianToMarkdown --dir /путь/к/data mcp
Ручная настройка в claude_desktop_config.json
{
"mcpServers": {
"afdian": {
"command": "/путь/к/AfdianToMarkdown",
"args": ["--dir", "/путь/к/data", "mcp"]
}
}
}
Режим HTTP (удалённый доступ / NAS)
Подходит для постоянной работы на NAS или сервере:
Запуск (порт 8080 по умолчанию, слушает все интерфейсы):
./AfdianToMarkdown mcp --http
С указанием порта:
./AfdianToMarkdown mcp --http --addr 127.0.0.1:9090
Параметры MCP
| Параметр |
Описание |
По умолчанию |
--http |
Включить HTTP-режим |
false (stdio) |
--addr |
Адрес прослушивания |
0.0.0.0:8080 |
Подключение удалённого сервера в Claude Code
claude mcp add --transport http afdian http://<ip-сервера>:8080/mcp
Ручная конфигурация для HTTP
{
"mcpServers": {
"afdian": {
"url": "http://<ip-сервера>:8080/mcp"
}
}
}
Пример развёртывания на NAS (cron + systemd)
systemd-сервис (/etc/systemd/system/afdian-mcp.service):
[Unit]
Description=AfdianToMarkdown MCP Server
After=network.target
[Service]
ExecStart=/путь/к/AfdianToMarkdown --dir /путь/к/data mcp --http
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
cron-задание (обновление данных каждый день в 3:00 и перезапуск сервиса):
0 3 * * * /путь/к/AfdianToMarkdown --dir /путь/к/data --cookie /путь/к/cookies.json update && systemctl restart afdian-mcp
История изменений (кратко)
- v1.0.0 (Breaking Change): Новая структура данных — несовместима с предыдущими версиями. Отдельные параметры
--dir и --cookie. Имена файлов: {дата}_{заголовок}.md. Поточная загрузка. Режим --quick и --debug.
- v0.5.0: Поддержка скачивания одного сборника по URL; флаг
--disable_comment.
- v0.4.0: Поддержка сборников с изображениями.
- v0.3.0: Смена домена по умолчанию на
afdian.com; исправлен поиск cookies.json.
- v0.2.2 и более ранние: Оптимизация скорости, команда
update, поддержка смены домена.
Комментарии
Комментариев пока нет. Будьте первым.