• このチュートリアルでは、GitHub 上のxizeyoupan/Meting-APIオープンソースプロジェクトを使って、サーバーレスで自分専用の Meting-API をデプロイします
  • この記事は主にサーバーを持っていない方向けの解説です。サーバーをお持ちの場合は、このリポジトリmetowolf/Meting-APIに切り替えてデプロイしてください
  • 自前構築のメリット:API の呼び出しを他人に左右されず、サービス停止の心配もありません。API が自分の手元にあるからです
  • デモ Test:meting-api.saop.cc/test

前提条件

  1. GitHubアカウントを登録する(すでに持っていれば登録不要)
  2. Vercelアカウントを登録する(すでに持っていれば登録不要)
  3. GitHub と Vercel の公式サイトにアクセスできる手段(マジック)があること
  4. 自分専用のドメインと、一定のコンピュータの基礎知識
  5. 両手、頭、目、そしてパソコンかスマートフォン

チュートリアル

0x0001

xizeyoupan/Meting-APIオープンソースプロジェクトのリポジトリに移動し、右上のForkボタンをクリックしてこのリポジトリの main ブランチを Fork します。

Vercelプラットフォームに進み、Add New...>Projectをクリックして、少し頭を使って、先ほど Fork したリポジトリを追加します。

0x0002

デプロイが成功したら、プロジェクトのSettings>Domainsカスタムドメインに進み、自分のサブドメインを追加します。たとえば私の場合はmeting-api.saop.ccです。

自分のドメインの DNS サービスプロバイダー(たとえば私のドメインなら Tencent Cloud)に移動し、Vercel が提供する CNAME レコードを追加します。

0x0003

少し待ちます。だいたい2〜3分ほどです。その後、先ほどバインドした二级域名/testにアクセスします。たとえばhttps://meting-api.saop.cc/testです。

エラーが出た場合はすべてやり直してください。基本的には自分の操作ミスです。成功すれば、以下のテストページが表示されます:

曲の左上にはサービスプロバイダーと取得した種類が表示され、それぞれ次のように対応しています:

元の名前サービス種類
tencent playlistQQ 音楽プレイリスト
tencent songQQ 音楽シングル
netease playlist网易雲音楽プレイリスト
netease song网易雲音楽シングル
netease artist网易雲音楽アーティスト
ytmusic playlistYouTube / ユーチューブプレイリスト
ytmusic songYouTube / ユーチューブシングル
spotify playlistSpotifyプレイリスト
spotify songSpotifyシングル

一部のサービスプロバイダーや種類が空白になっている場合、そのサービスプロバイダーや種類のデータを取得できていないことを意味するので、使用時にはその項目を避けてください。

使い方

API パラメータの説明

API に Meting.min.js を埋め込む

Meting.min.jsファイルを自分のデバイスに保存します

Meting.min.js:https://npm.elemecdn.com/meting/dist/Meting.min.js

このファイルを編集し、Ctrl + F でapi?server=を検索し、https://api.i-meto.com/meting/api?server=を自分の API に置き換えてから Ctrl + S で保存します

  • 置き換え前:https://api.i-meto.com/meting/api?server=
  • 置き換え後:https://meting-api.saop.cc/api?server=

置き換えたら、コードスペースに置いてリンクでこのファイルを参照して使えます。ローカルに置いて相対リンクで参照してもかまいません。

Hexo の Butterfly テーマに適用する

設定前に APlayer 音楽プラグインが有効になっていることを確認してください。そうでないと設定しても意味がありません…

Meting.min.jsファイルを[站点根目录]\source\jsフォルダ内に置き、テーマ設定ファイル_config.butterfly.ymlを編集します。

meting_js:設定項目の CDN リンクを/js/Meting.min.jsに置き換えます

# CDN
# Don't modify the following settings unless you know how they work
# 非必要請不要修改
CDN:
  # The CDN provider of internal scripts (主題內部 js 的 cdn 配置)
  # option: local/jsdelivr/unpkg/cdnjs/custom
  # Dev version can only choose. ( dev版的主題只能設置為 local )
  internal_provider: local

  # The CDN provider of third party scripts (第三方 js 的 cdn 配置)
  # option: local/jsdelivr/unpkg/cdnjs/custom
  # when set it to local, you need to install hexo-butterfly-extjs
  third_party_provider: unpkg

  # Add version number to CDN, true or false
  version: false

  # Custom format
  # For example: https://cdn.staticfile.org/${cdnjs_name}/${version}/${min_cdnjs_file}
  custom_format:

  option:
    aplayer_css: https://npm.elemecdn.com/aplayer/dist/APlayer.min.css
    aplayer_js: https://npm.elemecdn.com/aplayer/dist/APlayer.min.js
    meting_js: /js/Meting.min.js

最後はもちろん Hexo の3連発です!

hexo cl; hexo g; hexo s

F12 でMeting.min.jsファイルが読み込まれているか確認できます

謝辞

GitHub:xizeyoupan/Meting-API