docs: @WorkerThread
      @Nullable
      public String createThumbnailForVideo(String videoPath) {
          if (TextUtils.isEmpty(videoPath)) return null;
  
          File thumbnailFile = randomPath(videoPath);
          if (thumbnailFile.exists()) return thumbnailFile.getAbsolutePath();
  
          try {
              MediaMetadataRetriever retriever = new MediaMetadataRetriever();
              if (URLUtil.isNetworkUrl(videoPath)) {
                  retriever.setDataSource(videoPath, new HashMap<String, String>());
              } else {
                  retriever.setDataSource(videoPath);
              }
              Bitmap bitmap = retriever.getFrameAtTime();
              thumbnailFile.createNewFile();
              bitmap.compress(Bitmap.CompressFormat.JPEG, THUMBNAIL_QUALITY, new FileOutputStream(thumbnailFile));
              return thumbnailFile.getAbsolutePath();
          } catch (Exception ignored) {
              return null;
          }
      }