Is it possible to stream video from https:// (e.g. YouTube) into python with OpenCV? Is it possible to stream video from https:// (e.g. YouTube) into python with OpenCV? python python

Is it possible to stream video from https:// (e.g. YouTube) into python with OpenCV?


you need to have 2 things installed

  1. pafy (pip install pafy)
  2. youtube_dl (sudo pip install --upgrade youtube_dl)

after installing these two packages you can use the youtube url to play the streaming videos from youtube.Please refer the code below

url = 'https://youtu.be/W1yKqFZ34y4'vPafy = pafy.new(url)play = vPafy.getbest(preftype="webm")#start the videocap = cv2.VideoCapture(play.url)while (True):    ret,frame = cap.read()    """    your code here    """    cv2.imshow('frame',frame)    if cv2.waitKey(20) & 0xFF == ord('q'):        break    cap.release()cv2.destroyAllWindows()


it is possible with pafy (https://pypi.python.org/pypi/pafy)

import cv2, pafyurl = "https://www.youtube.com/watch?v=aKX8uaoy9c8"videoPafy = pafy.new(url)best = videoPafy.getbest(preftype="webm")video=cv2.VideoCapture(best.url)


@incBrain's suggestion to download the youtube video to local mp4 was the way to go here. Here were the steps that I used to set up a remote server environment on EC2, with output piped into my local computer via X11 forwarding:

  • ssh -X -i "<ssh_key.pem>" ubuntu@<IP-address>.compute-1.amazonaws.com (Note the -X option is an important addition here. It's what we use to pass output from the EC-2 server to a local X11 client)
  • sudo pip install --upgrade youtube_dl (I know, sudo pip is bad. I blame the site instructions)
  • Download youtube video to local file: youtube-dl https://www.youtube.com/watch?v=VUjF1fRw9sA -o motocross.mp4
  • python demo_cv.py

X11 forwarding can be tricky. If you run into any hangups there this post might be helpful to you also.