Skip to content

Instantly share code, notes, and snippets.

@mikkohei13
Created April 10, 2021 18:57
Show Gist options
  • Save mikkohei13/6ab5829f70b1303e11ea36c8d323a9fc to your computer and use it in GitHub Desktop.
Save mikkohei13/6ab5829f70b1303e11ea36c8d323a9fc to your computer and use it in GitHub Desktop.
Capture stills from Youtube video
import pafy
import cv2
import math
from datetime import datetime
url = "add url here"
video = pafy.new(url)
best = video.getbest(preftype="mp4")
capture = cv2.VideoCapture()
capture.open(best.url)
imagesFolder = "stills"
everyNthFrame = 1800 # depends on framerate
x = 0
while(capture.isOpened()):
now = datetime.now()
datetimeString = now.strftime("%Y%m%dT%H%M%S")
x = x + 1
frameId = capture.get(1) #current frame number
ret, frame = capture.read()
if ret:
if (x % everyNthFrame == 0):
filename = imagesFolder + "/prefix_" + datetimeString + "_UTC.png"
cv2.imwrite(filename, frame)
print("Wrote " + filename)
else:
break
capture.release()
print("Done!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment