Python to Play Video Player on Terminal with Source Code

  • EasyVideoPlayer script is a video player based on the terminal.
  • It can find the video in a pc, change its working directory and play the video file.


  • cv2, os, pathlib and ffpyplayer.player libraries are needed to run this script, all of which can be installed using “pip3 install ‘library name'”.

Run the Script:

  • ‘cd’ to the directory that contains the script and type “python3”.
  • When you are done with the video, use “keyboard interrupt” (Ctrl + C) to exit the player.


  • opencv-python==
  • pathlib==1.0.1
  • ffpyplayer==4.3.1

Source Code:

import cv2
import os
from pathlib import Path
from ffpyplayer.player import MediaPlayer

# User input for the name of the image file.
video_name = input("Name of the video file that you want to play:    ")

# User input for the path of the image file.
video_directory_guess = input("Directory that may contain the video:    ")

# This function finds your file. If you don't know the directory just type '/'
def find_the_video(file_name, directory_name):
    files_found = []
    for path, subdirs, files in os.walk(directory_name):
        for name in files:
            if(file_name == name):
                file_path = os.path.join(path, name)

    return files_found[0]  # Return the path.

# Initialize the path of the image file.
video_directory = Path(find_the_video(video_name, video_directory_guess))

# Initialize the parent directory of the image path.
new_working_directory = video_directory.parent

# Change the working directory of the script.

video_path = find_the_video(video_name, video_directory_guess)

def PlayVideo(video_path):

    video = cv2.VideoCapture(video_path)
    player = MediaPlayer(video_path)

    while True:
        grabbed, frame =
        audio_frame, val = player.get_frame()
        if not grabbed:
            print("End of video")
        if cv2.waitKey(28) & 0xFF == ord("q"):
        cv2.imshow("Video", frame)
        if val != 'eof' and audio_frame is not None:
            img, t = audio_frame


Leave a Comment