{
  "openapi": "3.0.1",
  "info": {
    "title": "Youtube View & Transcript Generator",
    "description": "YouTube Views Generator is a straightforward tool that helps you increase the views or get the transcription on any YouTube video. It’s designed to boost your video visibility and improve overall engagement. To use it, just enter your YouTube video URLs and select the number of views you want.",
    "version": "0.0",
    "x-build-id": "rXqYWu5qSkYay9iae"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nocodeventure~youtube-view-transcript-generator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nocodeventure-youtube-view-transcript-generator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nocodeventure~youtube-view-transcript-generator/runs": {
      "post": {
        "operationId": "runs-sync-nocodeventure-youtube-view-transcript-generator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nocodeventure~youtube-view-transcript-generator/run-sync": {
      "post": {
        "operationId": "run-sync-nocodeventure-youtube-view-transcript-generator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "Videos URL(s)",
            "type": "array",
            "description": "YouTube video URL(s) to process. These will be used for view generation and/or transcription extraction based on your settings.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "enableViews": {
            "title": "Enable View Generation",
            "type": "boolean",
            "description": "Enable to generate views on YouTube videos by simulating real browser visits. Each view uses unique fingerprints and proxies for maximum legitimacy.",
            "default": true
          },
          "enableTranscription": {
            "title": "Enable Transcription Extraction",
            "type": "boolean",
            "description": "Enable to extract video transcriptions/captions. Works with both manual and auto-generated captions. Transcripts include timestamps and full text.",
            "default": false
          },
          "viewCounts": {
            "title": "View counts per video",
            "minimum": 1,
            "type": "integer",
            "description": "Number of views to create per video. Only applies when view generation is enabled.",
            "default": 1
          },
          "watchTime": {
            "title": "Time to spend on the page watching the video",
            "minimum": 30,
            "type": "integer",
            "description": "Base time to spend watching the video in seconds (120 seconds recommended). YouTube typically requires at least 30 seconds of watch time for a view to count.",
            "default": 30
          },
          "randomizeWatchTime": {
            "title": "Randomize watch time",
            "type": "boolean",
            "description": "Enable to automatically add random variation to watch time for each view (+10-30 seconds). This makes views more realistic and natural. Highly recommended for legitimacy.",
            "default": true
          },
          "randomPause": {
            "title": "Random pause during playback",
            "type": "boolean",
            "description": "Enable to randomly pause the video during playback (unique per view). The video will pause for a few seconds at a random point, then resume playing. This simulates natural human behavior and makes views more realistic.",
            "default": false
          },
          "screenshotPause": {
            "title": "Capture screenshot when pausing",
            "type": "boolean",
            "description": "Enable to take a screenshot when the video is paused (only works if 'Random pause during playback' is enabled). This provides visual proof that the video was paused and resumed.",
            "default": false
          },
          "browsers": {
            "title": "Number of browsers to use",
            "minimum": 1,
            "maximum": 250,
            "type": "integer",
            "description": "Number of browsers to use for concurrent requests. Higher values generate views faster but require more memory — allow roughly 400–500 MB RAM per concurrent browser (e.g. 10 browsers ≈ 4 GB, 20 browsers ≈ 8 GB, 50 browsers ≈ 20 GB). Make sure to allocate enough memory in your run settings.",
            "default": 2
          },
          "captureScreenshots": {
            "title": "Capture screenshots",
            "type": "boolean",
            "description": "Enable to capture screenshots of the page after loading and after pressing play. Screenshots will be saved to the key-value store. Disabling this can improve performance and reduce storage usage.",
            "default": true
          },
          "screenshotQuality": {
            "title": "Screenshot quality",
            "enum": [
              "super-low",
              "low",
              "medium",
              "high"
            ],
            "type": "string",
            "description": "Quality level for captured screenshots. Super low quality uses JPEG format with minimal quality for very small file sizes. Low quality uses JPEG format with reduced quality for smaller files. Medium quality uses PNG with moderate compression. High quality uses PNG with full quality for maximum detail.",
            "default": "super-low"
          },
          "detectBotVerification": {
            "title": "Detect bot verification and auto-retry",
            "type": "boolean",
            "description": "Enable to automatically detect YouTube's 'Sign in to confirm you're not a bot' messages and retry with a new browser session and fingerprint. Highly recommended when using datacenter proxies. Can be disabled if using high-quality residential proxies.",
            "default": true
          },
          "screenshotOnBotDetection": {
            "title": "Screenshot on bot detection",
            "type": "boolean",
            "description": "Enable to capture a screenshot when bot verification is detected. This helps with debugging and understanding when YouTube shows bot verification messages. Screenshots will be saved to the key-value store with 'bot-detected' prefix.",
            "default": true
          },
          "maxRetries": {
            "title": "Maximum retries per view",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of retry attempts if a view fails (e.g., due to bot verification). Set to 0 for unlimited retries. Default is 10 retries per view.",
            "default": 1
          },
          "playShorts": {
            "title": "Play Shorts as Shorts",
            "type": "boolean",
            "description": "When enabled, YouTube Shorts URLs will play in the native Shorts player (vertical, autoplay, swipe-style). When disabled (default), Shorts URLs are converted to regular video URLs for consistent playback behavior.",
            "default": false
          },
          "includeTimestamps": {
            "title": "Include timestamps in transcript",
            "type": "boolean",
            "description": "Enable to include timestamps for each transcript segment. When disabled, only the plain text transcript is returned.",
            "default": false
          },
          "preferredLanguage": {
            "title": "Preferred transcript language",
            "type": "string",
            "description": "Preferred language code for transcripts (e.g., 'en' for English, 'es' for Spanish). If not available, the default language will be used. Leave empty to use the video's default language.",
            "default": ""
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional webhook URL to POST transcription data to. When provided, the extracted transcription data will be sent as a JSON POST request to this URL after extraction. Leave empty to disable.",
            "default": ""
          },
          "webhookId": {
            "title": "Webhook ID",
            "type": "string",
            "description": "Optional unique identifier to include in the webhook payload. Useful for tracking requests or correlating data on your server. This ID will be included as 'webhookId' in the JSON payload.",
            "default": ""
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Enable to capture extra screenshots during view playback (e.g. blocked overlays). For transcription-only runs, combine with Capture screenshots: both flags are sent to the transcription step so you get page screenshots in the key-value store.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler. Using proxies is highly recommended to avoid being detected by YouTube. IMPORTANT: Use RESIDENTIAL proxies for best results - they have much higher success rates and are less likely to trigger bot detection compared to datacenter proxies.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "NL"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}