1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

天鳳の牌譜 (mjlog) をダウンロードするプログラム一覧

1
Last updated at Posted at 2025-09-14

概要

オンライン麻雀ゲーム 天鳳 (https://tenhou.net/) では一部の対局の牌譜をダウンロードできます。牌譜には対局の完全な履歴が記録されており、統計解析・機械学習・自作プログラムの検証などに広く利用されています。

しかし、牌譜ダウンロード用のプログラムは複数存在するものの散在しており、結果として車輪の再発明が繰り返されています。

本記事の目的は既存の公開プロジェクトを一覧化し、重複開発を減らすことです。

※注意事項

  • 本記事で紹介するプログラムはすべて有志による公開物であり、利用は自己責任です
  • 天鳳のログ・牌譜の利用規約を必ず事前に確認してください。特に以下は禁止されています:
    • 天鳳と競合する製品への開発・応用を目的とした牌譜の利用
    • 天鳳での対戦を必要としないサービスへの応用
    • 不特定多数が天鳳の牌譜をダウンロードするサービスの作成
  • 天鳳のサーバーやネットワークに過度な負荷をかけないよう、ダウンロード速度やアクセス頻度には十分に注意してください。短時間に大量のリクエストを送るとアクセス制限を受ける可能性があります
  • 天鳳公式 X アカウントより牌譜のダウンロードは同時に 1 セッションまでと明言されています。複数セッションでの同時ダウンロードは禁止です

掲載基準

  • 牌譜ファイル (拡張子 .mjlog、 中身は gzip 圧縮された XML) のダウンロード機能があるもの
  • ログファイル (牌譜再生用の URL 一覧をまとめたファイル) のダウンロード機能は不問

プログラム一覧

MahjongRepository/phoenix-logs

特徴

  • 今年分の対局 ID 取得が可能 (1/1 ~ 7 日前と直近 7 日分の両方に対応)
  • 役満和了が発生した牌譜 (四人麻雀のみ) の対局 ID 取得が可能
  • 別途ダウンロードした年次ログファイルからの対局 ID 取得が可能
  • SQLite DB に対局 ID・牌譜を保存 (DB からの牌譜エクスポート機能なし)
  • デフォルトでは牌譜ダウンロード時のセッション数が 3 になっているため、オプション引数で 1 に変更すること

mthrok/tenhou-log-utils

特徴

  • 1 ファイルずつ対局 ID を指定する

trineutron/mahjong

特徴

  • 別途ダウンロードした年次ログファイルからの対局 ID 取得が可能
  • ダウンロード対象に合わせて src/download.sh の編集が必要

Apricot-S/houou-logs

特徴

  • 今年分の対局 ID 取得が可能 (1/1 ~ 7 日前と直近 7 日分の両方に対応)
  • 役満和了が発生した牌譜 (四人麻雀のみ) の対局 ID 取得が可能
  • 別途ダウンロードした年次ログファイルからの対局 ID 取得が可能
  • SQLite DB に対局 ID・牌譜を保存 (DB からの牌譜エクスポート機能あり)
  • 「ログの自動ダウンロードについて」のルールに準拠するための機能あり
    • 最後の最新対局 ID 取得から 20 分以内は取得処理をキャンセルする
    • FileIndex の size をチェックし前回の取得時と同じなら取得をスキップする

参考

牌譜ダウンロード方法の解説

牌譜仕様の解説

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?