コンテンツにスキップ

認証

Spotify for Creators のすべての API は、共通の認証チェーンを使用する。

sp_dc クッキー
       │
       └─▶ spotifyconnector._authenticate()
                  │
                  └─▶ Bearer トークン(全リクエストの Authorization ヘッダーで使用)

Step 1 — sp_dc クッキーの取得

このクッキーが S4C セッション全体の認証の起点。

sp_key は不要になった(2026年10月)

creators.spotify.com のクッキー一覧に sp_key が表示されなくなり、認証でも 完全に無視される(空文字でも任意の値でも認証成功・2026-10-17 実測)。 spotifyconnector は引数として sp_key を必須にしているため、空文字を渡す。

セキュリティ警告

sp_dc は Spotify アカウント全体(音楽・支払い情報を含む全機能)への アクセス権限を持つ。絶対に他人と共有しないこと。.env ファイルに保存し、 .gitignore でバージョン管理対象から除外すること。

取得手順

  1. Chrome で https://creators.spotify.com にアクセスする
  2. Spotify アカウントでログインする
  3. DevTools を開く(F12 または Cmd+Option+I)
  4. Application → Cookies → https://creators.spotify.com に移動する
  5. sp_dc の Value 列をコピーする

Step 2 — Show ID の確認

Spotify for Creators の URL から直接確認できる。

https://creators.spotify.com/pod/show/【ここが Show ID】/episodes

Step 3 — Bearer トークンの取得

非公式ライブラリ spotifyconnector を使って クッキーを短命の Bearer トークンに変換する。

インストール

pip install spotifyconnector==0.8.2

使い方

from spotifyconnector import SpotifyConnector

connector = SpotifyConnector(
    base_url="https://generic.wg.spotify.com/podcasters/v0",
    client_id="05a1371ee5194c27860b3ff3ff3979d2",  # S4C のパブリックな OAuth client_id
    podcast_id="YOUR_SHOW_ID",
    sp_dc="YOUR_SP_DC_COOKIE_VALUE",
    sp_key="",  # 引数は必須だが値は使われない(sp_dc のみで認証)
)
connector._authenticate()   # 内部メソッド
bearer = connector._bearer  # 内部プロパティ — 短命な JWT

Note

_authenticate() と _bearer は spotifyconnector ライブラリの内部(プライベート)属性。 ライブラリの将来バージョンで名前が変わる可能性がある。 client_id(05a1371ee5194c27860b3ff3ff3979d2)は S4C の Web アプリに埋め込まれた パブリックな OAuth クライアント ID で、すべてのユーザーで共通。


Bearer トークンの使い方

取得した Bearer トークンをすべての API リクエストに含める。

GET リクエスト

headers_get = {
    "Authorization": f"Bearer {bearer}",
    "Accept": "application/json",
}

POST / PUT リクエスト

headers_post = {
    "Authorization": f"Bearer {bearer}",
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Origin": "https://creators.spotify.com",
    "Referer": "https://creators.spotify.com/",
}

Warning

POST リクエストには Origin と Referer ヘッダーが必要。 省略するとサーバーにリクエストが拒否される場合がある。


.env テンプレート

SP_DC=your_sp_dc_value_here
SHOW_ID=your_show_id_here
import os
from dotenv import load_dotenv

load_dotenv()
sp_dc = os.environ["SP_DC"]
show_id = os.environ["SHOW_ID"]