前回のGoogle検索フィードに引き続き、同じような趣旨で今回はTwitterのタイムラインをRSSで出力するジェネレーターをYahoo! Pipesで作ってみました。
使い方により指定キーワードのTwitter検索をフィード化、あるいは特定アカウントのタイムラインをフィード化することができます。
検索フィードとして利用する場合は【Keyword】にキーワードを指定して[Run Pipe]をクリック、結果が表示されたら「Get as RSS」をクリックするとRSSが出力されるので、そのURLを適宜RSSリーダーに登録して下さい。
検索には下記のオプション設定によって異なる結果やフィルタリングが反映されます。
一方、特定アカウントのフィードが希望の場合には【Target User】に「@kconf」という風にTwitter名を指定すればそのアカウントだけのツイートを得ることができます。
「@user1 @user2 @user3」という具合に半角スペース区切りで複数指定することも可能で、指定されたアカウントのすべてが新しい順に一つのタイムラインとしてまとめて出力させることができます。
これらアカウント指定した場合でも【Keyword】でのキーワード指定も有効で、同様に下記【Contents Type】や【Engagement】を使ったフィルタリングの併用も可能です。
【Target User】
【Keyword】
【Timeline Sort】
【Language】
【Contents Type】
【Engagement】
一般のTwitter検索のページで検索するのと同じ動作なため、Twitterが用意している検索オプションを活用しフレキシブルなフィードが作れます。
その他、『IFTTT』を使ってフィードの更新をトリガーに何らかのアクションを実行させたりという活用の仕方もできると思います。
また、出力したフィードをそのまま利用するのではなくFeedBurnerを中継させるとトラフィックや更新間隔の最適化やフィードタイトルの変更など、いろいろな面でメリットがあるのでおすすめです。
さらに、パイプ内部を弄ればもっといろいろなことができるのでYahoo! Pipeユーザーはクローンを作って好きなようにカスタマイズしてください。
さて、このようなパイプを作るきっかけになったのも、TwitterのAPIの仕様変更によってRSSが廃止されたばかりかすべてのAPIにOAuthによる認証が必須になったことが挙げられます。
少し前までは検索や特定ユーザーのパブリックなタイムラインは何の手順も踏まずURLを投げるだけで普通に取得できていましたが、今ではこれらですら七面倒くさい認証のプロセスが必須というわけです。
そもそもこのようなパブリックな情報の請求のために、認証のための個人情報を送信しなければいけないのは、むしろセキュリティ的に考えて理不尽な気もします。
そこで、昔のような気軽に使える汎用フィードというスタンスで作ってみた次第ですが、何分HTMLから直接パースするという泥臭いやり方なためページのレイアウトが変更されると機能しないという点はどうにもなりませんが、反面、APIを使用していないため余計なプロセスを考えずシンプルな造りですむのが特徴です。
Yahoo!Pipesのサービス終了に伴いこのPipeはすでに機能しません。
TWS-Feedをクローンで使わせて頂いています。生成したフィードはFeedlyで読むのが日課です。
YahooPipeに関しては不勉強で申し訳ないのですが、ここ数週間の間で何故か取得できなくなりました。改めて同じキーワードを使ってフィード生成し取得Feedを眺めてみるとどうやら取得日付がおかしい?のではと思っています →"Thu, 01 Jan 1970 07:00:00 +0000"
Feedly側でもみると、16092日前に配信されたようになってました。 お手間でなければ修正方法をご教示いただけないでしょうか。
Twitter側の日付の書式が変更されたことでpubDateが想定する形に出力できていないことが原因のようでした。
早速、上記2つのパイプはその部分を修正し、一応正常な出力を確認しましたので、この修正済みのクローンをあらためて作って使って頂くのが簡単かと思います。
尚、今使っているクローンを引き続き使用したい場合には、やはり一度クローンを作りソースを開いて変更部分を参考に修正して下さい。
(変更された部分は1番目のRegexモジュールの4から6番目のルールになります)
kenz0さん、早速のご対応有難うございます。修正試してみます。
いつも便利に使わせてもらっています。
昨日か一昨日よりTWU-Feedで、RSSが取得できていません。
修正の対応をしているようでしたら、よろしくお願いします。
プロフィールページのデザイン変更が原因の不具合のようです。
大がかりな改修になりそうなので2,3日お待ち下さい。
不具合修正に留まらず根本的に仕様を見直すことにしました。新しいバージョンの公開は多少先になるのでTWU-Feedをご利用の方はとりあえず上記説明にあるようにTWS-Feedでキーワードに「from:ツイッター名」としてアカウントを絞り込めばほとんどTWU-Feedと同じ結果が得られるので、当面はそちらで代用して下さい。
あらたに製作した上記「TWS-Feed 2」としてTWU-Feedの機能を統合したのでそちらをご利用下さい。
表示時間のズレの問題はpubDateにdata-timeを使えば解決するのですね、勉強になりました。ありがとうございます。
いままでこんなふうにしていました。
Regrex:
Rules in item.pubDate
replace .*?title="(\d*:\d*) (AM|PM) - (\d*) (\w*) (\d*)".*
with $1 $2 $5 $4 $3
_s__
Rules in item.pubDate
replace 12:(\d{2}) AM
with 00:$1 AM
____
Rules in item.pubDate
replace 12:(\d{2}) PM
with 00:$1 PM
____
Loop:
For each item.y:published.utime in input feel:
sinple Math:
item.y:published.utime += 25200
assign results to item.y:published.utime
そうですね。私も前のバージョンではタイムスタンプの文字列から力技でpubDateに変換していましたが、今回、Web版のTwitterでは「data-time」というHTML5の属性から直接UNIX時間を拾えることを知りました。
また、HTML5の属性はXpath Fetchモジュールで文字列として書き出した場合にデバッガ上では隠れた状態になっていますが実際には存在しており「data-time="(.*?)"→$1」みたいにしてやれば抽出できるということを発見するのに結構時間がかかりました。
ナイスなパイプありがとうございます。
質問です。
特定アカウントのフィードについて。
特定アカウントの本人のみならず、リツイートまでも表示されるようです。
本人のみのツイートを取得できますか?
現在のいわゆる「公式RT」はそもそも検索TLには現れないと思うので、おそらく「非公式RT」と呼ばれているリツイートのことだと思いますが、これに関してはキーワードで「-RT」と指定することで除外することができると思います。
こんにちは。これはとても役に立っています。
ありがとうございます。
私もPopesを勉強しはじめました。
ソースをまずみて勉強しています。
質問ですが、表示件数をふやしたり、減らしたりするのは
どこで指定するのでしょうか。
100件ぐらいにしたいのですが、お時間があるときにおしえていただけないでしょうか。
大変便利なツールをありがとうございます。
早速、使わせて頂いているのですが、
出力されるフィードのタイトルに元ツイートの画像リンク等をそのまま表示させることは、可能でしょうか?
(元ツイートを画像リンク等も含めて、そのままフィードのタイトルとして出力可能でしょうか?)
Yahoo!Pipeはあまり詳しくない為、ご教授頂けると大変助かります。
レスが遅れて申し訳ありませんでした m(_ _)m
> mon1127さん
ソースとなるTwitterの公式ページでは20件以上の結果はスクリプトによってその都度動的に追加読み込みされるようになっている構造ですが、このようにあとからスクリプトで追加される部分に関してはをPipeで対応することが不可能なため、20件以上の結果を取得することは難しいかと思います。
一方、逆に件数を減らすことは可能で、例えばOutputの手前にTruncateモジュールを挿入して出力件数を制限してしまうのが最も簡単な方法かと思います。
> サンコンさん
「フィードのタイトル」という内容のご質問ですが、RSSフィード自体のタイトルという意味でしたら、残念ながらYahoo! Pipesはその部分に関して弄れない仕様なので不可能です。
他方、「各アイテムのタイトル」という意味でしたら、それは可能です。
過去に言及したとおり、現行ではあえてリンク化されている文字列は取り除くようにしてありますが、そのプロセスを省略すれば純粋に元のツイート内の文字列そのものすべてがタイトルになります。
ご質問では「ツイート内にある画像にリンクしたURL」のことか「Twitterで表示されている画像ソースへのリンク」のことかよく分りませんが、いずれにしてもPipeのRegexモジュールの1-2行目の項がその処理にあたる部分で、ここを弄ることで適宜編集が可能です。
詳細な変更手順などに関しては、何度かのやり取りが必要になってくることもあるので、直接メールでお問い合わせ頂ければと思います。
No pipe results for TWS-Feed 2.1.
と出て21日くらいから使えなくなっているのですが
取り急ぎ修正しておきました。
早速の修正版ありがとうございます。
それから、もうひとつの修正ヶ所 Regrex item.description の replace 項目の修正も必要ではないでしょうか?
Regrex:
Rules in item.description
replace http://www.orkut.gmodules.com
with https://twitter.com
g___
ご指摘の通りdescription及びlink要素内のリンク置換の変更を忘れており、只今修正を入れました。
ご報告ありがとうございました。
こんにちは。とても便利につかわせていただいています。ところでこのニュースは大ピンチなのでは…と思いまして。
>Yahoo、IFTTTの先駆けともなったYahoo Pipesのサービスを停止(Yahoo Mapsなど含む) | TechCrunch Japan http://tcrn.ch/1InAiOr
もう何年も更新している様子が無く、いつ終わってもおかしくないサービスと云うことで、数年前から覚悟はしていましたが、とうとうこの日が来たかという感じですね。
Pipeはこのブログの情報収集にも大いに活用しているので正直ダメージが大きいです。
こんにちは。非常に便利なので使わせていただいております。ありがとうございます。
最近、一部ツイートの取りこぼしが発生しているようです。
もし可能でしたら修正していただけると非常に助かります。
よろしくお願いいたします。
「一部のツイート」という曖昧なケースでは、こちらが同じ状況を再現するのが困難であり、またそのような時間的余裕もないため問題が発生する具体的事例などの究明はユーザー各位で行なって頂きたいと思います。
その上で問題がハッキリ特定できれば修正できることは対処いたします。
kenz0さんこんにちは。pipesが終了という事を知ってこちらに早速来てみました。pipesの存在はこちらで知ったのと今では重宝して常に利用していたので、残念と思ってます。代替のものをまとめたツイートをみかけるのですが、kenz0さんが作成されたリアルタイム検索との利用法などが出来るのか自分ではまだよく把握しきれてないです。
kenz0さんの方ではpipes終了に関して、近くBlog記事として投稿されたりしますか?意見等を拝見し参考にもしたいとも思っていたので、少し期待しながらBlog自体も引き続き拝見させて頂きたいと思ってます。
当サイトは特にPipes関連サイトというわけではないので、今回の件についてあまり深く立ち入るのもどうかと思っていましたが、購読者の方からそのようなリクエストがあるのであれば今後記事にするかもしれません。
たぶん只のボヤキと嘆きに終始することになるでしょうが。
kenz0さんありがとうございます。
お昼に投稿したもーです。
了解致しました。
自分はグラフィック方面の人間なのでBlogの内容は結構自分のアンテナにあっていて楽しんで拝見させて貰っています。
では、もしその機会が来た際にも参考にさせてもらいます。
もしかして8月30日にこのサービス死んだんですかね?
そのようなメッセージでてるんですが…
はい。そのとおりです。
今動作しているPipeも今月30日で完全終了ということです。
ちなみにこの記事を含めて当サイトでこれまで紹介したYahoo! Pipe関連の記事は今後ほとんど意味が無くなりユーザーの混乱を招くだけなので、削除するかあるいはその旨注意書きを追記するかする予定です。
これは便利です、ありがとうございます。