code: def test_video_has_playable_codecs_catches_exceptions(
      self, exception_to_raise, test_file_dir
  ):
      with patch(
          "ffmpy.FFprobe.run", side_effect=exception_to_raise
      ), tempfile.NamedTemporaryFile(
          suffix="out.avi", delete=False
      ) as tmp_not_playable_vid:
          shutil.copy(
              str(test_file_dir / "bad_video_sample.mp4"),
              tmp_not_playable_vid.name,
          )
          assert processing_utils.video_is_playable(
              tmp_not_playable_vid.name
          )
  
imports: import os
  import shutil
  import tempfile
  from copy import deepcopy
  from pathlib import Path
  from unittest.mock import patch
  import ffmpy
  import numpy
  import pytest
  from gradio_client import media_data
  from PIL import Image, ImageCms
  from gradio import processing_utils, utils
label_desc: Use image node_id 3 for calling the TestVideoProcessing obj's underlying member method code with example usage: obj.test_video_has_playable_codecs_catches_exceptions(exception_to_raise, test_file_dir) without return types