Пользователь
0,0
рейтинг
18 мая 2013 в 11:26

Разработка → Шесть недель до закрытия Google Reader — спасаем всё что можно

image

Google Reader появился в 2005 году. Год или два спустя я начал им пользоваться как основным источником информации. И вдруг нате, получите — не выгодно, не профильно, закрываемся… Как результат, во-первых потеряли продвинутую (гики) и лояльную аудиторию, во-вторых эти гики тут же начали писать или дописывать различные альтернативы. Усилилась сегментация, возникла проблема выбора ну и вообще some folks got pissed off

За всё это время у меня накопилось порядка 30 подписок, которые я регулярно читал и планирую продолжать в будущем. Официальная рекомендация в блоге предлагает воспользоваться сервисом Google Takeout для выгрузки подписок и закладок в файл.

Сходил, выгрузил. Поискал альтернативы (раз, два, три, четыре). Нашёл, загрузил. Сразу проблемы:

  • Ограничена глубина истории
  • Не везде работает импорт starred items
  • Часть блогов или статей на которые ссылаются подписки уже давно в оффлайне


Ради полноты истории и спасения постов с мёртвых блогов пришлось напрячься и написать инструмент для выкачивания из Google Reader полнотекстовых статей (всего что было в потоке RSS). Есть такие статьи к которым я периодически возвращаюсь, а привычки сохранять в instapaper/scrapbook/evernote у меня нет. Кроме того я частенько пользовался сервисами делающими Full-Text RSS из куцых потоков (типа HackerNews) и в этом плане мои подписки вполне читабельны прямо в ридере.

Для работы с Reader API существует документация и пара модулей для Python (сорри, другие языки не смотрел). Из них можно сразу брать libgreader и остальное не читать. Результат — проект fetch-google-reader на Github.

1. Устанавливаем (желательно в virtualenv, плюс для python < 2.7 eщё потребуется модуль argparse):

pip install git+git://github.com/max-arnold/fetch-google-reader.git
curl -s -k https://raw.github.com/max-arnold/fetch-google-reader/master/requirements.txt | xargs -n 1 pip install


2. Создаём директорию куда будут сохраняться статьи:

mkdir rss-backup
cd rss-backup


3. Получаем перечень RSS-подписок:

fetch-greader.py -u YOUR-USERNAME@gmail.com -p YOUR-PASSWORD

* Please specify feed number (-f, --feed) to fetch: *
[0] Atomized
[1] Both Sides of the Table
[2] Hacker News
[3] Signal vs. Noise
[4] хабрахабр: главная / захабренные


Выбираем нужную и запускаем скачивание:

fetch-greader.py -u YOUR-USERNAME@gmail.com -p YOUR-PASSWORD -f 0

* Output directory: atomized *
---> atomized/2011-05-24-i-hate-google-everything/index.html
---> atomized/2011-01-19-toggle-between-root-non-root-in-emacs-with-tramp/index.html
---> atomized/2010-10-19-ipad/index.html
---> atomized/2010-09-01-im-not-going-back/index.html
---> atomized/2010-08-31-they-cant-go-back/index.html
---> atomized/2010-08-28-a-hudson-github-build-process-that-works/index.html
---> atomized/2010-08-18-frame-tiling-and-centering-in-emacs/index.html
---> atomized/2010-08-17-scratch-buffers-for-emacs/index.html
---> atomized/2010-07-01-reading-apress-pdf-ebooks-on-an-ipad/index.html


По умолчанию качаются все статьи из выбранного потока, но можно ограничиться только отмеченными добавив ключ --starred. Также с помощью ключика --dir можно самостоятельно задать директорию куда будут сохраняться файлы.

RSS-поток сохраняется в директорию с именем полученным из названия потока (преобразованным в латиницу). Каждая статья сохраняется в отдельную директорию с именем полученным из даты и названия статьи. Сделано это для того чтобы можно было туда же сохранить дополнительные метаданные или картинки. На данный момент картинки не сохраняются т.к. утилита рассчитана на блоги которых уже нет в оффлайне, но ничто не мешает её доработать.

Вопрос к аудитории


Какая из существующих альтернатив не ограничивает глубину истории RSS-потока (т.е. хранит всё что когда-либо было скачано) и навечно кэширует полнотекстовый контент? И на всякий случай имеет API или экспорт чтобы всё это можно было утянуть к себе на компьютер когда карты опять лягут не так?

P.S. Картинка © mashable.com
@cbx
карма
52,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (92)

  • +1
    Так вроде 1 июля закроют.
    googleblog.blogspot.ru/2013/03/a-second-spring-of-cleaning.html
    • 0
      Упс, точно! June 1 это другой проект, упомянутый в той же статье. Щас попробую переименовать топик…
  • 0
    1 месяц и две недели до закрытия. (буду обновлять чаще комментарии)
    • +26
      Не будете. Никто не будет.
      • +5
        Ну вот взяли и стольким людям отмазки испортили =)
        • 0
          А че отмазки? Я проверял, но эти 2 минуты, а в реальности скорей всего 1 минута и несколько секунд я писал и опубликовывал комментарий.
        • НЛО прилетело и опубликовало эту надпись здесь
  • +5
    А я всё ещё так и не нашёл альтернативу. Попробовал всё из этого обзора habrahabr.ru/post/172725/, но ничего такого же удобного не нашёл. Разве что feedly, но этот плагин меня отталкивает. Netvibes хорош, очень хорош, но у него нет клиента под андроид, да и что бы привести его к читабельному виду пришлось userscripts использовать. А остальное на мой вкус ещё хуже
    • +2
      tini tiny rss — почти в копейку с интерфейсом google reader. Ставится на любой стандартный хостинг. Я тоже начал перебирать альтернативы, отчаялся и решил его попробовать, теперь считаю, что только зря время терял — надо было сразу его ставить.
      • +1
        Также выбрал Tiny Tiny Rss. Поставил на свой сервачок. Плагин для Chrome есть, клиент для android тоже. Внешне очень похож на Google Reader. Считаю, замена достойная (лучшее из того, что я пробовал). И ни от кого не зависишь.
        • 0
          Поддерживаю. Помимо того, что функционально и внешне из него можно сделать абсолютную копию GR, его самый главный плюс в том, что его невозможно закрыть.
        • 0
          Я что-то не смог совладать с ним. На сервак встал нормально, но вот автообновление лент не происходит. Только после даблклика на ленте
          • 0
            На официальном сайте есть описание — по крону дергать скрипт.
            • 0
              Несколько раз пробовал настроить крон. Общался с саппортом хостера — бестолку (
        • 0
          Долго не мог решиться использовать Tiny Tiny RSS. Пугала необходимость держать php приложение на роутере/домашнем сервере: небезопасно, нужно бекапить, помнить внешний адрес (да, DynDNS в помощь) и вообще лень :)
          Для таких же лентяев или для тех, кто просто хочет попробовать на OpenShift есть готовый «картридж» с Tiny Tiny RSS. Ставится буквально за минуту, ничего конфигурить не нужно (подтюнить в дальнейшем — пожалуйста, есть shell).
          Еще есть ветка на форуме разработчиков tt-rss.org/forum/viewtopic.php?f=16&t=1360
      • 0
        Есть инструмент чтобы забрать подписки из гугл ридера?
      • 0
        Или воспользоваться tinyrss.ru (вот статья на хабре)
    • 0
      Вы имеете ввиду под словом плагин приложение или расширение? Если расширение, то лично у вас показывается количество непрочитанных новостей на значке или нет?
    • 0
      А расскажите, как вы нетвайбс до ума довели? А то я пробовал и как-то меня результат не особо впечатлил в плане юзабилити.
    • +1
      А мне theoldreader.com/ очень импонирует.
      Плюс, там можно темы настраивать самому, используя css.
      • 0
        Да, интересный проект, да и занимаются им бывшие соотечественники. Жаль только, что проект делается как хобби, т.е. особой скорости разработки ожидать не приходится.

        Использую сейчас параллельно с Feedly, пытаюсь понять, кто и них мне больше нравится.
  • +4
    Лично я перешёл на BazQux, но у него в фиде не более 500 записей как мне показалось. Для того же hackernews или агрегируемых потоков большая история очень актуальна. Готов доплатить ещё за бесконечное хранилище и гарантированный экспорт полнотекстовых статей с картинками :)
    • 0
      Да, не более 500. Сделано для производительности (чтобы SSD-шки не забивать).

      Опцию бесконечного хранилища скорее всего сделаю, но не в ближайшее время.

      Про гарантированный экспорт. Как раз сейчас делаю Google Reader API, чтобы мобильные клиенты подключать. Так что экспортнуть можно будет прямо скриптом из статьи (правда без картинок).
      • +1
        Я пару недель назад тоже попытался попробовать BazQux.

        Хорош, даже денег не жалко. Но чуть-чуть всё же не хватает, чтоб на него пересесть вместо возни с TT-RSS…
        — 500 записей
        — кастомные комментарии и разворачивание полных статей. Да, я хожу на всякие левые сайты и читаю там комментарии.
        — Возможность переключать представление, вместо страшного «set expanded view to all». И кнопки «показывать записи с настройками канала»
        В недостижимом идеальном мире — я не хочу ничего знать о комментариях к записям, например, топ-блогеров.

        Ну и Sort by magic хочется, а ни у кого нет…

        Ну и триал то через 2 недели закончится и я так и не узнаю когда вы прекрасные фичи реализуете и пора будет переезжать…
        На сайте то ни новостей, ни документации…

        Как подписаться то хоть? )
        • 0
          Кастомные комментарии — это что?

          Разворачивание полных статей? Есть возможность получить полный текст поста (кнопка Readability).

          > Возможность переключать представление, вместо страшного «set expanded view to all»

          Есть 5 видов отображения. Которые можно переключать. Не очень понял, что вы имеете ввиду.

          > И кнопки «показывать записи с настройками канала»

          Опять не понял. Что это значит?

          > В недостижимом идеальном мире — я не хочу ничего знать о комментариях к записям, например, топ-блогеров.

          Во всех режимах отображения, кроме первого, комментарии по-умолчанию свернуты. Выбираете фид топового блоггера и отключаете отображение комментариев (или вообще везде можно отключить).

          > Как подписаться то хоть? )

          Подписаться на новости blog.bazqux.com
          • 0
            > Кастомные комментарии — это что?

            комментарии с любых сайтов.

            > Разворачивание полных статей? Есть возможность получить полный текст поста (кнопка Readability).

            Я не понимаю как оно работает. У меня она ерунду показывает. Видимо тоже надо настроить.

            > Есть 5 видов отображения. Которые можно переключать. Не очень понял, что вы имеете ввиду.

            Смотрю фид развернутым с комментариями. Переключаюсь на папку, переключаю папку в list. Возвращаюсь на фид. Не вижу комментариев, хотя точно помню, что настраивал для фида комментарии.

            >> И кнопки «показывать записи с настройками канала»
            > Опять не понял. Что это значит?

            папка, в ней 2 фида. Один я хочу видеть с комментариями, другой — нет.

            > Выбираете фид топового блоггера

            у меня фид жежешечки один на всех, не прокатит.
            • 0
              > комментарии с любых сайтов.

              Не уверен, что это вообще возможно сделать в общем случае.

              > Я не понимаю как оно работает. У меня она ерунду показывает. Видимо тоже надо настроить.

              Readability работает не на всех сайтах, но на многих. В принципе, можно им отправлять запрос, что фигня вышла, но не знаю, насколько они оперативно это исправляют.

              > папка, в ней 2 фида. Один я хочу видеть с комментариями, другой — нет.

              У меня как раз сделано, что настройки отображения запоминаются отдельно для каждого фида. А когда режим выбирается в папке — он устанавливается сразу для всех фидов в этой папке. По этому и получается «переключаю папку в list. Возвращаюсь на фид. Не вижу комментариев»

              >> Выбираете фид топового блоггера
              > у меня фид жежешечки один на всех, не прокатит.

              Понятно. В будущем планирую дорабатывать фильтры. Возможно, добавлю помимо фильтрации настройку отображения для отдельных постов.
              • 0
                > Не уверен, что это вообще возможно сделать в общем случае.

                в общем и не надо. Надо поле, куда я смогу ввести xpath/regexp/как там у вас
                На tt-rss я поставил af_feedmod — теперь работает на всех сайтах без запросов про Readability.

                > А когда режим выбирается в папке — он устанавливается сразу для всех фидов в этой папке.

                Я понял, и мне это не нравится.
          • 0
            А у вас есть какой-нить публичный issue tracker, чтобы можно было следить, что планируется заимплементить в ближайшем будущем, какой прогресс идёт в данную минуту? А то пожеланий к вашему проекту, как я погляжу, много, и от меня в том числе (отправлял на емайл фидбака).
            • 0
              Есть bazqux.uservoice.com — там можно предлагать/голосовать за новые фичи. Для тех, что собираюсь делать в ближайшее время написано planned.

              Также теперь в блоге пишу про то, что добавил и про ближайшие планы.

              В целом, в данную минуту делаю Google Reader API (несколько приложений уже синхронизируется), потом автообновление числа непрочитанных сообщений и звездочки (избранное).
      • +2
        А можно увеличить до 1000 (для всех фидов или выборочно)? А то за время праздников/отпусков набегает > 500
        • 0
          Пока нет. Возможно, в будущем увеличу.
    • 0
      Хотя совсем этим же скриптом не выйдет. Он все-таки к google.com обращается, а не к bazqux.com, но думаю в скором времени у libgreader появится опция указания сервера )
  • +5
    Попробовал альтернативы. Остановился на feedly.
    Он более всего напоминает ридер, и в нем меньше всего лишних наворотов в интерфейсе.
    Но недавно снова вернулся в ридер из за странной проблемы: feedly как-то выборочно отмечает прочитанные при прокрутке. Иногда только со второго раза.
    Такая проблема в feedly только у меня?
    • +5
      Не только у вас. Именно из-за этой проблемы перешёл на The Old Reader. Ещё веб морда не понравилась, но это уже личное.
    • 0
      а, значит мне это не мерещилось! очень раздражает.
  • +3
    theoldreader
    • 0
      Поддерживаю. Тоже перешёл на него. Не чувствую никакого ущемления в функционале.
      Вот только работает он не шустро.
      • 0
        Быстроту надеюсь наладят. Шаринга еще не хватает в остальном почти, как гугле ридер
    • +2
      а к нему можно подключить какое-то мобильное приложение?
    • 0
      повторяю вопрос топикстартера о том, неограниченна ли история хранения непрочитанных новостей
  • +2
    Попробуйте feedspot.com/ более-менее понравился. Переписывался с автором, пару багов исправили шустро.
  • +3
    Друзья, кто-нибудь нашел связку какого-либо сервиса и приложения для Android, позволяющую автоматически скачивать на телефон не только сам RSS, но и полные страницы с картинками, для чтения в оффлайне?
    • 0
      Я для этого пользовался Pocket (Read It Later) — интересные посты/статьи кидаю в него, а он сразу скачивает полные версии и на планшет и на телефон, и хранит их потом.
  • +24
    Ребятушки, попробуйте InoReader.com. Вещь очень клевая. Есть расширение для Chrome. Ридер классный, жаль только малоизвестный.
    • +1
      Спасибо! Кажись вы нашли мне замену GR
    • 0
      Выглядит неплохо!
    • 0
      Нельзя вручную подписки сортировать. Жаль. А еще, если смотреть подписку где много картинок, то при подгрузке следующей порции его дико колбасит и фокус отбрасывает назад.
      • +3
        Но автор пишет нам в чейнджлоге: «Hang on! Manual tree ordering is almost complete...»
        • +1
          Уже доступно. Правда пока только в не совсем очевидном месте нужно переключить способ сортировки на мануальный:
          Контекстное меню раздела подписок слева
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Отличная штука и похожа на оригинальный.
      А есть ли там возможность генерировать rss ленту из папки, чтобы забирать целиком настольным клиентом?
    • +2
      Жесть, это же 10 из 10! Спасибо большое!
    • +2
      Спасибо, друг!
    • 0
      Подскажите, как он вытягивает историю ленты? Может как ГР вытянуть вплоть на начала жизни фида?
      • 0
        Не знаю. Пробуйте.
    • +1
      Выглядит приятно, но очень странно работает прокрутка — постоянно захватывает следующий пост при чтении текущего.
    • 0
      Спасибо, и правда отличная замена!
      Только вот не нашел как сделать так, чтобы папки при открытии ридера были сразу развёрнуты..?
    • 0
      Показывает нереальное число непрочитанных записей. в google reader — 25, в inoreader — 11
    • 0
      Попробуйте еще такой вариант The Old Reader, очень схож с GR
    • +1
      Я написал фидбек разработчику, так он уже через 4 часа внедрил ВКонтактовскую кнопку «Поделиться».
      Имхо, невероятный функционал сервиса вкупе с отзывчивостью создателя вполне гарантируют ему славу полнофункционального заменителя GR!
    • 0
      У меня почему-то из 1700+ осталось только 305 непрочитанных. А OldReader все определил верно. Интересно, это в нем какое-то ограничение стоит? У меня всегда непрочитанных много.
    • 0
      Отличная штука! И есть возможность импорта подписок из GR!

      Настройки -> Импорт/Экспорт
  • +2
    Посмотрю что Digg.com нам готовит, у них довольно приятный минималистичный дизайн, говорили что успеют до закрытия выпустить свое решение
  • +1
    Советую еще попробовать www.commafeed.com/ — опенсорс, можно пользоваться как на сайте программы после регистрации, так и скачать исходники и поставить на свой сервер.
  • +1
    Обнаружил что инструкция по установке не работает из-за того что забыл положить setup.py. Починил.

    Кроме того libgreader во время установки хочет импортировать requests который в данный момент ещё не поставлен (даже если указать его в зависимостях setup.py) и на этом инсталляция падает. Добавил в документацию хак с построчной установкой зависимостей из requirements.txt. Если кто знает как разрулить все зависимости через setup.py — патч приветствуется.

    Также втянул вот этот фикс: github.com/alex-groshev/fetch-google-reader/commit/1cc760368f7f0f52de25afc5e722d295603b5184
  • 0
    Поделитесь опытом, посоветуйте решение к следующему сценарию.

    Хочу забрать из Google Takeout список фидов и загрузить в другой сервис. Сервис должен:
    1. Не зависеть больше от гугля.
    2. Позволять легко добавлять новые фиды.
    3. Иметь приложение под iOS с возможностью кэширования контента для чтения в оффлайне. В идеале приложение должно быть бесплатным.

    Желательно иметь возможность интеграции с Pocket. Интеграция со всякими социальными сетями и прочими твиттерами совершенно безразлична.

    Сейчас пользуюсь Google-ридер + Byline

    Попробовал Feedly — модно, стильно, молодежно. Но чтения в оффлайне на iOS нет :(
    Кроме того, несколько напрягает меня, что он логинится к моему гугл-ридеру постоянно — что с ним 1 июля станет? Или я этот фидли неправильно готовлю?
    • 0
      Feedly вы готовите правильно. Его разработчики обещали к закрытию GReader сделать свой backend.
    • 0
      Попробуйте Reeder
      Версия для айпада и OS X сейчас бесплатна, но имеет меньший функционал (обещают апдейт в июне-июле, если правильно помню).
      • 0
        Спасибо за рекомендацию, по функционалу похоже, что именно то, что надо. Но занудства ради должен отметить, что iOS app стоит 3 бакса, а не бесплатно.
    • 0
      Reeder + Feedbin
      через Feedbin синхронизируются прочитанные записи
      • 0
        Спасибо.
  • +1
    Ммм… А чего вы не хотите сделать туда «скачать всё и сразу»?
  • 0
    python-argparse ещё доставить нужно.
    • 0
      Да, код проверялся под 2.7 где argparse из коробки. Для 2.6 нужно поставить.
  • 0
    и не хватает ссылок на оригинал, кстати (
    • 0
      На оригинал чего?
      • 0
        На оригинал статьи оригинальной, простите за каламбур =)
        Тег link неплохо было бы тоже выгружать, я вот к чему. А то не все утруждают себя ссылкой «читать далее».
        • 0
          Это не перевод и не пост-ссылка, если вы это имели ввиду. Статья оригинальная, писалась специально для Хабра.
          • 0
            Тега link из фидов, которые скриптом скачиваются…
            • 0
              Посмотрите сейчас. Теперь в начало html добавляется тег h3 с названием статьи и ссылкой на оригинал.
              • 0
                fp.write('{}\n'.format(item.url, item.title).encode('utf-8'))
                ValueError: zero length field name in format

                С таким падает, если -f указать.

                Если не указывать, то:
                File "/usr/local/bin/fetch-greader.py", line 84, in main
                print "[{}] {} [{}]".format(i, feed.title, feed.feedUrl).encode('utf-8')
                ValueError: zero length field name in format

                • 0
                  Код писался под 2.7. Пофиксил.
                  • 0
                    Аха, супер, работает)
                    Спасибо.

                    Дальше на гитхаб приду, если что найдется.
                • 0
                  Вообще фичереквесты и баги лучше на гитхаб: github.com/max-arnold/fetch-google-reader/issues
  • 0
    Thunderbird тоже с RSS-подписками неплохо справляется.
    • 0
      … но привязан к машине, на которой установлен.
  • +1
    Сразу после новости о закрытии сервиса хорошенько всё обдумал и тупо удалил весь контент оттуда и удалил закладку на GR в браузере. Честно говоря, без постоянного потока инфы сначала было тяжко, но потом привык и теперь ни нарадуюсь. Освободилось много времени и энергии. Неожиданно, но факт :)
    • 0
      Тоже хороший вариант :)
  • 0
    Сказал бы еще кто, как на яндекс.почту с гугла все перевезти с ярлыками и фильтрами, цены бы не было
    Меня б тогда на гугле ничего больше не держало
  • 0
    Навальный опубликовал ссылку на этот пост в своём блоге. Это означает, что Алексей боится потерять часть аудитории, которая читает его через RSS. Это в свою очередь сигнализирует, что означенная часть является Большей из всех остальных. А поскольку многие из нас поддерживают оппозицию, проект надо развить до юзабельного вида.
    *пишу под парами.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.