世界を動かす技術を、日本語で。

Wttr: コンソール向け天気予報サービス

2025年7月17日原文(github.com)

概要

  • wttr.in はコンソール向けの天気予報サービス
  • curlwget などのHTTPクライアントで簡単利用
  • 出力形式 の多様性(ANSI、HTML、PNG、JSONなど)
  • 場所指定や詳細オプション で柔軟な情報取得
  • カスタマイズや他ツール連携 にも対応

wttr.inの概要と特徴

  • wttr.in は、コンソールやWebブラウザから天気情報を取得できるサービス
  • ANSIシーケンス によるターミナル向け表示や、 HTML/PNG/JSON など多彩な出力形式に対応
  • curl/httpie/wget などのコマンドラインツールで簡単に利用可能
  • 世界中の都市名・空港コード・観光地名 など多様な場所指定が可能
  • 1日数千万件 のリクエストを処理する人気サービス

基本的な使い方

  • シェルやWebブラウザから以下のようにアクセス
    • $ curl wttr.in
  • 都市名や空港コードでの指定
    • $ curl wttr.in/London
    • $ curl wttr.in/muc(ミュンヘン空港)
  • 特殊な場所名 指定は~を先頭に付加
    • $ curl wttr.in/~Eiffel+Tower
  • IPアドレスやドメイン名 でも指定可能
    • $ curl wttr.in/@github.com

天気単位の設定

  • 米国 からはUSCS単位、それ以外はメートル法がデフォルト
  • URL末尾に?u(USCS)、?m(メートル法)、?M(メートル法・風速m/s)を付与
    • $ curl wttr.in/Amsterdam?m

出力形式とオプション

  • 対応出力形式 :ANSI、プレーンテキスト、HTML、PNG、JSON、Prometheusメトリクス
  • 色なしテキスト?T
    • $ curl wttr.in/?T
  • 標準フォントのみ?d
    • $ curl wttr.in/?d
  • PNG出力 :URL末尾に.png
    • $ wget wttr.in/Paris.png
  • PNGオプション_区切りで指定(例:透明度tや言語設定lang=fr
    • $ wget wttr.in/Paris_0tqp_lang=fr.png

ウィジェット埋め込み

  • wttr-switcher でWebページに天気ウィジェット埋め込み可能
  • 実例:https://feuerwehr-eisolzried.de/

ワンライン出力

  • ステータスバーtmux/weechat などで便利な1行出力
  • ?format=3などで指定
    • $ curl wttr.in/Nuremberg?format=3
  • 複数都市同時取得 :コロン区切りまたは波括弧記法
    • $ curl wttr.in/Nuremberg:Hamburg:Berlin?format=3
    • $ curl -s 'wttr.in/{Nuremberg,Hamburg,Berlin}?format=3'
  • カスタム出力%記法で必要項目を自由設定
    • $ curl wttr.in/London?format="%l:+%c+%t\n"

他ツールとの連携

  • tmux :status-intervalやパラメータperiod=で自動更新
  • WeeChat :IRCクライアントのステータスバーに表示
  • Conky :PNG出力と画像合成による表示
  • IRC連携 :専用スクリプトでASCII天気情報表示

絵文字・フォントサポート

  • 絵文字表示 には端末とフォントのサポートが必要
  • 推奨フォント: Noto Color EmojiEmoji One
  • fontconfigやURXVTの設定例も紹介

データリッチ出力(v2)

  • v2モード で天気や天文情報を詳細表示
    • $ curl v2.wttr.in/München
  • Nerd Fonts 利用のv2d(昼)/v2n(夜)モードもあり
  • 現状は英語のみ・ターミナル専用

地図ビュー(v3)

  • v3モード で地理的領域の天気地図を取得
    • $ curl v3.wttr.in/Bayern.sxl
  • PNG/Sixel/IIP 形式に対応
  • 対応端末例:kitty、wezterm、iTerm2など

JSON出力

  • プログラム連携 やAPI利用に便利なJSON形式
    • $ curl wttr.in/Detroit?format=j1
  • JSONで地域ごとの天気データを取得可能

wttr.in は、シンプルなコマンド一発で世界中の天気を取得できる強力なサービス。多彩な出力形式とカスタマイズ性、他ツール連携まで幅広く対応しているため、日常の情報取得からスクリプト・自動化まで様々な用途で活用可能。

Hackerたちの意見

https://teletextart.co.uk/wp-content/uploads/2016/05/weather...

きれいだね!リンクしてくれる?7月20日じゃないって気づくのにちょっと時間かかった。9年前の天気がそんな感じだったなんて想像できないよ!

今は一応あるよ https://github.com/shift/ceefax-weather :D

厳密に言うと、Unicodeのバージョン13が出るまでは、TUI用にページを実際のテキストとして正しくレンダリングすることはできなかったんだ。必要なブロックグラフィック文字が含まれてたのは、たった5年前のことだしね。それに、ViznutのUnsciiやGNU Unifontみたいな現代的なフォントが必要だったり、必要なコードポイントをカバーしているか、あるいはブロックやライン文字をアルゴリズムで構築して、Unicode 13に対応したターミナルエミュレーターの一つが必要だったりする。* https://github.com/jdebp/unscii/blob/2.1.1f/src/grids.txt#L4... * https://github.com/jdebp/unscii/blob/2.1.1f/src/grids.txt#L9...

Brandyは、Mode7(テレテキストみたいな)スクリプトを使ってサーバーやBBSをブラウズするのに問題なく使えてるよ… https://github.com/stardot/MatrixBrandy

あ、なるほど、「ターミナル」のことね。ターミナル用のceefaxクライアントもあるよ。でも、XTermsのフォントを変更する必要がある。Linux/BSDのフレームバッファを使えば同じことができるかもしれないけど、まずフォントを変換して文字をマッピングする必要があるよ。ここにあるよ: https://github.com/simonlaszcz/vidtex

これはニッチの中のニッチだってわかってるけど、Waybar使ってる人には、wttrbarを作ったよ。これ、Wttr.inを使ってバーに詳細な天気ウィジェットを表示するんだ。 (https://github.com/bjesus/wttrbar/)

ありがとう!「これをWaybarに表示させるにはどうすればいいんだろう」と考えてたところだったから、これで時間を節約できるよ。 EDIT: これ、特にタイムリーだね。UK気象庁が最近、以前使ってたAPIの廃止を発表したから。 https://www.metoffice.gov.uk/services/data/datapoint/datapoi...

これ、めっちゃ使ってるし大好き!作ってくれてありがとう!

curl wttr.in/London > london.txt open -a TextEdit london.txt 制御コードのゴミを見てみて。個人的には、isattyを呼び出すまではANSIエスケープシーケンスを出力しない方がいいと思う。できればtermcapも確認した方がいいし。でも、個人的にはターミナルは埋めて、もっと良いREPLや軽量のGUIツールキットを作るべきだと思う。

これはローカルコンピュータにアクセスできないウェブAPIだよ。

フォーマットを自分に合ったものに変えることもできるよ。

Hacker Newsで議論の続きを見る