curl --request GET \
--url https://api.influship.com/v1/raw/youtube/channel-transcripts/{handle} \
--header 'X-API-Key: <api-key>'import Influship from 'influship';
const client = new Influship({
apiKey: process.env['INFLUSHIP_API_KEY'], // This is the default and can be omitted
});
const response = await client.raw.youtube.getChannelTranscripts('@techreviews');
console.log(response.data);import requests
url = "https://api.influship.com/v1/raw/youtube/channel-transcripts/{handle}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"channel_id": "<string>",
"handle": "mkbhd",
"channel_name": "<string>",
"videos_found": 4503599627370495,
"transcripts_fetched": 4503599627370495,
"transcripts_failed": 4503599627370495,
"items": [
{
"video_id": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "<string>",
"view_count": 1,
"published_text": "<string>",
"language": "<string>",
"source": "manual",
"full_text": "<string>",
"word_count": 1,
"transcript": [
{
"text": "Welcome to my channel!",
"start": 0.5,
"duration": 2.3
}
],
"error": "<string>"
}
],
"scraped_at": "<string>"
}
}{
"error": {
"code": "validation_error",
"message": "Invalid value for parameter 'limit': must be between 1 and 100",
"param": "limit",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "unauthorized",
"message": "API key missing or invalid",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "payment_required",
"message": "Payment authentication is required.",
"status_code": 402,
"reason_code": "PAYMENT_ACTION_REQUIRED",
"next_step": "complete_authentication",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "forbidden",
"message": "Your plan does not include access to this endpoint",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "not_found",
"message": "Creator with ID '123e4567-e89b-12d3-a456-426614174000' not found",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded (per minute)",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "upstream_contract_broken",
"message": "The upstream source returned data this endpoint cannot process. This is not retryable; it has been reported.",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"upstream_error": "upstream_contract_broken",
"retryable": false
}
}
}{
"error": {
"code": "service_unavailable",
"message": "Live Instagram data is temporarily unavailable. Please retry shortly.",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"retry_after_seconds": 60,
"upstream_error": "upstream_rate_limited"
}
}
}Get YouTube Channel Transcripts
Fetch transcripts for multiple videos from a YouTube channel. Videos can be sorted by popularity, newest, or oldest before selection.
Features:
- Fetches up to 20 video transcripts per request
- Sort by popular (most views), newest, or oldest
- Partial success — individual video failures don’t block the response
- Optional timestamped segments for each transcript
Availability: When live data is temporarily unavailable this endpoint returns 503 with error.code: service_unavailable in the standard error envelope. Honor Retry-After when present and retry with bounded backoff; you are not charged for 503 responses.
Pricing: 0.5 credits per transcript fetched ($0.005)
curl --request GET \
--url https://api.influship.com/v1/raw/youtube/channel-transcripts/{handle} \
--header 'X-API-Key: <api-key>'import Influship from 'influship';
const client = new Influship({
apiKey: process.env['INFLUSHIP_API_KEY'], // This is the default and can be omitted
});
const response = await client.raw.youtube.getChannelTranscripts('@techreviews');
console.log(response.data);import requests
url = "https://api.influship.com/v1/raw/youtube/channel-transcripts/{handle}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"channel_id": "<string>",
"handle": "mkbhd",
"channel_name": "<string>",
"videos_found": 4503599627370495,
"transcripts_fetched": 4503599627370495,
"transcripts_failed": 4503599627370495,
"items": [
{
"video_id": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "<string>",
"view_count": 1,
"published_text": "<string>",
"language": "<string>",
"source": "manual",
"full_text": "<string>",
"word_count": 1,
"transcript": [
{
"text": "Welcome to my channel!",
"start": 0.5,
"duration": 2.3
}
],
"error": "<string>"
}
],
"scraped_at": "<string>"
}
}{
"error": {
"code": "validation_error",
"message": "Invalid value for parameter 'limit': must be between 1 and 100",
"param": "limit",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "unauthorized",
"message": "API key missing or invalid",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "payment_required",
"message": "Payment authentication is required.",
"status_code": 402,
"reason_code": "PAYMENT_ACTION_REQUIRED",
"next_step": "complete_authentication",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "forbidden",
"message": "Your plan does not include access to this endpoint",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "not_found",
"message": "Creator with ID '123e4567-e89b-12d3-a456-426614174000' not found",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded (per minute)",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "upstream_contract_broken",
"message": "The upstream source returned data this endpoint cannot process. This is not retryable; it has been reported.",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"upstream_error": "upstream_contract_broken",
"retryable": false
}
}
}{
"error": {
"code": "service_unavailable",
"message": "Live Instagram data is temporarily unavailable. Please retry shortly.",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"retry_after_seconds": 60,
"upstream_error": "upstream_rate_limited"
}
}
}Authorizations
Path Parameters
YouTube channel handle or channel ID. Accepts a bare handle, an @handle, a UC-prefixed channel ID, or the corresponding full channel URL.
1"@techreviews"
Query Parameters
Number of videos to fetch transcripts for (max 20)
1 <= x <= 205
Language code for transcripts
"en"
How to sort channel videos before selecting
popular, newest, oldest "newest"
Include timestamped transcript segments in response
false
Response
Successful response
Show child attributes
Show child attributes