curlコマンドを用いて、wttr.inにアクセスすることで天気予報の情報を表示してくれます。
1 |
curl wttr.in |
とてもシンプルなURLで実行をするとIPアドレスから判断した地域の天気を表示してくれます。
地域を指定すれば、その地域の天気予報の情報を表示してくれます。
実行結果(2024/12/05に実行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
$ curl wttr.in/Tokyo Weather report: Tokyo \ / Sunny .-. +14(11) °C ― ( ) ― → 59 km/h `-’ 10 km / \ 0.0 mm ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Thu 05 Dec ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ \ / Sunny │ \ / Sunny │ \ / Clear │ \ / Clear │ │ .-. +14(11) °C │ .-. +14(11) °C │ .-. +14(10) °C │ .-. +13(10) °C │ │ ― ( ) ― → 51-60 km/h │ ― ( ) ― → 59-68 km/h │ ― ( ) ― → 64-74 km/h │ ― ( ) ― → 68-79 km/h │ │ `-’ 10 km │ `-’ 10 km │ `-’ 10 km │ `-’ 10 km │ │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Fri 06 Dec ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ \ / Sunny │ \ / Sunny │ \ / Clear │ \ / Clear │ │ .-. +14(10) °C │ .-. +14(10) °C │ .-. +14(10) °C │ .-. +13(9) °C │ │ ― ( ) ― → 64-74 km/h │ ― ( ) ― → 64-74 km/h │ ― ( ) ― → 64-74 km/h │ ― ( ) ― → 63-72 km/h │ │ `-’ 10 km │ `-’ 10 km │ `-’ 10 km │ `-’ 10 km │ │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Sat 07 Dec ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ \ / Sunny │ \ / Sunny │ Overcast │ \ / Partly Cloudy │ │ .-. +12(9) °C │ .-. +13(9) °C │ .--. +13(10) °C │ _ /"".-. +13(10) °C │ │ ― ( ) ― → 57-65 km/h │ ― ( ) ― → 55-64 km/h │ .-( ). → 53-60 km/h │ \_( ). → 46-53 km/h │ │ `-’ 10 km │ `-’ 10 km │ (___.__)__) 10 km │ /(___(__) 10 km │ │ / \ 0.0 mm | 0% │ / \ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ Location: 東京都, 日本 [34.2255804,139.294774527387] Follow @igor_chubin for wttr.in updates |
wttr.inについて
wttr.inは、シンプルで便利な天気予報サービスで、Webブラウザやコマンドラインから利用できる無料のAPIになります。テキストベースのインターフェースを通じて天気予報の情報を素早く取得できます。
wttr.inの特徴として、URLを介して任意の場所の天気を指定できます。
wttr.inの詳しい情報は GitHub - chubin/wttr.in: :partly_sunny: The right way to check the weather にあります。
APIの情報としては、wttr.in (独立系発行者) - Connectors | Microsoft Learn を見るとよいでしょう。
APIの制限として、接続ごとに60秒間に100回みたいです。地域の指定は結構柔軟で"wttr.in/saga"と指定すると佐賀県の天気予報を表示できます。
wttr.inは他言語対応で、"wttr.in/東京"のような日本語を含んだ言語でも天気の情報を取得することができます。
このように簡潔さと柔軟性を兼ね備えた天気予報サービスになります。
wttr.inのパラメータを利用した例
wttr.inでのパラメータを利用した例をいくつか紹介します。
一行での出力
format=3をパラメータに追加すると一行での出力を返してくれます。
1 2 |
$ curl wttr.in/Tokyo?format=3 Tokyo: ☀️ +15°C |
curlコマンドのglobbingを用いれば複数の指定もできます。
1 2 3 |
$ curl "wttr.in/{Tokyo,Osaka}?format=3" Tokyo: ☀️ +15°C Osaka: ⛅️ +10°C |
JSON形式の出力
format=j1をパラメータに追加するとJSON形式で出力を返してくれます。
1 |
curl "wttr.in/Tokyo?format=j1" |
月の満ち欠け
format=%mで月の満ち欠けを出力してくれます。
1 2 |
$ curl wttr.in/Tokyo?format=%m 🌒 |
tmuxのステータスバーに導入
githubのドキュメントを参考にtmuxのステータスバーに天気情報を表示するように設定してみました。
tmuxは1つのターミナル内で複数のターミナルセッションを管理できるツールで、効率的な作業をサポートするツールになります。
~/.tmux.conf
1 2 3 |
set -g status-interval 60 WEATHER='#(curl -s wttr.in/Tokyo:Osaka:Fukuoka\?format\="%%l:+%%c%%20%%t%%60%%w&period=60")' set -g status-right "$WEATHER ..." |
設定後のスクリーンショット
tmuxについてはあまり詳しくはありませんが右下に天気情報が表示されます。tmuxのstatus-intervalで60秒ごとの更新間隔になります。
URLパラメータのperiodは複数個の地域を指定している場合に地域が切り替わる間隔で上の例では60秒ごとになります。
ツールやプログラムに組み込む場合はtmuxのstatus-intervalのように更新間隔を気にして利用するとよいでしょう。