YouTube 话题标签搜索
curl --request POST \
--url https://api.socq.ai/v1/youtube/hashtag-search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"hashtags": [
"<string>"
],
"callback_url": "<string>",
"content_type": "<string>",
"results_limit": 100
}
'import requests
url = "https://api.socq.ai/v1/youtube/hashtag-search"
payload = {
"hashtags": ["<string>"],
"callback_url": "<string>",
"content_type": "<string>",
"results_limit": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
hashtags: ['<string>'],
callback_url: '<string>',
content_type: '<string>',
results_limit: 100
})
};
fetch('https://api.socq.ai/v1/youtube/hashtag-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.socq.ai/v1/youtube/hashtag-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'hashtags' => [
'<string>'
],
'callback_url' => '<string>',
'content_type' => '<string>',
'results_limit' => 100
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.socq.ai/v1/youtube/hashtag-search"
payload := strings.NewReader("{\n \"hashtags\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"content_type\": \"<string>\",\n \"results_limit\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.socq.ai/v1/youtube/hashtag-search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"hashtags\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"content_type\": \"<string>\",\n \"results_limit\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/youtube/hashtag-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"hashtags\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"content_type\": \"<string>\",\n \"results_limit\": 100\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"data": {
"task_id": "<string>",
"status": "<string>",
"created_time": "<string>",
"idempotent_replay": true
}
}YouTube 话题标签搜索
按话题标签搜索公开的 YouTube 视频。
POST
/
v1
/
youtube
/
hashtag-search
YouTube 话题标签搜索
curl --request POST \
--url https://api.socq.ai/v1/youtube/hashtag-search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"hashtags": [
"<string>"
],
"callback_url": "<string>",
"content_type": "<string>",
"results_limit": 100
}
'import requests
url = "https://api.socq.ai/v1/youtube/hashtag-search"
payload = {
"hashtags": ["<string>"],
"callback_url": "<string>",
"content_type": "<string>",
"results_limit": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
hashtags: ['<string>'],
callback_url: '<string>',
content_type: '<string>',
results_limit: 100
})
};
fetch('https://api.socq.ai/v1/youtube/hashtag-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.socq.ai/v1/youtube/hashtag-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'hashtags' => [
'<string>'
],
'callback_url' => '<string>',
'content_type' => '<string>',
'results_limit' => 100
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.socq.ai/v1/youtube/hashtag-search"
payload := strings.NewReader("{\n \"hashtags\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"content_type\": \"<string>\",\n \"results_limit\": 100\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.socq.ai/v1/youtube/hashtag-search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"hashtags\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"content_type\": \"<string>\",\n \"results_limit\": 100\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/youtube/hashtag-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"hashtags\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"content_type\": \"<string>\",\n \"results_limit\": 100\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"data": {
"task_id": "<string>",
"status": "<string>",
"created_time": "<string>",
"idempotent_replay": true
}
}YouTube 话题标签搜索
按话题标签搜索公开的 YouTube 视频。结果会转换为统一结构,并按实际保存的记录数计费。{
"hashtags": [
"#technology"
],
"results_limit": 20
}
通过 MCP 使用
| 接口 | 值 |
|---|---|
| REST | POST /v1/youtube/hashtag-search |
| Compact MCP | socq_execute,并设置 endpoint: "youtube/hashtag-search" |
| 类型化 MCP | socq_youtube_hashtag_search |
| 精确工具 URL | https://api.socq.ai/mcp?tools=youtube_hashtag_search |
| CLI | socq youtube hashtag-search |
socq_execute 时,将上面的 JSON 请求体作为 input 对象传入;也可以将相同字段直接传给类型化 MCP 工具。类型化 MCP 工具还支持 _wait_seconds、_result_limit 和 _idempotency_key。
提交成功后会返回
task_id。继续调用 socq_get_task 直到任务成功,然后从 results.items 读取标准化记录。任务完成响应
{
"code": 200,
"data": {
"task_id": "A1B2C3D4E5F6G7H8",
"status": "succeeded",
"public_id": "youtube/hashtag-search",
"result_count": 1,
"credits_amount": 0.5,
"results": {
"limit": 50,
"next_cursor": null,
"has_more": false,
"items": [
{
"id": "example-id",
"platform": "youtube",
"resource": "hashtag-search",
"type": "video",
"url": "https://www.youtube.com/example/item",
"text": "Example public video content.",
"author": {
"id": "author-id",
"username": "example",
"name": "Example",
"url": "https://www.youtube.com/example"
},
"metrics": {},
"media": [],
"created_at": "2026-07-24T08:00:00",
"collected_at": "2026-07-24T10:30:00",
"extra": {}
}
]
}
}
}
授权
bearerAuthapiKeyAuth
使用 Authorization: Bearer <token> 请求头进行身份验证。
请求体
application/json
⌘I

