diff --git a/mythtv/programs/mythutil/commandlineparser.cpp b/mythtv/programs/mythutil/commandlineparser.cpp
index 141235d..d540223 100644
--- a/mythtv/programs/mythutil/commandlineparser.cpp
+++ b/mythtv/programs/mythutil/commandlineparser.cpp
@@ -40,37 +40,29 @@ void MythUtilCommandLineParser::LoadArguments(void)
         << add("--gencutlist", "gencutlist", false,
                 "Copy the commercial skip list to the cutlist.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
         << add("--getcutlist", "getcutlist", false,
                 "Display the current cutlist.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
         << 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")
         << add("--clearcutlist", "clearcutlist", false,
                 "Clear the cutlist.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
         << add("--getskiplist", "getskiplist", false,
                 "Display the current commercial skip list.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
         << 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")
         << add("--clearskiplist", "clearskiplist", false,
                 "Clear the commercial skip list.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
         << add("--clearseektable", "clearseektable", false,
                 "Clear the seek table.", "")
                 ->SetGroup("Recording Markup")
-                ->SetRequiredChild(QStringList("chanid") << "starttime")
 
         // backendutils.cpp
         << add("--resched", "resched", false,
@@ -117,8 +109,6 @@ void MythUtilCommandLineParser::LoadArguments(void)
                 "metadata, userjob1, userjob2, userjob3, userjob4) to run "
                 "for the recording with the given chanid and starttime.")
                 ->SetGroup("JobQueue")
-                ->SetRequiredChild("chanid")
-                ->SetRequiredChild("starttime")
 
         // messageutils.cpp
         << add("--message", "message", false,
@@ -191,6 +181,11 @@ void MythUtilCommandLineParser::LoadArguments(void)
     addVersion();
     addLogging();
     allowExtras();
+    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");
