BitChute Video Downloader avatar

BitChute Video Downloader

Under maintenance

Pricing

Pay per usage

Go to Apify Store
BitChute Video Downloader

BitChute Video Downloader

Under maintenance

Download a video from BitChute by URL. Returns the MP4 (in the key-value store) plus a dataset record with the video's title, uploader, duration and a download link.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

scrape-by-abuzar

scrape-by-abuzar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

BitChute Video Downloader — Apify Actor

A headless Apify Actor that downloads a single BitChute video by URL. It wraps yt-dlp with browser impersonation and merges audio/video to a single .mp4 with ffmpeg.

Input

FieldTypeRequiredDefaultDescription
urlstringFull bitchute.com video link, e.g. https://www.bitchute.com/video/<id>/
qualitystringbestbest, 1080, 720, 480, 360, 240, or 180. Numeric values cap the resolution.

Example:

{
"url": "https://www.bitchute.com/video/CLrgGuxoacGr/",
"quality": "720"
}

Output

  • Key-value store — the downloaded video is saved to the run's default key-value store under the key <videoId>.mp4 (content-type video/mp4).
  • Dataset — one record with metadata and a direct download link:
{
"url": "https://www.bitchute.com/video/<id>/",
"id": "<id>",
"title": "Some Video",
"uploader": "Channel Name",
"duration": 213,
"thumbnail": "https://...",
"viewCount": 345,
"quality": "720",
"ext": "mp4",
"fileSizeBytes": 5407040,
"storageKey": "<id>.mp4",
"videoUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/<id>.mp4"
}

Getting the file. The video lives in the run's default key-value store, which is private to your account, so videoUrl needs authentication:

  • Easiest: open the run in Apify Console → Storage → Key-value store and click the record to download it.
  • Direct link / API: append your token — …/records/<id>.mp4?token=YOUR_APIFY_TOKEN (or open videoUrl while logged into Apify in the same browser).

videoUrl is stored token-free on purpose so your API token is never written into the dataset.

How it works

input { url, quality }
├── validate it's a bitchute.com URL
├── yt-dlp --impersonate chrome -f <height-based selector> --merge-output-format mp4
├── store the mp4 in the key-value store
└── push a dataset record (metadata + download URL)

The download logic lives in src/downloader.py (pure, no Apify dependency, so it's easy to test); src/main.py is the Actor wrapper.

Run / deploy

Requires the Apify CLI and an Apify account.

# from this folder
apify login # paste your Apify API token when prompted
apify push # builds the Docker image on Apify and creates the Actor

To test locally first (needs Docker running):

$apify run --input '{"url":"https://www.bitchute.com/video/<id>/","quality":"480"}'

Notes

  • curl_cffi must be >=0.10,<0.15 (pinned in requirements.txt). yt-dlp's --impersonate does not support curl_cffi 0.15+.
  • Very large videos may approach key-value store record size limits; prefer a capped quality for big files.
  • Only download content you own or have the rights to. Respect BitChute's Terms of Service and applicable copyright law.