戻る
iPhone ショートカット設定画面
Webhook iPhone -> Windows リモートリンク
Webhook を用いて iPhone から無線で Windows PC のブラウザでリンクを開くプログラム。Flask + iPhone ショートカット。
Python Flask iOS Shortcuts
2024年12月
Overview
パソコンから離れて、スマートテレビのように YouTube を見たい。スマホをリモコン代わりにして操作したい。そんな動機から、iPhone から Windows PC のブラウザでリンクを開くプログラムを制作。
Tech Stack
- Flask - 軽量な Web アプリケーションフレームワーク
- webbrowser - Python 標準ライブラリ (URL を既定のブラウザで開くために使用)
- iPhone ショートカット - クリップボードから URL を取得し、HTTP POST で送信
Operation Flow
- iPhone でリンクをコピー
- ショートカットを実行 (クリップボードから参照)
- Windows PC の既定ブラウザで開く
iPhone Shortcut
- クリップボードから URL を取得
- IP アドレス・ポートを指定し、URL を送信 (HTTP リクエストメソッドとして POST を使用)
Server Code
from flask import Flask, request
import webbrowser
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
youtube_link = data.get('link')
print(f"Received link: {youtube_link}")
if youtube_link:
if isinstance(youtube_link, dict):
youtube_link = youtube_link.get('link')
webbrowser.open(youtube_link)
return 'OK', 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
- Web サーバーを開く (ポート 5000 を開く)
- URL が POST 形式で送られてきたら、URL を抽出
- webbrowser を用いて既定のブラウザで開く
Reflection
- 全 IP アドレスから受け取れるようにしているため、セキュリティが貧弱
- 配布するのであれば、認証過程を設ける必要がある
- 以下の点から、普段利用はあまりしなかった
- リンクを送るたびに新規タブで開かれてしまう
- bat をスタートアップで起動しないといけないため、ターミナルが開かれてしまって邪魔
- 常に 5000 番ポートが開かれているため、セキュリティ的に不安
- 実現したいことは形にすることができたため、良かった