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

プレイボール – ターミナルからMLBの試合を観戦する

概要

playball はMLBの試合を ターミナル上で観戦 できるツール インストールや実行が 簡単 で、カスタマイズ性も高い キーボード操作 でスケジュールや試合情報の閲覧が可能 色設定やお気に入りチーム の登録も柔軟に対応 Dockerや開発用 にも対応しており、貢献も歓迎

playball:MLB試合観戦ターミナルアプリ

  • MLBの試合を ターミナルウィンドウ で閲覧できるアプリケーション
  • MLB GamedayやMLB.tvのような公式サービスと異なり、 目立たずに試合状況を確認 できる利便性
  • スケジュール・順位表・試合詳細などを キーボード操作 で素早く切り替え可能

クイックスタート・インストール方法

  • お試し利用は npx コマンドで即実行可能
    • $ npx playball
  • 本格利用の場合は グローバルインストール 推奨
    • $ npm install -g playball
    • $ playballで起動

Docker対応

  • Dockerイメージのビルドと実行が可能
    • $ docker build -t playball .
    • $ docker run -it --rm --name playball playball:latest

キーボード操作一覧

  • グローバル操作
    • q:終了
    • c:スケジュール画面へ
    • s:順位表画面へ
  • スケジュール画面
    • ↓/j, ↑/k, ←/h, →/l:試合のハイライト切替
    • Enter:選択中の試合詳細へ
    • p:前日のスケジュール/結果
    • n:翌日のスケジュール
    • t:当日のスケジュールに戻る
  • 試合詳細画面
    • ↓/j, ↑/k:プレイリストのスクロール

設定・カスタマイズ

  • playball config コマンドで設定値の確認・変更が可能
    • 例:playball configで現在の設定一覧を表示
    • 例:playball config color.strikeで特定設定値の確認
    • 例:playball config color.strike blueで設定変更
    • 例:playball config color.strike --unsetでデフォルト値にリセット
  • 色設定 はblack, red, green, yellow, blue, magenta, cyan, white, grey等から選択可能
    • bright-light-の接頭辞や、16進カラーコード(例:#FFA500)も対応
  • お気に入りチーム は、ATL, NYY, SEAなどMLB全30球団から指定可能
    • 複数チームはカンマ区切りで設定(例:SEA,MIL)

設定項目一覧(抜粋)

  • color.ball:ボール表示色(初期値:green)
  • color.favorite-star:お気に入りチーム表示色(初期値:yellow)
  • color.in-play-no-out:無死プレイ時の色(初期値:blue)
  • color.out:アウト表示色(初期値:red)
  • color.strike:ストライク表示色(初期値:red)
  • favorites:お気に入りチーム(例:NYY,SEA)

開発・コントリビューション

  • GitHubからクローン して開発環境構築が可能
    • git clone https://github.com/paaatrick/playball.git
    • cd playball
    • npm install
    • npm start
  • 外部からの貢献 も歓迎
    • IssueやPull Requestによる機能追加・修正が可能

まとめ

  • playball はMLBファン向けの シンプルかつ高機能なCLIアプリ
  • ターミナルでの 効率的な試合チェック、カスタマイズ性、開発者フレンドリーな設計
  • MLBをもっと身近に、 自分好みの環境で観戦体験 が可能

Hackerたちの意見

いいね!MLBのAPIは、こういう情報にアクセスするのに意外と便利なんだよね。(「watch」を全然違う意味で解釈しちゃったのは、過去の投稿を見ればわかるよ)

それは控えめすぎるね。

「watch」を全然違う意味で解釈しちゃった(プロフィールの自己紹介) > ジョシュだよ、ミネソタ出身。言わなくてもわかる。

すごいね。特定のスポーツフランチャイズのファンが、こういうテキストの説明を使って、盲目チェスをする人たちみたいに頭の中で試合を再構築するのを想像するんだ。

野球に関してはplaintextsportsが大好き。野球はテキスト(とラジオ)にすごく適してるスポーツだよね。他のスポーツと比べても。ターミナルで見るのもクールだし。

そうだね、今気づいたんだけど、野球のスコアリングのルールって、実質的に野球のためのDSLみたいなもんだよね。試合で起こることを表現する標準的な方法があるんだ。これが面白いプログラムで活用されてるか気になるな。例えば、こんなイニングがあるよ:K | 6-3 | BB | 2B (RBI, R1-H) | F8

完全に個人的な経験だけど、試合を見て、起こったことを逐一記録するためにお金をもらってる人たちがいるんだ。昔、その仕事をしてたことがあるよ。これがMLBやESPNがライブ更新をする理由で、こういうことを支えてるんだ。

野球の試合で起こったことを自分の楽しみのために記録するファンもいるよ。

球場に行ったときは、スコアをつけるのが好きなんだ。集中できるし、プロのスコアラーと比べて自分がどれだけミスするかを見るのが楽しい。MLBのスコアをつけたことある?もしそうなら、今も試合を見たらスコアをつける?それとももう飽きちゃった? :D

それの自動化は進んでるの?

これはうちの親父の昔の仕事だったな…地元のマイナーリーグの野球の試合を全部カバーしてた。最初にこのアプリを見たとき、現地でスコアカードを埋めるバージョンを見せるだけだと思ったよ。これが俺の最初の趣味の一つだったからね。

これがその会社だよ。彼らは、すべての試合のプレイを見て、相対的な難易度を評価するための公式を適用する人にお金を払ってる。これらの一部は自動化されてるけど、まだ多くは「目のテスト」に頼ってるんだ。

ちょうどいいタイミングで素晴らしいプロジェクトだね。野球が大好きだし、ハッカー文化も野球を愛してるみたいで嬉しい。野球がアメリカの主要スポーツから衰退した一因は、古い収益モデル(チケット販売に依存していること)だって読んだことがある。80年代のNFLはテレビを積極的に取り入れて、もっと多くのファンに届いたんだよね。最近のMLBはストリーミングに関してかなり先を行ってるし(MLB.tv、AWS StatCastなど)。こういうプロジェクトが野球の人気回復に貢献することを願ってるよ。

MLBとその放送局がギャンブルをこんなに推してるのはほんとに残念だよ。おかしいし、スポーツに毒をもたらしてる。

みんなが退屈だって言う理由はわかるけど、俺は好きなんだよね。今はあんまり追ってないけど、たまに見ても同じように感じる。退屈に見えるんだよね。ちゃんと楽しむにはちょっとした exposure が必要なんだ。試合やシリーズ、シーズンの中で生まれるストーリーはほんとに特別だよ。

もっと進んでほしいな。オースティンにいるけど、アストロズの試合を観るのが難しいんだ。毎試合のために6時間の往復運転するわけじゃないし、結局、契約したくない会社のチャンネルに加入しないといけない。だけど、年間300ドルくらいで全試合が見れるストリーミングサービスがあったら、喜んで払うよ。

アメリカのスポーツファンとして、MLBはストリーミングに関してはずば抜けてるよね。自社のストリーミングサービスで、すべての試合にアクセスできるんだ。ライブでもオンデマンドでも見られるし、イニングの合間に一時停止したり、スキップしたり、テレビやラジオの解説を選ぶこともできる。パソコン、テレビ、スマホ、ウェブでも見られるし、クールな実験的なVision Proアプリもあったよ。NBAも最近は遅れを取ってないけど、NFLは良かったけど、国際的に自社のストリーミング権を売り始めたから、そこからまあまあなサービスがひどいサードパーティのものに変わっちゃった。

ステロイドや94年のストライキの時期に急激な減少があったと思ってたけど、データを見ると一番の落ち込みは60年代だったみたい。これは多分テレビの影響だね。ストライキは影響があったようだけど、ステロイド時代はあまり影響がなかったみたい。野球にはもっと全国的なスターが必要だと思う。大谷やジャッジみたいな選手だけど、93-94年のケン・グリフィー・ジュニアのレベルには達してないし、マホームズやマニングのレベルにも及ばないね。

ストリーミングが、俺が野球を見ない理由の一つだと思う。地元チームのDTCストリーミングパッケージは月20ドルなんだ。野球は、仕事の後に地元チームをつけっぱなしにして見るようなもので、20ドルの価値はないよ。若い世代の野球への興味にも大きな悪影響を与えてると思う。俺が子供の頃、父親が仕事から帰ってきて、OTAテレビで試合を見てたから野球に興味を持ったんだ。親がそのコストを払いたくないなら、どうやって子供たちをスポーツに興味を持たせるの?大きな波及効果だよ。地元の野球の試合をほとんど放送しているRSNは、ストリーミングに大きく賭けて大損したんだ。残った熱心なファンからは高額で搾取しようとしたけど、俺はすでにYoutubeTvに月82ドル払ってるから、そこにないなら見ないし、結果的に球場にも行かなくなって、地元チームのことも全然追わなくなった。

「あなたのウェブブラウザはロナルド・レーガンです。」 -- ニール・スティーヴンソン

この分野に興味がある人のために、他にもいくつかのMLB TUIプログラムがあるよ。mlbt: https://github.com/mlb-rs/mlbt gomlb(自己宣伝): https://github.com/AxBolduc/gomlb NBA用のNBA CLI(https://github.com/dylantientcheu/nbacli)も知ってるけど、最後にチェックしたときはNBA APIの変更で問題があったみたい。

関連: プレイボール: 自分の端末でMLBの試合を楽しもう - https://news.ycombinator.com/item?id=37591070 - 2023年9月 (1件のコメント) プレイボール: 自分の端末でMLBの試合を楽しもう - https://news.ycombinator.com/item?id=21653981 - 2019年11月 (42件のコメント)

一言で言うと: クリケット 5日間かけて試合をして、しばしば引き分けになることで有名なスポーツの多くの特徴の一つは、ボールが崩れるタイミングや性質がプレイの重要な要素であることだ。そして、フィールドポジションの名前が「シリー・ミッド・オン」や「サード・マン」、「カウ・コーナー」、「スクエア・レッグ」みたいに変わってることだ。クリケットは、スコアを記録するという深く奇妙な趣味と共生関係にあるんだよね。

これが、父親をコンピュータに引き込む方法かもしれないな。