YouTube Downloader avatar

YouTube Downloader

Try Actor

$20.00/month

View all Actors
YouTube Downloader

YouTube Downloader

apilabs/youtube-downloader
Try Actor

$20.00/month

All-in-One YouTube Downloader: Easily integrate our affordable solution into your application to download high-quality videos, audio, and music from YouTube. Enjoy customizable formats and quality options, all at a cheaper price compared to other tools.

YouTube Downloader API

Overview

The YouTube Downloader API provides a powerful and flexible solution for downloading videos, audio, and music from YouTube. With support for multiple formats like MP3 and MP4, users can choose their desired quality option for the best media experience. This all-in-one downloader is perfect for developers looking to integrate seamless media downloading capabilities into their applications.

Features

  • Download Video: Fetch and store high-quality videos from YouTube.
  • Download Audio: Extract and save audio tracks in various formats, including MP3.
  • YouTube Music: Access and download music videos directly from YouTube.
  • Format Options: Choose between MP3 and MP4 formats for your downloads.
  • Quality Selection: Select your preferred quality for downloads to ensure the best experience.

Input Parameters

The API accepts the following input parameters:

  • url: The URL of the YouTube video or audio content to download.
  • quality: The desired quality option for the download (e.g., 720p, 1080p, etc.).
  • onlyAudio: A boolean flag (true/false) indicating whether to download audio only.
  • useFFmpeg: A boolean flag (true/false) to specify if FFmpeg should be used for processing.
  • proxy: (Optional) The proxy URL to be used for the download.

Note: Using a proxy is recommended to avoid being blocked by YouTube. However, it may increase download times. If you experience any issues, consider changing your proxy.

Important Notes

  1. Proxy Usage: If you are using a proxy, please ensure that it is correctly configured and you are using a reliable proxy group. This will help avoid IP blocking by YouTube.

  2. QuickTime Note for Mac Users: If you are using macOS, the downloaded video may not work properly with QuickTime Player due to codec issues. In such cases, use a different media player like VLC, or convert the file format using a tool like FFmpeg.

  3. Video and Link Storage: Every time the API runs:

    • The video download link is stored in one dataset.
    • The actual video is stored in another dataset, enabling easy access and management of the media files.

Output

Upon a successful request, the API stores an item in the dataset the following format:

1{
2  "download_link": "your_download_link_here",
3  "status_code": 200
4}

Usage Example Python

The following example shows an full example of usage from running an actor to downloading the video on your device.

1import requests
2import mimetypes
3from apify_client import ApifyClient
4
5# Initialize the ApifyClient with an API token
6# (You can generate your own Apify API token for authentication)
7apify_client = ApifyClient('your_apify_api_token')
8
9# Define the input for the actor that downloads YouTube videos
10actor_input = {
11    "audioOnly": False,  # Set to True if you only want to download audio, False for full video
12    "ffmpeg": True,  # Whether to use ffmpeg for processing
13    "proxy": {
14        "useApifyProxy": True,  # Enable the use of Apify Proxy
15        "apifyProxyGroups": ["RESIDENTIAL"],  # Specify the proxy group to use (e.g., residential)
16        "apifyProxyCountry": "HR"  # Set the country code for the proxy (e.g., HR for Croatia)
17    },
18    "url": "youtube_url"  # The YouTube URL to download
19}
20
21# Start the actor on Apify and wait for it to finish
22# (Replace 'demolitore/my-actor' with the actor you want to use)
23actor_call = apify_client.actor('apilabs/youtube-downloader').call(run_input=actor_input)
24
25# Retrieve the dataset associated with the YouTube downloader
26my_dataset_client = apify_client.dataset('your_username/Youtube-Downloader')
27
28# Fetch the most recent dataset entry, which contains the download link
29l = my_dataset_client.list_items(limit=1, desc=True) #Get the only last element inserted
30url = l.items[0]['download_link']  # Extract the download link from the dataset
31
32# Download the file using the URL extracted from the dataset
33response = requests.get(url)
34# If the download is successful (status code 200), proceed to save the file
35if response.status_code == 200:
36    # Get the Content-Type from the response headers to infer the file extension
37    content_type = response.headers.get('Content-Type')
38
39    # Guess the appropriate file extension based on the Content-Type
40    extension = mimetypes.guess_extension(content_type.split(';')[0])
41
42    # Extract the base filename from the URL and append the correct file extension
43    filename = url.split("/")[-1].split("?")[0]
44    filename = f"{filename}{extension}"  # Combine the base filename with the extension
45
46    # Save the file to the local disk in binary mode
47    with open(filename, 'wb') as file:
48        file.write(response.content)
49
50    # Print success message with the saved filename
51    print(f"File downloaded successfully as {filename}.")
52else:
53    # Print an error message if the download fails
54    print(f"Failed to download file. Status code: {response.status_code}")
Developer
Maintained by Community
Actor metrics
  • 1 monthly user
  • 3 stars
  • Created in Oct 2024
  • Modified about 7 hours ago