Author Topic: How do I select a specific episode  (Read 6713 times)

0 Members and 2 Guests are viewing this topic.

cgott42

  • Jr. Member
  • **
  • Posts: 5
  • Karma: 0
    • View Profile
How do I select a specific episode
« on: September 06, 2015, 11:27:14 AM »
If I have an entire series of a TV on my JRiver (e.g. The Flash) .  How do I tell Vox to go directly to play a specific episode?  If I say "Play TV Show The Flash Season 1 Episode 4" it will play the first episode instead? 

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 1999
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: How do I select a specific episode
« Reply #1 on: September 06, 2015, 12:38:05 PM »
You would need to create a new command for that. There is no such command in the default configuration.

VC uses JRiver's built-in query language, and you can create your own commands at any time by learning how to use it.
http://wiki.jriver.com/index.php/Smartlist_and_Search_-_Rules_and_Modifiers

I don't have JRiver installed so I can't test this, but you can try the following:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.4.8-->
<command id="1313" name="Play TV Episode" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>JRiver.Stop</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Playing T.V. show {1}, Season {2}, Episode {3}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>JRiver.SearchPlay</cmdType>
    <params>
      <param>[Media Sub Type]=[TV Show]  [Series]=[{1}] [Season] = [{2}] [Episode] = [{3}]</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>Play TV Show</phrase>
  <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">JRPayloads\TvSeries.xml</payloadFromXML>
  <phrase>Season</phrase>
  <payloadRange>1,20</payloadRange>
  <phrase>Episode</phrase>
  <payloadRange>1,24</payloadRange>
</command>

The above command uses three payloads:

{1} = The TV series name. This uses the TvSeries.xml that is generated by the JRiver plugin if you've already set that up properly.
{2} = a number range between 1 and 20, which gets passed to the JRiver query to identify the season number.
{3} = a number range between 1 and 24, which gets passed to the JRiver query to identify an episode number.

TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7714
  • Karma: 116
    • View Profile
    • VoxCommando
Re: How do I select a specific episode
« Reply #2 on: September 06, 2015, 12:47:32 PM »
Close but the syntax is a bit off.  No square brackets around numbers and maybe too many spaces in the wrong place.

The following code is tested and works.  Note that if you ask for a series/episode combo that does not exist it will just play the first episode it finds.

The original command provided in the default configuration was supposed to play the next unwatched episode automatically.

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.0.7-->
<command id="1313" name="Play {1} season {2} episode {3}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>JRiver.SearchPlay</cmdType>
    <params>
      <param>[Media Sub Type]=[TV Show]  [Series]=[{1}] [Season]={2} [Episode]={3}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>TTS.Speak</cmdType>
    <params>
      <param>Playing T.V. show {1}, Season {2}, Episode {3}</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>Play</phrase>
  <payloadFromXML phraseOnly="True" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">JRPayloads\TvSeries.xml</payloadFromXML>
  <phrase>season</phrase>
  <payloadRange>1,15</payloadRange>
  <phrase>episode</phrase>
  <payloadRange>1,29</payloadRange>
</command>
« Last Edit: September 06, 2015, 02:38:09 PM by jitterjames »

cgott42

  • Jr. Member
  • **
  • Posts: 5
  • Karma: 0
    • View Profile
Re: How do I select a specific episode
« Reply #3 on: September 06, 2015, 01:06:33 PM »
thanks, Guess I'll learn how to use their query language and use this.
thanks again!

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7714
  • Karma: 116
    • View Profile
    • VoxCommando
Re: How do I select a specific episode
« Reply #4 on: September 06, 2015, 01:19:20 PM »
Actually the square brackets did not seem to matter, I think the problem with Nime5ter's syntax was actually the space before the equals sign.

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 1999
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: How do I select a specific episode
« Reply #5 on: September 07, 2015, 04:52:44 AM »
Yes, a silly typo on my part. Their documentation is very clear about the use of spaces. Since spaces are used as the separator for search terms, they should not be inserted arbitrarily.

The [] should not be a problem since, according to their documentation, the Episode and Season fields are strings. In JRiver's query language, you can use either [square brackets] or "double quotations" to surround a complete string that you want to search for. A one-word or one-character string doesn't require it, but it shouldn't be a problem either.
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)