Konomi: Kind and Optimized Next brOadcast watching systeM Infrastructure

Overview

Konomi


備考・注意事項

  • 現在 α 版で、まだ実験的なプロダクトです。通常利用には耐えないでしょうし、サポートもできません。
    • 安定しているとは到底言いがたい品質ですが、それでも構わない方のみ導入してください。
    • 使い方などの説明も用意できていないため、自力でトラブルに対処できるエンジニアの方以外には現状おすすめできません。
    • 今後インストーラーを開発予定ですが、後述の通り現時点ではインストール方法がかなり煩雑になっています。
      • そもそも私の環境でしか動作確認をしていないため、他の環境で動作するのかさえも微妙です。
    • 完成予想はおろか、TVRemotePlus で実装していた機能に関してもほとんどカバーできていないため、現時点で TVRemotePlus を代替できるレベルには達していません。
  • 機能的には TVRemotePlus の後継という位置づけですが、それはあくまで「精神的な」ものであり、実際の技術スタックや UI/UX は完全に新規設計となっています。
    • 確かに TVRemotePlus の開発で得られた知見を数多く活用していますし開発者も同じではありますが、ユーザービリティや操作感は大きく異なるはずです。
    • TVRemotePlus の技術スタックでは解決不可能なボトルネックを根本的に解消した上で、「同じものを作り直す」のではなく、ゼロから新しいテレビ視聴・録画視聴のユーザー体験を作り上げ、追求したいという想いから開発しています。
    • どちらかというと録画視聴機能の方がメインの予定でいますが、現時点ではテレビのライブ視聴機能のみの実装です。構想は壮大ですが、全て実装し終えるには年単位で時間がかかるでしょう。
  • 将来的に EDCB (xtne6f版) にも対応予定ですが、現時点ではバックエンドとして Mirakurun が必要です。
    • お使いの録画環境に合わせ、番組情報などを取得するバックエンドを EDCB と Mirakurun のいずれかで選択できるようにする予定でいます。
  • 現時点ではスマホには対応していません。Android であれば再生させる事自体は可能ですが、画面幅が PC 向けのため大幅に崩れ、まともに使えないでしょう。
    • タブレット (Fire HD 10 (2021), iPad mini 4) である程度動作することは確認しました。とはいえ、まだタッチデバイスに最適化できているわけではありません。
    • iPhone は Media Source Extensions API に対応していないため、現時点では動作しません。
      • 今後 HLS 再生モードを導入する予定ですが、私が iPhone を常用していない事もあり、実装時期は未定です。
  • 今後、開発の過程で設定や構成が互換性なく大幅に変更される可能性があります。
  • ユーザービリティなどのフィードバック・不具合報告・Pull Requests (PR) などは歓迎します。
    • 技術スタックはサーバー側が Python + FastAPI + Tortoise ORM + Uvicorn 、クライアント側が Vue.js + Vuetify の SPA です。
      • Vuetify は補助的に利用しているだけで、大部分は独自で書いた SCSS スタイルを適用しています。
    • コメントを多めに書いているので、少なくとも TVRemotePlus なんかよりかは読みやすいコードになっている…はず。
    • 他人が見るために書いたものではないのであれですが、一応自分用の開発資料DB設計的なメモを公開しておきます。もし PR される場合などの参考になれば。

動作環境

Python 3.9 がインストールされた Windows 10 Home で開発と動作確認を行っています。
Python 3.8 でも動作するようですが、asyncio を多用しているため、3.7 以前ではまともに動かない可能性が高いです。

Linux (Ubuntu 20.04 LTS x64) で動作することも確認しました。
ただし Windows ほどあまり検証できていないので、環境によっては動かないかもしれません。
また、ARM 用のサードパーティライブラリの実行ファイルを同梱していないため、ARM 版の Ubuntu では動かないでしょう。

以下は暫定的なインストール方法です。
ただし、すべての環境でこの通りに進めて動くとは限りません。保証もできないので、すべて自己責任のもとでお願いします。

インストール方法(暫定)

事前に Python 3.9 がインストールされている事を前提とします。
なお、Microsoft ストアからインストールした Python では確実にまともに動作しません。

Windows の場合、インストール先をデフォルトの AppData 以下にするとそのユーザーしか使えなくなってしまいますが、とはいえ C:\Program Files 以下にインストールするとパッケージのインストールで管理者権限が必要になるので厄介です。個人的には C:\Applications\Python\Python3.9 あたりにインストールすることを推奨しておきます。

以下の手順では Windows では C:\Develop 、Linux では /Develop フォルダが作成されているものとして、C:\Develop または /Develop フォルダ以下にインストールするようになっています。
もし他のフォルダにインストールしたい場合は適宜読み替えてください。

以下はほとんどコマンドメモです。詳細な解説はありませんし、開発者向けです。
Windows では PowerShell にて実行してください。cmd.exe? 今すぐ窓から投げ捨てろ

Docker で構築する

あまり動作確認は取れていませんが、Docker で構築することもできます。あらかじめ、Docker と docker-compose がインストールされた環境が必要です。

QSVEncC・NVEncC は Docker 上でも利用できます。ただし、ホスト OS が Linux である必要があるほか、あらかじめホスト OS にGPU ドライバがインストールされている必要があります。
VCEEncC は手元に環境がないうえに Docker 上で動作したという情報を見つけられなかったため、今のところ非対応です。誰かが対応させてプルリクしてくれるのを期待しておきます…

事前に、後述の設定ファイルの編集を行ってください。最低でも config.yaml が存在する状態にしておく必要があります。
あとは他のソフトウェアと同様に、docker-compose up を実行するだけです。

1. pipenv のインストール

pipenv は pip の環境を仮想化してくれるツールです。
pipenv を使えばパッケージをプロジェクトローカルにインストールできるので、依存関係の衝突などを気にする必要がありません。

pip install pipenv

2. Konomi 本体のインストール

現時点では Git で常に最新の master ブランチを取得することを推奨します。
正式版になるまでは比較的頻繁に更新する予定です。不具合修正も含まれるため、定期的に git pull で最新化しておくことをおすすめします。

Windows

cd C:\Develop
git clone [email protected]:tsukumijima/Konomi.git
cd C:\Develop\Konomi\server

Linux

cd /Develop
git clone [email protected]:tsukumijima/Konomi.git
cd /Develop/Konomi/server

3. サードパーティライブラリのインストール

TVRemotePlus では Git の管理下に含めていましたが、Konomi ではバージョン情報のみを管理する方針としています。
将来的にはインストーラー側で自動ダウンロード/アップデートするようにしたいところですが、現時点では手動でのダウンロードと配置が必要です。

Linux 向けの実行ファイルも同梱しています(拡張子: .elf )。Linux (Ubuntu 20.04 LTS x64) で動作することを確認しました。
なお、QSVEncC・NVEncC・VCEEncC を使う場合は、別途 ffmpeg (libav) ライブラリと Intel Media Driver / NVIDIA Graphics Driver / AMD Driver のインストールが必要です。
VCEEncC の Linux サポートはつい最近追加されたばかりなので、安定してエンコードできるかは微妙です(環境がない…)。

こちら からサードパーティライブラリをダウンロードし、server/thirdparty に配置してください。展開後サイズは 600MB あるので注意。

7z 、あるいは p7zip のコマンドライン版が利用できる場合は、コマンドラインでダウンロードと展開を行うこともできます。

curl -LO https://github.com/tsukumijima/Konomi/releases/download/v0.1.0/thirdparty.7z
7z x -y thirdparty.7z

Windows では、C:\Develop\Konomi\server\thirdparty\FFmpegffmpeg.exe がある状態になっていれば OK です。

Linux では、/Develop/Konomi/server/thirdparty/FFmpegffmpeg.elf がある状態でかつ、実行ファイルが実行権限を持っている必要があります。
以下のコマンドを実行して、実行権限を付与してください。

chmod 755 ./thirdparty/arib-subtitle-timedmetadater/arib-subtitle-timedmetadater.elf
chmod 755 ./thirdparty/FFmpeg/ffmpeg.elf
chmod 755 ./thirdparty/FFmpeg/ffprobe.elf
chmod 755 ./thirdparty/QSVEncC/QSVEncC.elf
chmod 755 ./thirdparty/NVEncC/NVEncC.elf
chmod 755 ./thirdparty/VCEEncC/VCEEncC.elf

このほか、Linux では FFmpeg の実行に libv4l-dev パッケージが必要です(インストールされていないと FFmpeg が実行できないみたいです)。
お使いの環境にインストールされていない場合は、あわせてインストールしてください。

sudo apt install -y libv4l-dev

4. 依存パッケージのインストール

Windows

# pipenv のパッケージを直下に保存する環境変数を定義
# これをつけないと ~/.virtualenvs/ に置かれてしまい面倒
$env:PIPENV_VENV_IN_PROJECT = "true"
pipenv sync

Linux

# pipenv のパッケージを直下に保存する環境変数を定義
# これをつけないと ~/.local/share/virtualenvs/ に置かれてしまい面倒
export PIPENV_VENV_IN_PROJECT="true"
pipenv sync

5. データベースのアップグレード

Aerich という Tortoise ORM のマイグレーションツールを使っています。
データベース構造が変更される度に、以下のコマンドを実行してデータベース構造を更新する必要があります。

pipenv run aerich upgrade

よくわからないエラーが出てうまくアップグレードできないときは、一旦データベースを削除してからもう一度実行するとうまくいくことがあります。
今のところデータベースには再生成できるデータ(チャンネル情報・番組情報)しか保存されていないので、削除することによる影響はありません。

rm ./data/database.sqlite
pipenv run aerich upgrade

6. 設定ファイルの編集

ここまで手順通りにやっていれば Readme.md のあるフォルダに config.example.yaml があるはずなので、同じ階層に config.yaml としてコピーします。
設定ファイルは YAML ですが、JSON のようなスタイルで書いています。括弧がないとわかりにくいと思うので…

JSON は YAML のサブセットなので、実は JSON は YAML として解釈可能です。

Mirakurun の URL だけ皆さんの録画環境に合わせて編集してください。
他にも設定項目がありますが、おそらく変更する必要はありません。設定を反映するにはサーバーの再起動が必要です。

このほか、エンコーダーはソフトウェアエンコーダーの FFmpeg のほか、ハードウェアエンコーダーの QSVEncC・NVEncC・VCEEncC を選択できます。
ハードウェアエンコーダーを選択すると、エンコードに GPU アクセラレーションを利用するため CPU の使用率を大幅に下げる事ができます。
エンコード速度も高速になるため、お使いの PC で利用可能であれば、できるだけハードウェアエンコーダーを選択することをおすすめします。

お使いの PC で選択したハードウェアエンコーダーが利用できない場合、その旨を伝えるエラーメッセージが表示されます。
まずはお使いの PC でハードウェアエンコーダーが使えるかどうか、一度試してみてください(設定ファイルの変更後はサーバーの再起動が必要です)。

前述のとおり、Linux 環境で QSVEncC・NVEncC・VCEEncC を利用する場合は、別途 GPU ドライバのインストールが必要です。

QSVEncC は Intel 製 CPU の内蔵グラフィックスに搭載されているハードウェアエンコード機能 (QSV) を利用するエンコーダーです。
ここ数年に発売された内蔵グラフィックス搭載の Intel 製 CPU であれば基本的に搭載されているため、一般的な PC の大半で利用できます。

NVEncC は Geforce などの NVIDIA 製 GPU に搭載されているハードウェアエンコード機能 (NVENC) を利用するエンコーダーです。
高速で画質も QSV より若干いいのですが、Geforce では同時にエンコードが可能なセッション数が 3 に限定されているため、同時に 3 チャンネル以上視聴することはできません。
同時に 4 チャンネル以上視聴しようとした場合、Konomi では「NVENC のエンコードセッションが不足しているため、ライブストリームを開始できません。」というエラーメッセージが表示されます。

VCEEncC は Radeon などの AMD 製 GPU に搭載されているハードウェアエンコード機能 (AMD VCE) を利用するエンコーダーです。
QSVEncC・NVEncC に比べると安定せず、利用者も少ないため安定稼働するかは微妙です。QSVEncC・NVEncC が使えるならそちらを選択することをおすすめします。

なお、config.yaml が存在しなかったり、設定項目が誤っていると後述のサーバーの起動の時点でエラーが発生します。
その際はエラーメッセージに従い、config.yaml の内容を確認してみてください。

7. サーバーの起動

FastAPI をホストする ASGI サーバーである Uvicorn を起動します。ポート 7000 にてリッスンされます。
あらかじめ、ファイアウォールの設定でポート 7000 が開いているかどうか確認してください。

pipenv run serve

開発時などでリロードモード(コードを変更すると自動でサーバーが再起動される)で起動したいときは、pipenv run develop を実行してください。

Uvicorn はアプリケーションサーバーであり、Konomi の場合は静的ファイルの配信も兼ねています。
静的ファイル( SPA クライアント)は client/dist にある、ビルド済みのファイルを配信するように設定されています。
そのため、npm run build でクライアントのビルドを更新したのなら、サーバー側で配信されるファイルも更新されることになります。

クライアントは Vue.js で構築されており、コーディングとビルドには少なくとも Node.js が必要です。
クライアント側のデバッグは client フォルダにて npm run serve を実行し、ポート 7001 にてリッスンされるデバッグ用サーバーにて行っています。
npm run serve ではコードを変更すると自動的に差分の再ビルドがかかるため、毎回時間のかかる npm run build をする必要がありません。
とはいえ API(サーバー)はポート 7000 にてリッスンされているので、開発時のみ API のアクセス先を同じホストのポート 7000 に固定しています。

起動してみて、何もエラーなく Application startup complete. と表示されていれば完了です。
http://localhost:7000/ にアクセスすると、Konomi のホーム画面が表示されることでしょう。

初回起動時は Mirakurun から7日間分の番組情報をすべて取得してデータベースに保存するため、起動に1分くらいかかります。
次回以降は差分のみをデータベースに保存・削除するので、最高でも10秒もすれば起動すると思います。
番組情報の更新は今のところ15分に一度、バックグラウンドで自動的に行われます。ログにも出力されているはずです。

API ドキュメント (Swagger) は http://localhost:7000/api/docs にあります。
リンクはいろいろありますが、ほとんどがまだ未着手のため 404 になっています。テレビのライブ視聴機能だけで見ても、まだ実装できていない箇所が多いです。
とはいえ最低限視聴できる状態にはなっているはずです。まずは使ってみて、もしよければ感想をお聞かせください。

License

MIT License

Comments
  • Update: [Dockerfile] 細かな調整

    Update: [Dockerfile] 細かな調整

    変更の種類

    • [x] 改善・リファクタリング(機能は追加されないが、動作やコードを改善する破壊的でない変更)

    チェックリスト:

    • [x] 開発資料データベース設計 は読みましたか?
      • もともと自分用のメモですが、このプロジェクトの開発方針や設計などが記載されています。開発時の参考にしてください。
    • [x] Git のコミットメッセージは開発資料に記載のフォーマットになっていますか?(重要)
      • このプロジェクト上のコミットメッセージは、基本的に全てこのフォーマットに従って記述されています(文字数は問いません)。
      • 正しいフォーマットになっていない場合、force push で必ずコミットメッセージを変更してから送信してください。
    • [x] このプロジェクトのコーディング規約に従ったコードになっていますか?
      • コーディング規約は開発資料に記載されています。
      • そもそもコーディング規約と言えるほど大層なものではありませんが、一度目を通しておいてください。
    • [x] プルリクエストは master ブランチに送信されていますか?
      • release ブランチはリリースした時にしか更新されません。必ず master ブランチに送信してください。

    説明

    パスの記述が重複してましたので相対化しました。(WORKDIRを実行した時点でディレクトリが存在しなければ生成されるので先にWORKDIRを実行したほうがよいかと思われます) dockerイメージ単体で利用した際アプリケーションのバージョンとあったconfigファイルがコンテナ側から取得できると便利なためコンフィグファイルをコンテナに追加しました。

    動機とコンテキスト

    opened by 5ym 8
  • Update: [Docker] Docker関連のいくつかの修正

    Update: [Docker] Docker関連のいくつかの修正

    変更の種類

    • [x] 新しい機能の追加
    • [x] 改善・リファクタリング(機能は追加されないが、動作やコードを改善する破壊的でない変更)

    チェックリスト:

    • [x] 開発資料データベース設計 は読みましたか?
      • もともと自分用のメモですが、このプロジェクトの開発方針や設計などが記載されています。開発時の参考にしてください。
    • [x] Git のコミットメッセージは開発資料に記載のフォーマットになっていますか?(重要)
      • このプロジェクト上のコミットメッセージは、基本的に全てこのフォーマットに従って記述されています(文字数は問いません)。
      • 正しいフォーマットになっていない場合、force push で必ずコミットメッセージを変更してから送信してください。
    • [x] このプロジェクトのコーディング規約に従ったコードになっていますか?
      • コーディング規約は開発資料に記載されています。
      • そもそもコーディング規約と言えるほど大層なものではありませんが、一度目を通しておいてください。
    • [x] プルリクエストは master ブランチに送信されていますか?
      • release ブランチはリリースした時にしか更新されません。必ず master ブランチに送信してください。

    説明

    簡単な内容しか記載できていませんが、とりあえずDockerイメージをGitHub packagesに登録するymlを作成しました。 お役に立てば幸いです。

    動機とコンテキスト

    将来的に下記の様に中級者がより簡易になおかつ早く環境構築できるようなプロジェクトを別途作成したいです。(個人的な要望です。本家に取り込んでもらいたいという意図ではありません。) https://github.com/l3tnun/docker-mirakurun-epgstation

    opened by 5ym 8
  • Fix: [Dockerfile] ビルド時にキャッシュが効くよう構成変更

    Fix: [Dockerfile] ビルド時にキャッシュが効くよう構成変更

    変更の種類

    • [ ] 不具合の修正
    • [ ] 新しい機能の追加
    • [x] 改善・リファクタリング(機能は追加されないが、動作やコードを改善する破壊的でない変更)

    チェックリスト:

    • [x] 開発資料データベース設計 は読みましたか?
      • もともと自分用のメモですが、このプロジェクトの開発方針や設計などが記載されています。開発時の参考にしてください。
    • [x] Git のコミットメッセージは開発資料に記載のフォーマットになっていますか?(重要)
      • このプロジェクト上のコミットメッセージは、基本的に全てこのフォーマットに従って記述されています(文字数は問いません)。
      • 正しいフォーマットになっていない場合、force push で必ずコミットメッセージを変更してから送信してください。
    • [ ] このプロジェクトのコーディング規約に従ったコードになっていますか?
      • コーディング規約は開発資料に記載されています。
      • そもそもコーディング規約と言えるほど大層なものではありませんが、一度目を通しておいてください。
    • [x] プルリクエストは master ブランチに送信されていますか?
      • release ブランチはリリースした時にしか更新されません。必ず master ブランチに送信してください。

    ※コーディング規約にDockerfileについて記載がないためチェックをつけていません。.editorconfigは守れてるはずです。

    説明

    ちょっとDockerfileの書き方解説のような部分もあるので長くなります。変更点は大きく以下の3点です。

    1. マルチステージビルドの導入
    2. 構成順序の変更
    3. クライアントのビルドを追加

    元の Dockerfile では ADD ./ /code が最初の方にあるため、ソースコード全体のどこかが変更されただけでそれ以降のレイヤーキャッシュが無効になっていました。また、ダウンロード&展開のためにaria2やxzなどサーバの実行に必要のないツールがインストールされていました。Docker イメージはADD とか RUN のコマンドごとにレイヤーが構成されるため、あとで削除しても全体のイメージサイズは削減できません。 そこで、1. のマルチステージビルドを導入し、ダウンロード&展開は別ステージのイメージで行い、成果物だけを最終的な実行イメージにコピーする形にしました。3. で追加したクライアントのビルドも、node.jsなどを別ステージのイメージでインストール(というかベースイメージから取ってきてますけど)しているので、最終的な実行イメージには.htmlや.jsなどの必要なもの以外含まれません。ちなみに、マルチステージビルドになっていると、buildx をインストールすることで並列ビルドをすることもできます(各ステージを並列にビルドしていく)。

    また、2. の構成順序の変更というのは、docker build するとき、Dockerfile の上から順に見ていって、以前ビルドしたことがあるコマンドだけの場合(COPY/ADDの場合はコピーされるファイルに変更がない場合)、以前ビルドした際のレイヤーを使いまわします(レイヤーキャッシュ)。基本的には変更されにくいものを上に、変更されやすいものを下に書いていくと良いです。 例えば、ダウンロードではAMDのライブラリはそれほど更新されないですが、サードパーティライブラリはリリースごとには更新されます。なので、AMDのライブラリが先に処理するように変更しました。 また、yarn コマンドによる node_modules の作成や pipenv sync などでインストールされる依存ライブラリが変更になることはアプリケーションの更新に比べて頻度が低いはずです。そこで、依存パッケージ管理に使われるファイル(Pipfile, Pipfile.lock, package.json, yarn.lock)だけをCOPYし、依存パッケージのインストールを行い、その後あらためてアプリケーション全体のコピーを行っています。

    動機とコンテキスト

    既存の Dockerfile ではビルド時のレイヤーキャッシュが効かないような書き方になっており、コードの変更がある度に docker build で各種ダウンロードなどが走って非効率的であったため、改善した。 また、client ディレクトリ以下が事前に yarn build してあることが前提になっており、更新忘れが発生する可能性があったので、docker 内でクライアントもビルドするようにした。

    opened by kounoike 6
  • Client sent an HTTP request to an HTTPS server.

    Client sent an HTTP request to an HTTPS server.

    環境

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 11 (bullseye)
    Release:	11
    Codename:	bullseye
    
    $ uname -a
    Linux docker-test 5.10.0-19-amd64 #1 SMP Debian 5.10.149-1 (2022-10-17) x86_64 GNU/Linux
    
    $ ls /dev/dri/
    by-path  card0  renderD128
    
    $ docker -v
    Docker version 20.10.5+dfsg1, build 55c4c88
    
    $ docker-compose -v
    docker-compose version 1.29.2, build unknown
    

    問題

    docker-compose up -d
    

    すれば、ビルドされ、立ち上がるはずですが、 LAN内の他のマシンからtcp7000ポートにhttpでアクセスすると、KonomiTVが開くはずが、開きません。 試しに、curlでlocalhost:7000でこのサーバ自身にアクセスさせましたが、やはり以下の通り変わらず…

    $ curl localhost:7000
    Client sent an HTTP request to an HTTPS server.
    

    修正した設定箇所を提供します。

    $ diff config.yaml config.example.yaml
    8c8
    <         'backend': 'Mirakurun',
    ---
    >         'backend': 'EDCB',
    17c17
    <         'mirakurun_url': 'http://192.168.0.107:40772/',
    ---
    >         'mirakurun_url': 'http://localhost:40772/',
    80,81c80
    <         #'upload_folder': 'E:\TV-Capture',
    <         'upload_folder': '/',
    ---
    >         'upload_folder': 'E:\TV-Capture',
    95c94
    < }
    ---
    > }
    
    $ diff docker-compose.yaml docker-compose.example.yaml
    28c28
    <         source: './rootfs/'
    ---
    >         source: '/'
    
    opened by Miutaku 5
  • docker-composeでの導入について

    docker-composeでの導入について

    はじめまして、このたびコチラのアプリを使わせてもらおうとdockerで導入を試みましたが 起動するもののWebUIが見えないのでフォローいただけないでしょうか。 そのままでは明らかに動かなかったので以下の点を書き換え(読み替え)ました。

    環境

    OS: Ubuntu20.04 server Mirakurun: 3.9.0-rc.2(Standby)

    読み替え、書き換え箇所

    1. docker-compose では バージョン古いと怒られて通らなかったので docker compose でビルド
    2. config.yaml : backend を Mirakurun ( 合わせてmirakurun_urlも書き換えました
    3. config.yaml : encoder を FFmpeg に ( サーバ機にHWエンコーダがないため
    4. docker-compose.yamldevice セクションをコメントアウト (上記同様

    この状態で ⠿ Container KonomiTV Started まで通りますが、HTTPにアクセスすると Client sent an HTTP request to an HTTPS server. と怒られ、 HTTPSアクセスするとchrome がERR_SSL_UNRECOGNIZED_NAME_ALERT を吐きます。

    エラー見る限り、SSL周りのなにかが問題なのかなと推測はするのですが、pythonがエラーを吐いているのも気になります。

    docker logsの結果を貼っておきます。

    # docker logs KonomiTV
    Success upgrade 0_20210731012247_init.sql
    Success upgrade 1_20210810032104_update.sql
    Success upgrade 2_20210822031531_update.sql
    Success upgrade 3_20210829063149_update.sql
    Success upgrade 4_20210903095040_update.sql
    Success upgrade 5_20210917083320_update.sql
    Success upgrade 6_20220129130828_update.sql
    Success upgrade 7_20220426131443_update.sql
    Success upgrade 8_20220427154401_update.sql
    Success upgrade 9_20220810033000_update.sql
    [2022/10/01 02:16:38] INFO:     Started server process [1]
    [2022/10/01 02:16:38] INFO:     Waiting for application startup.
    [2022/10/01 02:16:38] INFO:     Channels updating...
    [2022/10/01 02:16:38] INFO:     Channels update complete. (0.255 sec)
    [2022/10/01 02:16:38] INFO:     Programs updating...
    [2022/10/01 02:16:40] ERROR:    Traceback (most recent call last):
      File "/code/server/app/models/Program.py", line 399, in updateFromMirakurun
        'middle': ariblib.constants.CONTENT_TYPE[genre['lv1']][1][genre['lv2']].replace('/', '・'),
    KeyError: 0
    
    [2022/10/01 02:16:40] INFO:     Programs update complete. (1.069 sec)
    [2022/10/01 02:16:40] INFO:     Application startup complete.
    [2022/10/01 02:16:40] INFO:     Uvicorn running on http://127.0.0.77:7010 (Press CTRL+C to quit)
    [2022/10/01 02:31:40] INFO:     Channels updating...
    [2022/10/01 02:31:40] INFO:     Channels update complete. (0.281 sec)
    [2022/10/01 02:31:40] INFO:     Programs updating...
    [2022/10/01 02:31:41] ERROR:    Traceback (most recent call last):
      File "/code/server/app/models/Program.py", line 399, in updateFromMirakurun
        'middle': ariblib.constants.CONTENT_TYPE[genre['lv1']][1][genre['lv2']].replace('/', '・'),
    KeyError: 0
    
    [2022/10/01 02:31:41] INFO:     Programs update complete. (1.382 sec)
    

    Mirakurunまわりでエラーが出ているようにも見えたのでコンテナからMirakurunAPIを叩いてみたところ channelsなどは正常にとれているようです。

    opened by hiroki-tagami 3
  • このリポジトリの説明文の英語は分かりづらいと思います

    このリポジトリの説明文の英語は分かりづらいと思います

    KonomiTV: Kind and Optimized Next On-broadcasting watching and Management Infrastructure for TV
    

    これでは何をするためのプログラムか分からないと思います。あとKind and Optimizedって何でしょう・・・?英語として自然ではないと思います。 サーバーに使えるPCがなく、まだ試していませんが、これはnasneのPC TVのような、日本のテレビを視聴するためのアプリですよね?

    ベストな表現かどうかは分かりませんが、このような文でどうでしょう? 以下をくっつけて一つの文にしました。

    • セルフホスト
    • ストリーミングサーバー
    • 日本のテレビの視聴
    • どこでも使える
    KonomiTV: Self-hosted streaming server for watching Japanese TV anywhere.
    

    あるいは無理に英語にしなくても日本に住んでる方向けのアプリなので日本語で良いのではないでしょうか。 READMEも現状日本語だけですし。

    opened by vroad 3
  • NVEncCでのエンコードが開始されない

    NVEncCでのエンコードが開始されない

    概要

    NVencCのエンコードが開始されない /code/server/thirdparty/NVEncC/NVEncC.elf: error while loading shared libraries: libcuda.so.1: cannot open shared object file: No such file or directory

    環境

    • OS Docker

    • branch master(Commit Hash:65eb5e9baea89629cf36270a63c7b6ad871c2cc2)

    備考

    .github/workflowを確認すると、Linux環境のThirdPartyがUbuntu 20.04のものを使用しているようです。 Dockerfileのbase imageはUbuntu 22.04ですので、ここが原因と思われます。

    opened by waigo001 3
  • Docker イメージの軽量化

    Docker イメージの軽量化

    変更の種類

    • [ ] 不具合の修正
    • [ ] 新しい機能の追加
    • [x] 改善・リファクタリング(機能は追加されないが、動作やコードを改善する破壊的でない変更)

    チェックリスト:

    • [x] 開発資料データベース設計 は読みましたか?
      • もともと自分用のメモですが、このプロジェクトの開発方針や設計などが記載されています。開発時の参考にしてください。
    • [x] Git のコミットメッセージは開発資料に記載のフォーマットになっていますか?(重要)
      • このプロジェクト上のコミットメッセージは、基本的に全てこのフォーマットに従って記述されています(文字数は問いません)。
      • 正しいフォーマットになっていない場合、force push で必ずコミットメッセージを変更してから送信してください。
    • [x] このプロジェクトのコーディング規約に従ったコードになっていますか?
      • コーディング規約は開発資料に記載されています。
      • そもそもコーディング規約と言えるほど大層なものではありませんが、一度目を通しておいてください。
    • [x] プルリクエストは master ブランチに送信されていますか?
      • release ブランチはリリースした時にしか更新されません。必ず master ブランチに送信してください。

    説明

    Dockerfile にて、以下の変更が行われています。

    • Docker イメージのビルド時にしか使用しないパッケージを最後に削除するようにしました。
    • Docker イメージ内に locale をインストールするのは一般的ではなく、また、コンテナ内での作業をすることは稀であるため、ja_JP ロケールのインストールをしないようにしました。

    動機とコンテキスト

    • Docker イメージのビルド時間、および Docker Hub 等への push 時の時間を短縮するため。
    • Docker イメージの大きさを節減するため。
    opened by yude 3
  • CS等の複数映像サービスがある場合、サービス1しか映像が映らない

    CS等の複数映像サービスがある場合、サービス1しか映像が映らない

    開発ありがとうございます。一つ改修のお願いがあります。 CS等で一つのチャンネルで複数のサービスがある場合、”サービス1”しか映像が表示できません。 例: TSID 0x7100 (28928) NID 0x0007 (7) スカパー! CS2 サービス1 (SKY STAGE) : SID 0x0122 (290) / Type 0x01 PMT : PID 0x040e (1038) 映像1 : PID 0x100e (4110) / stream type 0x02 (MPEG-2 Video) / component tag 0x00 音声1 : PID 0x104e (4174) / stream type 0x0f (AAC) / component tag 0x10 字幕1 : PID 0x1c13 (7187) / component tag 0x38 データ1 : PID 0x1e01 (7681) / component tag 0x40 PCR : PID 0x0a0e (2574) ECM1 : PID 0x060e (1550) / CA system ID 0x05 サービス2 (AXN 海外ドラマ) : SID 0x0137 (311) / Type 0x01 PMT : PID 0x0401 (1025) 映像1 : PID 0x1001 (4097) / stream type 0x02 (MPEG-2 Video) / component tag 0x00 音声1 : PID 0x1041 (4161) / stream type 0x0f (AAC) / component tag 0x10 字幕1 : PID 0x1c23 (7203) / component tag 0x38 データ1 : PID 0x1e03 (7683) / component tag 0x40 PCR : PID 0x1001 (4097) ECM1 : PID 0x0601 (1537) / CA system ID 0x05 サービス3 (AXNミステリー) : SID 0x013c (316) / Type 0x01 PMT : PID 0x0402 (1026) 映像1 : PID 0x1002 (4098) / stream type 0x02 (MPEG-2 Video) / component tag 0x00 音声1 : PID 0x1042 (4162) / stream type 0x0f (AAC) / component tag 0x10 字幕1 : PID 0x1c23 (7203) / component tag 0x38 データ1 : PID 0x1e03 (7683) / component tag 0x40 PCR : PID 0x1002 (4098) ECM1 : PID 0x0602 (1538) / CA system ID 0x05 サービス4 (スペシャプラス) : SID 0x0141 (321) / Type 0x01 PMT : PID 0x0404 (1028) 映像1 : PID 0x1004 (4100) / stream type 0x02 (MPEG-2 Video) / component tag 0x00 音声1 : PID 0x1044 (4164) / stream type 0x0f (AAC) / component tag 0x10 データ1 : PID 0x1e03 (7683) / component tag 0x40 PCR : PID 0x1004 (4100) ECM1 : PID 0x0604 (1540) / CA system ID 0x05 サービス5 (AT−X) : SID 0x014d (333) / Type 0x01 PMT : PID 0x040f (1039) 映像1 : PID 0x100f (4111) / stream type 0x02 (MPEG-2 Video) / component tag 0x00 音声1 : PID 0x104f (4175) / stream type 0x0f (AAC) / component tag 0x10 字幕1 : PID 0x120f (4623) / component tag 0x30 字幕2 : PID 0x1c02 (7170) / component tag 0x38 データ1 : PID 0x1e01 (7681) / component tag 0x40 PCR : PID 0x0a0f (2575) ECM1 : PID 0x060f (1551) / CA system ID 0x05 サービス6 (BBCワールド) : SID 0x0161 (353) / Type 0x01 PMT : PID 0x0405 (1029) 映像1 : PID 0x1005 (4101) / stream type 0x02 (MPEG-2 Video) / component tag 0x00 音声1 : PID 0x1045 (4165) / stream type 0x0f (AAC) / component tag 0x10 字幕1 : PID 0x1c01 (7169) / component tag 0x38 データ1 : PID 0x1e03 (7683) / component tag 0x40 PCR : PID 0x1005 (4101) ECM1 : PID 0x0605 (1541) / CA system ID 0x05

    上記のストリームの場合、AT-Xを選択しても、サービス1のSKY STAGEしか映らない

    よろしくおねがいします。

    opened by nbc8915 2
  • Update: [Server] VCEEncC を 7.07 に更新し、 1080p-60fps サポートを追加

    Update: [Server] VCEEncC を 7.07 に更新し、 1080p-60fps サポートを追加

    変更の種類

    • [ ] 不具合の修正
    • [x] 新しい機能の追加
    • [ ] 改善・リファクタリング(機能は追加されないが、動作やコードを改善する破壊的でない変更)

    チェックリスト:

    • [x] 開発資料データベース設計 は読みましたか?
      • もともと自分用のメモですが、このプロジェクトの開発方針や設計などが記載されています。開発時の参考にしてください。
    • [x] Git のコミットメッセージは開発資料に記載のフォーマットになっていますか?(重要)
      • このプロジェクト上のコミットメッセージは、基本的に全てこのフォーマットに従って記述されています(文字数は問いません)。
      • 正しいフォーマットになっていない場合、force push で必ずコミットメッセージを変更してから送信してください。
    • [x] このプロジェクトのコーディング規約に従ったコードになっていますか?
      • コーディング規約は開発資料に記載されています。
      • そもそもコーディング規約と言えるほど大層なものではありませんが、一度目を通しておいてください。
    • [x] プルリクエストは master ブランチに送信されていますか?
      • release ブランチはリリースした時にしか更新されません。必ず master ブランチに送信してください。

    説明

    VCEEncC 7.06 ( ただし不具合があるので 7.07 が推奨 ) で追加した --vpp-yadif の 60fps 化機能を使用して、VCEEncC でも 1080p-60fps で動作可能なよう変更します。

    下記のように現実的な GPU 使用率で動作可能なことを確認しました。

    環境: Win11 + R9 5950X + Radeon RX460

    vceencc_1080p_60fps

    動機とコンテキスト

    VCEEncC のみ、60fps モードに非対応な状況を改善したいと考えております。

    opened by rigaya 2
  • Upgrade: Bump loader-utils from 1.4.1 to 1.4.2 in /client

    Upgrade: Bump loader-utils from 1.4.1 to 1.4.2 in /client

    Bumps loader-utils from 1.4.1 to 1.4.2.

    Release notes

    Sourced from loader-utils's releases.

    v1.4.2

    1.4.2 (2022-11-11)

    Bug Fixes

    Changelog

    Sourced from loader-utils's changelog.

    1.4.2 (2022-11-11)

    Bug Fixes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
Releases(v0.6.2)
  • v0.6.2(Nov 24, 2022)

    不具合修正のみで、ほかは 0.6.1 とほとんど変わりません。

    What's Changed

    • レート制限を超えないように、GitHub API のレスポンスを10分間キャッシュする
    • Docker 環境でサーバーログの日付時刻が UTC で出力される不具合を修正
    • Docker インストールでも QSVEncC の動作チェックを行う
    • Linux で第5世代以前の QSV 非対応 CPU で QSVEncC を使おうとした際のエラーハンドリングを行う
    • 低遅延モードオフ時の再生バッファを5秒に変更
    • そのほか不具合修正・依存関係の更新

    Full Changelog: https://github.com/tsukumijima/KonomiTV/compare/v0.6.1...v0.6.2

    Source code(tar.gz)
    Source code(zip)
    KonomiTV-Installer.elf(23.20 MB)
    KonomiTV-Installer.exe(12.64 MB)
    thirdparty-linux.tar.xz(97.62 MB)
    thirdparty-windows.7z(97.02 MB)
  • v0.6.1(Nov 16, 2022)

    不具合修正のみで、ほかは 0.6.0 とほとんど変わりません。

    What's Changed

    • 低スペックスマホでの視聴画面の操作パフォーマンスを大幅に改善
    • コメントのミュート設定のうち、クイック設定のフィルタ正規表現を調整
    • タッチデバイスでコメント横のドロップダウンメニューが表示できない不具合を修正
    • キャプチャをクリップボードにコピーする設定のデフォルト値をオフに変更
    • 番組が切り替わったときにハッシュタグフォームをリセットする」と「視聴中のチャンネルに対応する局タグを自動的に追加する」が同時にオンになっている際の不具合を修正
    • Docker インストール時、NVEncC・VCEEncC が利用できるにも関わらず「この PC ではNVEncC / VCEEncC が利用できない状態です」というエラーが表示される不具合を修正
    • そのほか不具合修正

    Full Changelog: https://github.com/tsukumijima/KonomiTV/compare/v0.6.0...v0.6.1

    Source code(tar.gz)
    Source code(zip)
    KonomiTV-Installer.elf(23.17 MB)
    KonomiTV-Installer.exe(12.55 MB)
    thirdparty-linux.tar.xz(94.35 MB)
    thirdparty-windows.7z(97.01 MB)
  • v0.6.0(Nov 12, 2022)

    半年間開発してきた成果の集大成です!

    What's Changed

    • H.265 コーデックで通信量を抑えて視聴する「通信節約モード」を追加
    • ニコニコ実況連携機能を追加
    • ニコニコ実況へのコメント送信に対応
    • Twitter 連携機能を追加
    • キャプチャ機能を追加
    • KonomiTV アカウント機能を追加
    • 設定の同期機能を追加
    • 各種設定画面を追加
    • スマートフォン (横画面表示) に正式対応
    • VCEEncC が動作するよう Dockerfile を変更 by @rigaya in https://github.com/tsukumijima/KonomiTV/pull/17
    • VCEEncC を 7.07 に更新し、1080p-60fps サポートを追加 by @rigaya in https://github.com/tsukumijima/KonomiTV/pull/18
    • そのほか、書ききれないほどの超大量の機能追加と不具合修正

    New Contributors

    • @rigaya made their first contribution in https://github.com/tsukumijima/KonomiTV/pull/17

    Full Changelog: https://github.com/tsukumijima/KonomiTV/compare/v0.5.2...v0.6.0

    Source code(tar.gz)
    Source code(zip)
    KonomiTV-Installer.elf(23.14 MB)
    KonomiTV-Installer.exe(12.55 MB)
    thirdparty-linux.tar.xz(94.28 MB)
    thirdparty-windows.7z(96.98 MB)
  • v0.5.2(Mar 21, 2022)

    BS新局(BS松竹東急・BSJapanext・BSよしもと)とWOWOWプラスのニコニコ実況コミュニティに対応しました。 また、いくつかの不具合を修正しました。

    How to Update

    cd C:\Develop\KonomiTV\server  # for Windows
    cd /Develop/KonomiTV/server  # for Linux
    git pull
    

    上記のコマンドを実行して、KonomiTV を更新してください。
    Docker の場合は、git pull した後、KonomiTV のフォルダで docker-compose up -d --build するだけで完了します。

    What's Changed

    • BS新局(BS松竹東急・BSJapanext・BSよしもと)とWOWOWプラスのニコニコ実況コミュニティの定義を追加
    • BS松竹東急の高画質なロゴを同梱するように
    • 臨時サービス・超高精細度4K専用TVサービスを表示できるように変更
    • 番組長が24時間ちょうどの番組が表示されないことがある問題を改善
    • 番組情報更新のパフォーマンスを改善
    • mirakc で動かない場合があるのを修正

    Full Changelog: https://github.com/tsukumijima/KonomiTV/compare/v0.5.1...v0.5.2

    Source code(tar.gz)
    Source code(zip)
  • v0.5.1(Feb 19, 2022)

    重大な不具合の修正のみで、ほかは KonomiTV (β) 0.5.0 とまったく同じです。

    How to Update

    cd C:\Develop\KonomiTV\server  # for Windows
    cd /Develop/KonomiTV/server  # for Linux
    git pull
    

    上記のコマンドを実行して、KonomiTV を更新してください。
    Docker の場合は、git pull した後、KonomiTV のフォルダで docker-compose up -d --build するだけで完了します。

    What's Changed

    • 番組情報の更新時にメモリリークやプロセスが無限に増殖する重大な不具合を修正
    • 番組情報の更新時に DB アクセスが重複するとサーバーがフリーズすることがある重大な不具合を修正

    Full Changelog: https://github.com/tsukumijima/KonomiTV/compare/v0.5.0...v0.5.1

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Feb 13, 2022)


    3ヶ月ぶりのアップデートです。ニコニコ実況のコメントを表示する機能が目玉ですが、ほかにもたくさんの機能追加や改善を行いました。 かなり安定してきたと思うので、0.5.0 からは β 版になります。これからも KonomiTV をよろしくお願いします。

    How to Update

    cd C:\Develop\KonomiTV\server  # for Windows
    cd /Develop/KonomiTV/server  # for Linux
    git pull
    pipenv sync
    pipenv run aerich upgrade
    

    上記のコマンドを実行して、KonomiTV を更新してください。

    rm -Recurse -Force thirdparty/  # for Windows
    rm -rf thirdparty/  # for Linux
    curl -LO https://github.com/tsukumijima/KonomiTV/releases/download/v0.5.0/thirdparty.7z
    7z x -y thirdparty.7z
    rm thirdparty.7z
    
    # 以下は Linux のみ
    chmod 755 ./thirdparty/FFmpeg/ffmpeg.elf
    chmod 755 ./thirdparty/FFmpeg/ffprobe.elf
    chmod 755 ./thirdparty/QSVEncC/QSVEncC.elf
    chmod 755 ./thirdparty/NVEncC/NVEncC.elf
    chmod 755 ./thirdparty/tsreadex/tsreadex.elf
    chmod 755 ./thirdparty/VCEEncC/VCEEncC.elf 
    

    また、サードパーティーライブラリも更新する必要があります。 下の thirdparty.7z をダウンロードして server/thirdparty/ に上書きするか、上記のコマンドを実行してください。

    Docker の場合は、git pull した後、KonomiTV のフォルダで docker-compose up -d --build するだけで完了します。 アップデート後はブラウザのキャッシュの削除を忘れずに。

    What's Changed

    • ニコニコ実況のコメントをプレイヤーとコメントリストに表示する機能を追加
    • 実況勢いが「多」「激多」「祭」相当になったときに文字色をハイライトするように改善
    • 設定画面を追加し、プレイヤーの既定の画質やコメントのサイズ/速度/遅延時間などを変更できるように
    • プレイヤーのショートカットキーを多数追加し、ショートカットキーの一覧を表示する機能を追加
    • 数字キー・テンキー・🔼🔽キーでチャンネルを切り替えられるように
    • フルスクリーンボタンを押したときに UI 全体がフルスクリーンで表示されるように改善
    • ピン留めされているチャンネルがないときにもピン留めタブを表示し、ヘルプを表示するように改善
    • 視聴画面のナビゲーションのアイコンにツールチップを表示する
    • CATV チャンネルの視聴に対応 (thanks @piroma555)
    • ラジオチャンネル(スターデジオ・放送大学ラジオ)の聴取に対応 (thanks @yt4687)
    • KonomiTV と EDCB が別の PC で動いていても連携できるように改善 (thanks @xtne6f)
    • 地方の地上波チャンネルの高画質な局ロゴを多数追加 (thanks @piroma555)
    • そのほか、安定性・パフォーマンス・ユーザビリティの向上のための数多くの改善と不具合の修正

    Contribution

    • Docker イメージの軽量化 by @yude in https://github.com/tsukumijima/KonomiTV/pull/5
    • Fix: [Dockerfile] ビルド時にキャッシュが効くよう構成変更 by @kounoike in https://github.com/tsukumijima/KonomiTV/pull/8

    New Contributors

    • @kounoike made their first contribution in https://github.com/tsukumijima/KonomiTV/pull/8

    Full Changelog: https://github.com/tsukumijima/KonomiTV/compare/v0.4.0...v0.5.0

    Source code(tar.gz)
    Source code(zip)
    thirdparty.7z(117.00 MB)
  • v0.4.0(Nov 8, 2021)

  • v0.3.0(Sep 23, 2021)

  • v0.2.0(Aug 31, 2021)

  • v0.1.0(Aug 27, 2021)

Owner
tsukumi
apprentice webprogrammer
tsukumi
An kind of operating system portal to a variety of apps with pure python

pyos An kind of operating system portal to a variety of apps. Installation Run this on your terminal: git clone https://github.com/arjunj132/pyos.git

null 1 Jan 22, 2022
A Kodi add-on for watching content hosted on PeerTube.

A Kodi add-on for watching content hosted on PeerTube. This add-on is under development so only basic features work, and you're welcome to improve it.

null 1 Dec 18, 2021
Repo created for the purpose of adding any kind of programs and projects

Programs and Project Repository A repository for adding programs and projects of any kind starting from beginners level to expert ones Contributing to

Unicorn Dev Community 3 Nov 2, 2022
Rates how pog a word or user is. Not random and does have *some* kind of algorithm to it.

PogRater :D Rates how pogchamp a word is :D A fun project coded by JBYT27 using Python3 Have you ever wondered how pog a word is? Well, congrats, you

an aspirin 2 Jun 25, 2022
Repo created for the purpose of adding any kind of programs and projects

Programs and Project Repository A repository for adding programs and projects of any kind starting from beginners level to expert ones Contributing to

Unicorn Dev Community 3 Nov 2, 2022
MuMMI Core is the underlying infrastructure and generalizable component of the MuMMI framework

MuMMI Core is the underlying infrastructure and generalizable component of the MuMMI framework, which facilitates the coordination of massively parallel multiscale simulations.

null 4 Aug 17, 2022
An end-to-end Python-based Infrastructure as Code framework for network automation and orchestration.

Nectl An end-to-end Python-based Infrastructure as Code framework for network automation and orchestration. Features Data modelling and validation. Da

Adam Kirchberger 15 Oct 14, 2022
HiSim - House Infrastructure Simulator

HiSim is a Python package for simulation and analysis of household scenarios using modern components as alternative to fossil fuel based ones.

FZJ-IEK3 17 Dec 17, 2022
Basic infrastructure for writing scripts in Python

Base Script Python is an excellent language that makes writing scripts very straightforward. Over the course of writing many scripts, we realized that

Deep Compute, LLC 9 Jan 7, 2023
This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principles.

py-12f-common About This repository holds those infrastructure-level modules, that every application requires that follows the core 12-factor principl

Tamás Benke 1 Dec 15, 2022
Listen Surah, prepare for next and Endless life...

Al-Quran In this repository, I have linked up all Surah with Arabic-Bangla Audio From Youtube. So, you just need to choose and listen. and the ( surah

SpiderX 1 Sep 30, 2022
The next generation Canto RSS daemon

Canto Daemon This is the RSS backend for Canto clients. Canto-curses is the default client at: http://github.com/themoken/canto-curses Requirements De

Jack Miller 155 Dec 28, 2022
An application to see if your Ethereum staking validator(s) are members of the current or next post-Altair sync committees.

eth_sync_committee.py Since the Altair upgrade, 512 validators are randomly chosen every 256 epochs (~27 hours) to form a sync committee. Validators i

null 4 Oct 27, 2022
Hopefully the the next-generation backend server of bgm.tv

Hopefully the the next-generation backend server of bgm.tv

Bangumi 475 Jan 1, 2023
A free and powerful system for awareness and research of the American judicial system.

CourtListener Started in 2009, CourtListener.com is the main initiative of Free Law Project. The goal of CourtListener.com is to provide high quality

Free Law Project 332 Dec 25, 2022
Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.

Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.

WayDroid 4.7k Jan 8, 2023
System Design Assignments as part of Arpit's System Design Masterclass

System Design Assignments The repository contains a set of problem statements around Software Architecture and System Design as conducted by Arpit's S

Relog 1.1k Jan 9, 2023
MiniJVM is simple java virtual machine written by python language, it can load class file from file system and run it.

MiniJVM MiniJVM是一款使用python编写的简易JVM,能够从本地加载class文件并且执行绝大多数指令。 支持的功能 1.从本地磁盘加载class并解析 2.支持绝大多数指令集的执行 3.支持虚拟机内存分区以及对象的创建 4.支持方法的调用和参数传递 5.支持静态代码块的初始化 不支

keguoyu 60 Apr 1, 2022
A system for assigning and grading notebooks

nbgrader Linux: Windows: Forum: Coverage: Cite: A system for assigning and grading Jupyter notebooks. Documentation can be found on Read the Docs. Hig

Project Jupyter 1.2k Dec 26, 2022