diff --git a/mythtv/libs/libmythbase/mythcommandlineparser.cpp b/mythtv/libs/libmythbase/mythcommandlineparser.cpp
index 04ab38b..b5cb1d8 100644
--- a/mythtv/libs/libmythbase/mythcommandlineparser.cpp
+++ b/mythtv/libs/libmythbase/mythcommandlineparser.cpp
@@ -2345,7 +2345,8 @@ void MythCommandLineParser::addRecording(void)
         ->SetRequires("starttime");
 
     add("--starttime", "starttime", QDateTime(),
-            "Specify start time of recording to operate on.", "");
+            "Specify start time of recording to operate on.", "")
+        ->SetRequires("chanid");
 }
 
 /** \brief Canned argument definition for --geometry
diff --git a/mythtv/programs/mythutil/commandlineparser.cpp b/mythtv/programs/mythutil/commandlineparser.cpp
index 141235d..3a6297a 100644
--- a/mythtv/programs/mythutil/commandlineparser.cpp
+++ b/mythtv/programs/mythutil/commandlineparser.cpp
@@ -10,6 +10,8 @@ MythUtilCommandLineParser::MythUtilCommandLineParser() :
 
 void MythUtilCommandLineParser::LoadArguments(void)
 {
+    QStringList ChanidStartimeVideo;
+    ChanidStartimeVideo << "chanid" << "starttime" << "video";
     CommandLineArg::AllowOneOf( QList<CommandLineArg*>()
         // fileutils.cpp
         << add("--copyfile", "copyfile", false,
@@ -40,37 +42,37 @@ void MythUtilCommandLineParser::LoadArguments(void)
         << add("--gencutlist", "gencutlist", false,
                 "Copy the commercial skip list to the cutlist.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--getcutlist", "getcutlist", false,
                 "Display the current cutlist.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--setcutlist", "setcutlist", "",
                 "Set a new cutlist in the form:\n"
                 "#-#[,#-#]... (ie, 1-100,1520-3012,4091-5094)", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--clearcutlist", "clearcutlist", false,
                 "Clear the cutlist.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--getskiplist", "getskiplist", false,
                 "Display the current commercial skip list.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--setskiplist", "setskiplist", "",
                 "Set a new commercial skip list in the form:\n"
                 "#-#[,#-#]... (ie, 1-100,1520-3012,4091-5094)", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--clearskiplist", "clearskiplist", false,
                 "Clear the commercial skip list.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
         << add("--clearseektable", "clearseektable", false,
                 "Clear the seek table.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
+                ->SetParentOf(ChanidStartimeVideo)
 
         // backendutils.cpp
         << add("--resched", "resched", false,
@@ -191,6 +193,14 @@ void MythUtilCommandLineParser::LoadArguments(void)
     addVersion();
     addLogging();
     allowExtras();
+    // Note: This globally prevents --chanid and --video from being
+    // used together, but this is almost certainly a valid restriction
+    // in all cases.
+    CommandLineArg::AllowOneOf(QList<CommandLineArg*>() <<
+                               new CommandLineArg("chanid") <<
+                               add("--video", "video", "",
+                                   "Specify path name of Video Gallery video "
+                                   "to operate on.", ""));
 }
 
 QString MythUtilCommandLineParser::GetHelpHeader(void) const
diff --git a/mythtv/programs/mythutil/mythutil.cpp b/mythtv/programs/mythutil/mythutil.cpp
index 9e88e51..373656a 100644
--- a/mythtv/programs/mythutil/mythutil.cpp
+++ b/mythtv/programs/mythutil/mythutil.cpp
@@ -11,6 +11,12 @@
 bool GetProgramInfo(const MythUtilCommandLineParser &cmdline,
                     ProgramInfo &pginfo)
 {
+    if (cmdline.toBool("video"))
+    {
+        QString video = cmdline.toString("video");
+        pginfo = ProgramInfo(video);
+        return true;
+    }
     if (!cmdline.toBool("chanid"))
     {
         LOG(VB_GENERAL, LOG_ERR, "No chanid specified");
