Skip to content

Export Thumbnails

How to export thumbnails. Exporting thumbnail files from videos using c#

Saving thumbnails

Sometimes you need a video thumbnail for use outside of Fast video cataloger. You can easily just right click the thumbnail and select “save as”. This is fast and easy if its a single thumbnail you want to save but it will be very time consuming if you want to save all thubmnails for a video, or for several videos.

This is a good example of where the scripting support in Fast video cataloger can help, and it is really easy.

Exporting thumbnails from C# script

This example shows how to export out all thumbnails for the currently selected videos as files.

For each video we create a foder called thumbnails in the same folder as the video file. Then we get all the thumbnails for the selected video by calling GetThumbnailsForVideo(video_id, true );

we get all the thumbnails and only need to go through them all, generate a filename and call System.IO.File.WriteAllBytes(filename, image_data);

to write out the image to file.

``csharp using System; using System.IO; using System.Collections.Generic; using VideoCataloger; using VideoCataloger.RemoteCatalogService;

      class ExportThumbnails
      {
          static public void Run(IScripting scripting, string arguments)
          {
              scripting.GetConsole().Clear();

              var service = scripting.GetVideoCatalogService();
              ISelection selection = scripting.GetSelection();
              List selected = selection.GetSelectedVideos();
              foreach (long video_id in selected)
              {
                  var video_file_entry = service.GetVideoFileEntry(video_id);
                  string target_folder = video_file_entry.FilePath; 
                  int path_end = target_folder.LastIndexOf('\\');
                  target_folder = target_folder.Substring(0, path_end+1);
                  target_folder += "Thumbnails\\";
                  try
                  {
                      DirectoryInfo info = Directory.CreateDirectory(target_folder);
                  }
                  catch (Exception ex)
                  {
                      scripting.GetConsole().WriteLine( ex.Message );
                  }

                  long image_no = 1;
                  Dictionary thumbnails = service.GetThumbnailsForVideo(video_id, true );
                  foreach (KeyValuePair thumbnail_entry in thumbnails )
                  {
                      byte[] image_data = thumbnail_entry.Value.Image;

                      string filename = target_folder + image_no.ToString() + ".jpg";
                      scripting.GetConsole().WriteLine("Saving image to : " + filename);
                      System.IO.File.WriteAllBytes(filename, image_data);
                      image_no++;
                  }
              }
          }
      }

``