1
1
# saya: Japanese DTV backend service with powerful features
2
2
3
- [ ![ Kotlin] ( https://img.shields.io/badge/Kotlin-1.4.21 -blue )] ( https://kotlinlang.org )
3
+ [ ![ Kotlin] ( https://img.shields.io/badge/Kotlin-1.4.30 -blue )] ( https://kotlinlang.org )
4
4
[ ![ GitHub release (latest by date)] ( https://img.shields.io/github/v/release/SlashNephy/saya )] ( https://github.com/SlashNephy/saya/releases )
5
5
[ ![ GitHub Workflow Status] ( https://img.shields.io/github/workflow/status/SlashNephy/saya/Docker )] ( https://hub.docker.com/r/slashnephy/saya )
6
- [ ![ Docker Image Size (latest by date )] ( https://img.shields.io/docker/image-size/slashnephy/saya )] ( https://hub.docker.com/r/slashnephy/saya )
6
+ [ ![ Docker Image Size (tag )] ( https://img.shields.io/docker/image-size/slashnephy/saya/latest )] ( https://hub.docker.com/r/slashnephy/saya )
7
7
[ ![ Docker Pulls] ( https://img.shields.io/docker/pulls/slashnephy/saya )] ( https://hub.docker.com/r/slashnephy/saya )
8
8
[ ![ license] ( https://img.shields.io/github/license/SlashNephy/saya )] ( https://github.com/SlashNephy/saya/blob/master/LICENSE )
9
9
[ ![ issues] ( https://img.shields.io/github/issues/SlashNephy/saya )] ( https://github.com/SlashNephy/saya/issues )
@@ -27,8 +27,16 @@ saya is still in heavy development.
27
27
次の機能を現在実装しています。
28
28
29
29
- ライブ再生 / 録画番組再生での実況コメントの配信
30
- - ライブ再生時には [ ニコニコ実況] ( https://jk.nicovideo.jp/ ) の公式放送およびコミュニティ放送 / Twitter ハッシュタグから取得します。
31
- - 録画番組再生時には [ ニコニコ実況 過去ログ API] ( https://jikkyo.tsukumijima.net/ ) / 5ch 過去ログから取得します。
30
+ - ライブ再生時には次のソースから取得します。
31
+ + [ ニコニコ実況] ( https://jk.nicovideo.jp/ ) の公式放送およびコミュニティ放送
32
+ + Twitter ハッシュタグ (Filter ストリーム or 検索 API)
33
+ + 5ch DAT
34
+
35
+ - 録画番組再生時には次のソースから取得します。
36
+ + [ ニコニコ実況 過去ログ API] ( https://jikkyo.tsukumijima.net/ )
37
+ + 5ch 過去ログ
38
+
39
+ - TS ファイルから EPG 情報を抽出
32
40
- and more, coming soon...
33
41
34
42
その他実装予定の機能などは [ Roadmap] ( https://github.com/SlashNephy/saya/projects/1 ) をご覧ください。
@@ -42,18 +50,22 @@ saya is still in heavy development.
42
50
- [ ci7lus/elaina] ( https://github.com/ci7lus/elaina )
43
51
- EPGStation を介した番組プレイヤーです。saya の API をフロントエンドで利用しています。
44
52
45
- # Docker
53
+ # Get Started
46
54
47
- 環境構築が容易なので Docker で導入することをおすすめします。
55
+ ## Docker
48
56
49
- 現在のベースイメージは ` alpine ` です。いくつかタグを用意しています 。
57
+ 環境構築が容易なので Docker で導入することをおすすめします 。
50
58
51
- - ` :latest `
59
+ - ` slashnephy/saya :latest`
52
60
master ブランチへのプッシュの際にビルドされます。安定しています。
53
- - ` :dev `
61
+ - ` slashnephy/saya :dev`
54
62
dev ブランチへのプッシュの際にビルドされます。開発版のため, 不安定である可能性があります。
55
- - ` :v<tag> `
63
+ - ` slashnephy/saya:<version> `
56
64
GitHub 上のリリースに対応します。
65
+ - ` slashnephy/saya:***-vaapi `
66
+ VAAPI によるハードウェアエンコーディングを有効化した ffmpeg を同梱しています。
67
+ - ` slashnephy/saya:***-nvenc `
68
+ NVEnc によるハードウェアエンコーディングを有効化した ffmpeg を同梱しています。
57
69
58
70
` docker-compose.yml `
59
71
@@ -65,6 +77,8 @@ services:
65
77
container_name : saya
66
78
image : slashnephy/saya:latest
67
79
restart : always
80
+ # nvenc イメージを使用する場合に必要
81
+ # runtime: nvidia
68
82
ports :
69
83
- 1017:1017/tcp # いれいな
70
84
# 環境変数で各種設定を行います
@@ -80,17 +94,46 @@ services:
80
94
# ログレベル ("INFO")
81
95
# 利用可能な値: ALL, TRACE, DEBUG, INFO, WARN, ERROR, OFF
82
96
SAYA_LOG : DEBUG
97
+ # 内部データ 更新間隔 [分] (15)
98
+ SAYA_UPDATE_INTERVAL_MINS : 15
83
99
# Mirakurun のホスト, ポート番号 ("mirakurun", 40772)
84
100
MIRAKURUN_HOST : mirakurun
85
101
MIRAKURUN_PORT : 40772
86
102
# Annict のアクセストークン (null)
87
103
# 以下, 未設定でも動作します
88
104
ANNICT_TOKEN : xxx
89
- # Twitter の資格情報 (null, ... )
105
+ # Twitter の資格情報 (null, null, null, null )
90
106
TWITTER_CK : xxx
91
107
TWITTER_CS : xxx
92
108
TWITTER_AT : xxx
93
109
TWITTER_ATS : xxx
110
+ # Twitter からツイートを取得する際にストリーミング API を使用するか (false)
111
+ # 接続に失敗した場合には通常の検索 API にフォールバックします。
112
+ # 試験的な機能のため, 一部の環境で動作しない可能性があります。
113
+ TWITTER_PREFER_STREAMING_API : ' true'
114
+ # 5ch API への接続情報 (null, null, null, null, null)
115
+ GOCHAN_HM_KEY : xxx
116
+ GOCHAN_APP_KEY : xxx
117
+ GOCHAN_AUTH_UA : xxx
118
+ GOCHAN_AUTH_X_2CH_UA : xxx
119
+ GOCHAN_UA : xxx
120
+ # モリタポアカウントの資格情報 (null, null)
121
+ MORITAPO_EMAIL : xxx
122
+ MORITAPO_PASSWORD : xxx
123
+ # /files エンドポイントで TS ファイルを検索するパス (null)
124
+ # 別途 volume マウントが必要です
125
+ MOUNT_POINT : /mnt
126
+ # mirakc-arib へのパス ("/usr/local/bin/mirakc-arib")
127
+ # Docker イメージを使用している場合は指定不要です
128
+ MIRAKC_ARIB_PATH : /path/to/mirakc-arib
129
+ # ffmpeg へのパス ("/usr/local/bin/ffmpeg")
130
+ # Docker イメージを使用している場合は指定不要です
131
+ FFMPEG_PATH : /path/to/ffmpeg
132
+ volumes :
133
+ # 録画 TS ファイルの置き場所
134
+ - /mnt:/mnt:ro
135
+ # definitions.yml を書き換えて使用したい場合
136
+ # - ./definitions.yml:/app/docs/definitions.yml:ro
94
137
95
138
elaina :
96
139
container_name : elaina
@@ -121,16 +164,42 @@ docker-compose down
121
164
122
165
up すると ` http://localhost:1017/ ` に saya が, ` http://localhost:1234/ ` に elaina が起動しているはずです。
123
166
167
+ ## 直接実行
168
+
169
+ リリースから Jar を取ってきて実行するか, ` ./gradlew run ` で実行できます。
170
+
171
+ 設定値の変更は現在, 環境変数経由でしか行なえません。ご了承ください。
172
+
173
+ ``` console
174
+ SAYA_LOG=DEBUG java -jar /path/to/saya.jar
175
+ ```
176
+
124
177
# Endpoints
125
178
126
- TODO...
179
+ saya が提供する API は [ endpoints.md] ( https://github.com/SlashNephy/saya/blob/master/docs/endpoints.md ) に一覧があります。
180
+
181
+ # Contribution
182
+
183
+ 開発には IntelliJ IDEA をおすすめします。
184
+
185
+ 不安定なプロジェクトにつき, 互換性のない変更や方針変更が発生する可能性があります。ご了承ください。
186
+
187
+ ``` console
188
+ # ビルド
189
+ ./gradlew build
190
+
191
+ # 実行
192
+ ./gradlew run
193
+ ```
127
194
128
195
# Acknowledgments
129
196
130
197
saya および [ ci7lus/elaina] ( https://github.com/ci7lus/elaina ) は次のプロジェクトを利用 / 参考にして実装しています。
131
198
132
199
- [ tsukumijima/TVRemotePlus] ( https://github.com/tsukumijima/TVRemotePlus )
133
200
- [ tsukumijima/jikkyo-api] ( https://github.com/tsukumijima/jikkyo-api )
201
+ - [ asannou/namami] ( https://github.com/asannou/namami )
202
+ - [ silane/TVTComment] ( https://github.com/silane/TVTComment )
134
203
135
204
DTV 実況コミュニティの皆さまに感謝します。
136
205
0 commit comments