質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

3595閲覧

Spotifyの検索で、クエリに日本語が混ざるとうまくいかない

hacosato

総合スコア48

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/01/20 14:07

編集2020/01/21 11:08

Spotifyのsearch apiを使って、楽曲を検索しようとしています。
https://developer.spotify.com/console/get-search-item/
以下はすべて、上記のGUI環境下で動かしました。


1.まず、
https://developer.spotify.com/console/get-search-item/?q=%E3%82%B5%E3%82%AB%E3%83%8A%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&type=track&market=&limit=&offset=
q=サカナクション
type=track
で検索して、想定通り動作しました(「サカナクション」がどこかしらに含まれる楽曲が検索される)。

2.つぎに、
https://developer.spotify.com/console/get-search-item/?q=track:aoi+artist:sakanaction&type=track&market=&limit=&offset=
q=track:aoi artist:sakanaction
type=track
で検索して、想定通り動作しました(楽曲名が「Aoi」、アーティストが「sakanaction」の楽曲が検索される)。

3.しかし、
https://developer.spotify.com/console/get-search-item/?q=track:aoi+artist:%E3%82%B5%E3%82%AB%E3%83%8A%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&type=track&market=&limit=&offset=
q=track:aoi artist:サカナクション
type=track
で検索して、想定通り動作しません(2.同様に楽曲名が「Aoi」、アーティストが「サカナクション」の楽曲が検索されてほしいが、itemsが空のリストとなってしまう=なにもヒットしない)。


qの中身は下記のドキュメントを参照しています。
https://developer.spotify.com/documentation/web-api/reference/search/search/#writing-a-query---guidelines

このQiita記事が近いかと思ったんですが手がかりをつかめませんでした。
https://qiita.com/yumayamada1029/items/8bdb2e1d176c7e72db72

qの中身の一部に日本語が混ざる場合のみにうまくいかないのですが、これはSpotify APIに起因するのでしょうか?
それともHTMLのパラメータ全般の問題でしょうか?
解決策わからず、教えていただけたらと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oikashinoa

2020/01/21 02:49

一番目のクエリーって日本語でクエリー投げてないですよね? こちらで日本語で投げてみたら結果は0件でした。一度ご確認ください
hacosato

2020/01/21 11:10

失礼しました。URL修正しました。 https://developer.spotify.com/console/get-search-item/?q=%E3%82%B5%E3%82%AB%E3%83%8A%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&type=track&market=&limit=&offset= わたしの環境ではただしく動作しているようです。 qのとなりに表示されるのが下記の通りです。 curl -X "GET" "https://api.spotify.com/v1/search?q=%E3%82%B5%E3%82%AB%E3%83%8A%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&type=track" -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer 〜〜以下略" 「TRY IT」の下に表示されるのが以下の通りです。 { "tracks": { "href": "https://api.spotify.com/v1/search?query=%E3%82%B5%E3%82%AB%E3%83%8A%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&type=track&offset=0&limit=20", "items": [ { "album": { "album_type": "album", "artists": [ { "external_urls": { "spotify": "https://open.spotify.com/artist/0hCWVMGGQnRVfDgmhwLIxq" }, "href": "https://api.spotify.com/v1/artists/0hCWVMGGQnRVfDgmhwLIxq", "id": "0hCWVMGGQnRVfDgmhwLIxq", "name": "サカナクション", "type": "artist", "uri": "spotify:artist:0hCWVMGGQnRVfDgmhwLIxq" } ], "available_markets": [〜〜以下略
guest

回答1

0

ベストアンサー

日本語が通らないのはSpotify APIがまだBetaだからな気がします…がよくわからない。開発元に聞いたほうが早い気がします。

Search for an Item | Spotify for Developers

q=の書き方を色々試す必要があるかもしれません。
0. ””でくくってみる
0. スペースではなく+で連結
0. typeはartist,trackのように複数指定してみる
…などなど。ヘルプに書いてあることを試しつつ、開発元にも問い合わせてみたほうが良いと思います。

投稿2020/01/21 19:30

oikashinoa

総合スコア2826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hacosato

2020/01/21 23:08

ありがとうございます! track:aoi artist:"サカナクション" track:"aoi" artist:"サカナクション" "track:aoi artist:サカナクション" などのパターンと、それぞれスペースではなく+で連結を試しましたがうまくいきませんでした。 スペースの代わりに%20でもやってみましたが、それだと日本語の有無にかかわらずうまく動きませんでした。 typeもartist,trackなど複数指定しましたがそれもだめでした。 タイトルだけでとりあえず絞って、jsonの中身を自前で検索すればいいのか……。 問い合わせ先探してみます! アドバイスありがとうございます。
oikashinoa

2020/01/21 23:22

API側のq=のデコード処理の問題だと予想してます。 今やれるのは、1.改善されるのを期待しつつ開発元に問い合わせる 2.アーティストで検索した結果を自前で楽曲名で絞り込む(逆でも良いけど、キャッシュするとか考えたらアーティストをメインで検索かな?) しかないですね。 頑張ってください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問