Skip to main content

Get an OpenCV video capture from an YouTube video URL

Project description

cap_from_youtube

Get an OpenCV video capture from an YouTube video URL

PyPI

Why

  • pafy is widely used to get the video URL from a YouTube video URL, but since it uses youtube-dl which has not been updated recently, it suffers from some issues (dislike_count not found...).
  • This repository is a simplified version of what pafy does, by just getting the url of the video and creating an OpenCV video capture from it.
  • It uses YT-DLP (https://github.com/yt-dlp/yt-dlp), which is a fork of youtube-dl that is updated frequently.

Requirement

  • YT-DLP
  • OpenCV
  • NumPy

Installation

  • The easiest way is to install it with pip:
pip install cap_from_youtube
  • You can also install it from GitHub:
pip install git+https://github.com/ibaiGorordo/cap_from_youtube

Usage

cap_from_youtube()

  • cap_from_youtube() is the main function to obtain a video capture from a YouTube video URL.
  • It requires the video URL as input and returns a cv2.VideoCapture object.
  • By default, it returns the video with the highest resolution available.
  • You can specify the resolution you want to get with the resolution parameter.
    • Available resolutions: '144p', '240p', '360p', '480p', '720p', '720p60', '1080p', '1080p60', 'best'
  • Example:
from datetime import timedelta
import cv2
from cap_from_youtube import cap_from_youtube

youtube_url = 'https://youtu.be/LXb3EKWsInQ'
start_time = timedelta(seconds=5)
cap = cap_from_youtube(youtube_url, 'best', start=start_time)

cv2.namedWindow('video', cv2.WINDOW_NORMAL)
while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('video', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

list_video_streams()

  • You can also use the list_video_streams() function to get the list of available video streams.
  • It requires the video URL as input and returns two values:
    • streams: a list of VideoStream with the information of the available video streams.
    • resolutions: a NumPy array with the available resolutions.
  • Example:
from cap_from_youtube import list_video_streams

youtube_url = 'https://youtu.be/LXb3EKWsInQ'
streams, resolutions = list_video_streams(youtube_url)

for stream in streams:
    print(stream)

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cap_from_youtube-0.2.0.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

cap_from_youtube-0.2.0-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page