Giter Club home page Giter Club logo

obs-kuvo-python's Introduction

重要

当ツールは事実上の開発停止となりました。現在は同様の機能を持ったChrome拡張向けの新しいツールを開発しています。

obs-kuvo-chromeEX

obs-kuvo-python

obs-websocketとPythonを使って、KUVO経由でrekordboxで流している曲の情報を表示するやつ

気まぐれで更新してる。あんまり責任持ちたくないんだ。

使用例

動作確認済み

Mac OS X Catalina, Windows 10

目次

  1. OBSの準備
  2. 使い方
  3. リポジトリをクローンして動かす方法
  4. FAQ
  5. 連絡先
  6. 姉妹作
  7. 自分でビルドしたい方へ

OBSの準備

  1. OBSに obs-websocket をインストール
  2. OBS起動
  3. 「title」「artist」「standby」のテキストソースを作る
    1. 「title」「artist」はそれぞれ曲名とアーティスト名の表示欄になる
    2. 「standby」は初期化時の準備状態を表すテキスト。お好みで「準備中」とか書いといて
  4. 「title」「artist」に「scroll」という名前でスクロールのフィルターを作る
  5. 上記2つを「music_info」でグループ化
  6. 本ツール同梱のconfig.iniの[sources_config]の欄を編集。スクロール周りの設定などを行います
  7. OBSメニューから「ツール -> Websocket Server Settings」でパスワード等を設定
  8. 本ツール同梱のconfig.iniの[client]の欄を編集

使い方

アプリ使用例

  1. 本ツールをダウンロード
  2. chromedriver を別途ダウンロード
  3. 本ツール同梱のconfig.iniの[selenium]の欄を編集、ダウンロードしたドライバのパス等を記述
  4. OBSを起動、Websocketサーバを有効にする
  5. obs-kuvo-pythonを起動
  6. ①にて、「OBSに接続」を押す
  7. rekordboxにて、KUVOのLive PlaylistをSTARTし、何か曲を流す
  8. https://kuvo.com/mykuvo/djmix/playlist に新しいプレイリストができるので開く
  9. URLに番号が載ってるので控える
  10. ②にて、テキストボックスにKUVOのプレイリスト番号を入力し、「接続」を押す
  • ①: OBSに接続するボタンと、接続状況を表示する欄です。
    • 「OBSに接続」: OBSに接続します。config.iniで正しく設定したか確認してから行ってください。
  • ②: KUVOのプレイリスト番号を入力し、プレイリストページにアクセスして曲情報を取得するエリアです。
    • 「接続」: 入力した番号のプレイリストにアクセスします。
    • 「リロード」: KUVOのページを再読み込みして、曲情報を更新
  • ③: 読み込まれた曲情報がここに表示されます。
  • ④: OBSを操作するボタン群です。
    • 「初期化」: OBSで作った「standby」を表示、「music_info」を非表示。このとき「title」「artist」の内容が初期化される
    • 「準備OK」: 「standby」を非表示、「music_info」を表示
    • 「隠す」: 「???」と表示する。隠したいときなどに。ご活用ください

何かあったらlogの中身を私に報告してください。Macの場合: obs-kuvo-python.app/Contents/Resources/log

リポジトリをクローンして動かす方法

環境構築

  1. Python 3系をインストール(動作確認バージョン: 3.7.5)
  2. $ pip install -r requirements.txt
  3. chromedriver をダウンロード
  4. このリポジトリをgit clone、またはreleasesからソースをダウンロード
  5. リポジトリ同梱のconfig.iniの[selenium]を設定

使い方(GUIで動かす場合)

  1. $ cd obs-kubo-python
  2. $ python main_gui.py

使い方(CUIで動かす場合)

こちらに関しては厳密な動作確認をしていません。ご了承ください。

  1. $ cd obs-kubo-python
  2. $ python main.py
  3. $ 初期化する?(y or n): -> 「y」
    1. なんか落ちたとかでDJしてる途中から起動した場合は「n」、8へ
  4. rekordboxにて、KUVOのLive PlaylistをSTARTし、何か曲を流す
  5. https://kuvo.com/mykuvo/djmix/playlist に新しいプレイリストができるので開く
  6. URLに番号が載ってるので控える
  7. $ ENTERで準備状態を解除します。曲を流してください(KUVOのオンを忘れずに): -> 何も入力せずにENTER
  8. $ KUVOのプレイリストの番号を入力: -> さっき控えた番号を入力

ENTERでリロード, hで伏せる, zで終了: が表示されてから

  • 何も入力せずにENTERでリロード
  • 「h」で「???」と表示する。隠したいときなどに。ご活用ください
  • 「z」で終了、OBSとの接続を切ります

FAQ

  • Q. 普通にプレイリストのページをブラウザソースで持ってくればよくね?
    • A. 再生中の曲はリストの一番上に緑色で表示されるのだが、これの更新時間にムラがあるし、再生中の曲を上手く認識できなくなることがあるしでダメだこりゃと思ったのが本ツールを作った理由です。
  • Q. SessionNotCreatedExceptionって出た
    • A. 多分使ってるChromeとChromeDriverのバージョンが合ってない。
  • Q. Windowsでよくわからん表示が出る
    • A. CUI利用の場合でも $ ENTERでリロード, hで伏せる, zで終了: は出てるはずだからとりあえず動く。Windowsのことはようわからんへん
  • Q. OBSでソースのロックを切り替えたら動作がおかしくなった、Invalid event SceneItemLockChangedって出た
    • A. 最近obs-websocketに更新が入って、obs-websocket-pyがまだ対応していないっぽいので触らないように
  • Q. 自動で曲情報を更新しないの?
    • A. それで想定外の表示とかされるよりかは…という理由で手動更新。隠す機能とかは手動の方が都合がいいだろうし。

連絡先

Twitter

姉妹作

obs-kuvo(suzu2464氏制作)

自分でビルドしたい方へ

ビルドするツールはいろいろありますが、私はこれを使いました: py2app, pyinstaller

obs-kuvo-python's People

Contributors

msir3316 avatar

Stargazers

tubuname avatar Soichi Ikebe avatar Jarkko Saltiola avatar にー兄さん / Kaito Tsutsumi avatar Rito Suzuki avatar yohei sugigami avatar Souma Suzuki avatar

Watchers

 avatar

obs-kuvo-python's Issues

pyperclipがpy2appを通した場合の動作

クリップボードを操作するモジュールpyperclipが、py2appを通してapp化したものだと動作しない。

怪しい箇所(py2app実行時の出力)

Modules not found (conditional imports):
 * AppKit (pyperclip)
 * Foundation (pyperclip)
 * PyQt4 (pyperclip)
 * PyQt5 (pyperclip)
 * gtk (pyperclip)
 * qtpy (pyperclip)

参照
https://kite.com/python/docs/pyperclip

OSによってクリップボードのメカニズムが異なることが原因。
PyQt(これもGUI周りのモジュール)を入れ、pyperclip.set_clipboard("qt")をすることで一時的な解決にはなったが、アプリサイズが肥大化。なんとかしたい。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.