diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini
index f769e4e..04519d2 100644
--- a/mediagoblin/config_spec.ini
+++ b/mediagoblin/config_spec.ini
@@ -144,6 +144,11 @@ max_height = integer(default=640)
 max_width = integer(default=180)
 max_height = integer(default=180)
 
+[media:share]
+# Dimensions used when creating media thumbnails for social media shareing
+max_width = integer(default=600)
+max_height = integer(default=315)
+
 [celery]
 # default result stuff
 CELERY_RESULT_BACKEND = string(default="database")
diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py
index a85b232..29758c9 100644
--- a/mediagoblin/media_types/video/processing.py
+++ b/mediagoblin/media_types/video/processing.py
@@ -215,6 +215,9 @@ class CommonVideoProcessor(MediaProcessor):
         elif keyname == 'thumb':
             if kwargs.get('thumb_size') != file_metadata.get('thumb_size'):
                 skip = False
+        elif keyname == 'share':
+            if kwargs.get('share_size') != file_metadata.get('share_size'):
+                skip = False
 
         return skip
 
@@ -298,35 +301,43 @@ class CommonVideoProcessor(MediaProcessor):
             width=dst_dimensions[0],
             height=dst_dimensions[1])
 
-    def generate_thumb(self, thumb_size=None):
+    def generate_image(self, size=None, magic='thumb', fname='thumbnail'):
         # Temporary file for the video thumbnail (cleaned up with workbench)
-        tmp_thumb = os.path.join(self.workbench.dir,
+        tmp = os.path.join(self.workbench.dir,
                                  self.name_builder.fill(
-                                     '{basename}.thumbnail.jpg'))
+                                     '{basename}.%s.jpg' % fname))
 
-        if not thumb_size:
-            thumb_size = (mgg.global_config['media:thumb']['max_width'],)
+        if not size:
+            size = (mgg.global_config['media:%s' % magic]['max_width'],)
 
-        if self._skip_processing('thumb', thumb_size=thumb_size):
-            return
+        # How can this be more clever?
+        if magic == 'thumb':
+            if self._skip_processing(magic, thumb_size=size):
+                return
+        if magic == 'share':
+            if self._skip_processing(magic, share_size=size):
+                return
 
         # We will only use the width so that the correct scale is kept
         transcoders.capture_thumb(
             self.process_filename,
-            tmp_thumb,
-            thumb_size[0])
+            tmp,
+            size[0])
 
         # Checking if the thumbnail was correctly created.  If it was not,
         # then just give up.
-        if not os.path.exists (tmp_thumb):
+        if not os.path.exists (tmp):
             return
 
         # Push the thumbnail to public storage
-        _log.debug('Saving thumbnail...')
-        store_public(self.entry, 'thumb', tmp_thumb,
-                     self.name_builder.fill('{basename}.thumbnail.jpg'))
+        _log.debug('Saving image (%s)...' % magic)
+        store_public(self.entry, magic, tmp,
+                     self.name_builder.fill('{basename}.%s.jpg' % fname))
 
-        self.entry.set_file_metadata('thumb', thumb_size=thumb_size)
+        if magic == 'thumb':
+            self.entry.set_file_metadata(magic, thumb_size=size)
+        if magic == 'share':
+            self.entry.set_file_metadata(magic, share_size=size)
 
 class InitialProcessor(CommonVideoProcessor):
     """
@@ -375,23 +386,30 @@ class InitialProcessor(CommonVideoProcessor):
             metavar=('max_width', 'max_height'),
             type=int)
 
+        parser.add_argument(
+            '--share_size',
+            nargs=2,
+            metavar=('max_width', 'max_height'),
+            type=int)
+
         return parser
 
     @classmethod
     def args_to_request(cls, args):
         return request_from_args(
             args, ['medium_size', 'vp8_quality', 'vp8_threads',
-                   'vorbis_quality', 'thumb_size'])
+                   'vorbis_quality', 'thumb_size', 'share_size'])
 
     def process(self, medium_size=None, vp8_threads=None, vp8_quality=None,
-                vorbis_quality=None, thumb_size=None):
+                vorbis_quality=None, thumb_size=None, share_size=None):
         self.common_setup()
 
         self.transcode(medium_size=medium_size, vp8_quality=vp8_quality,
                        vp8_threads=vp8_threads, vorbis_quality=vorbis_quality)
 
         self.copy_original()
-        self.generate_thumb(thumb_size=thumb_size)
+        self.generate_image(size=thumb_size)
+        self.generate_image(size=share_size, magic='share', fname='share')
         self.delete_queue_file()
 
 
@@ -400,8 +418,9 @@ class Resizer(CommonVideoProcessor):
     Video thumbnail resizing process steps for processed media
     """
     name = 'resize'
-    description = 'Resize thumbnail'
+    description = 'Resize thumbnails and other images'
     thumb_size = 'thumb_size'
+    share_size = 'share_size'
 
     @classmethod
     def media_is_eligible(cls, entry=None, state=None):
@@ -421,6 +440,12 @@ class Resizer(CommonVideoProcessor):
             metavar=('max_width', 'max_height'),
             type=int)
 
+        parser.add_argument(
+            '--share_size',
+            nargs=2,
+            metavar=('max_width', 'max_height'),
+            type=int)
+
         # Needed for gmg reprocess thumbs to work
         parser.add_argument(
             'file',
@@ -433,11 +458,12 @@ class Resizer(CommonVideoProcessor):
     @classmethod
     def args_to_request(cls, args):
         return request_from_args(
-            args, ['thumb_size', 'file'])
+            args, ['thumb_size',  'share_size', 'file'])
 
-    def process(self, thumb_size=None, file=None):
+    def process(self, thumb_size=None, share_size=None, file=None):
         self.common_setup()
-        self.generate_thumb(thumb_size=thumb_size)
+        self.generate_image(size=thumb_size)
+        self.generate_image(size=share_size, magic='share', fname='share')
 
 
 class Transcoder(CommonVideoProcessor):
