Author Topic: Get Info of Songs, Episodes or Movies - Without Have to Play the File  (Read 2449 times)

0 Members and 1 Guest are viewing this topic.

claymic

  • $upporter
  • Sr. Member
  • *****
  • Posts: 152
  • Karma: 0
    • View Profile
Hi
After the smart playlists this is my prefer command. I dont speak english but i will try to explain how this works.
Thanks James and Wanilton for all help with this.
We have to install a plugin in Xbmc, this plugin will generate a txt file everytime we send the command with vox, so we can get the info of ours songs, albuns, episodes, season, tv shows and movies. We can get all the infos without have to play the files. You can for exemple navigate over you movies and get the plot, rating, duration, etc.
For this work install the plugin and import the group for VoxCommando:

Quote
https://dl.dropbox.com/u/89557567/script.vcgetinfo.zip
https://dl.dropbox.com/u/89557567/VcGrp_XBMC%20script%20container.xml
You will better understand using then reading here.
You can use all this regex to get the infos :
<Container>(.*)</Container> This will get the info of the container who you are navigating. The match will depend where you are in xbmc. EX: Movie, TV Show, TV Show Episodes, TV Show Seasons, Music or Music Songs.
<Title>(.*)</Title> get the title of the songs, episodes or movies
<Rating>(.*)</Rating> get the rating of the movies or songs.
<OriginalTitle>(.*)</OriginalTitle> original title of the movie
<Plot>(.*)</Plot> plot of movies or episodes
<Year>(.*)</Year> year of the movie, album or tv show.
<Genre>(.*)</Genre>
<Director>(.*)</Director>
<Country>(.*)</Country>

<Tagline>(.*)</Tagline> for movies or tv shows
<Duration>(.*)</Duration> songs, movies or episodes
<FileExtension>(.*)</FileExtension> get the files extension of the movies or episodes
<TVShowTitle>(.*)</TVShowTitle> only for tv show
<ShowPlot>(.*)</ShowPlot> Only for tv show
<Season>(.*)</Season> will get the number of the season of a tv show
<TotalSeasons>(.*)</TotalSeasons> will get the total number of seasons of a tv show.
<Episode>(.*)</Episode> get the number of the episode
<TotalEpisodes>(.*)</TotalEpisodes> if you are over a tv show will return how much episodes the tv show have, if you are over a season will return the number of episodes in the season.
<WatchedEpisodes>(.*)</WatchedEpisodes> if you are over a tv show will return how many episodes you watched for this tv show, if you are over a season will return the number of episodes you watched in this season.
<UnWatchedEpisodes>(.*)</UnWatchedEpisodes> same thing, but for unwatched
<audioType>(.*)</audioType> the type of the audio file
<Artist>(.*)</Artist> name of the singer if you are navigation over a album or song
<Album>(.*)</Album>
<TrackNumber>(.*)</TrackNumber>
<Lyrics>(.*)</Lyrics> this will get the lyrics of the song, if the song have one.
<Path>(.*)</Path> you return the full path of a file
<FolderName>(.*)</FolderName> will return only the folder name of the file.

Now the only thing you need its imagination.
Import the group  "XBMC script container" and you see how you can manage all this regex without any problem. This group have only one phrase : "Read to Me" , try to navigate in xbmc (movies, musics, tv shows, episodes, etc) and say Read to Me, you will see how the VoxCommando group works using the regex for Container and a few events.
How the this group works :
You will se a command in this group named "Read to me" with a phrase "Read to me", see the picture
[attachment=1]
See the actions picture :
[attachment=2]
When you say the phrase Read to Me VoxCommando will tell for xbmc run the script, after that the script will generate a .txt file (infotemp.txt), you can open this txt file (will be in root of your VoxCommando) and see al the infos there.
After the VoxCommando read the file with can get and manage the infos with the regex, in this case i am geting the container informartion with the regex <Container>(.*)</Container>, so if you are navigating over your movies the {Match.1} will be Movies, lke i said before. In the next acdtion the VoxCommando will trigger a event Container.{Match.1} in this case Container.Movies, see now the pictrue bellow :
[attachment=3]
After the trigger Event the command Container.Movie will run.
[attachment=4]
All done. Off course we can get off the TTS.SetVoiceName, i am using because my movies have the title in Englisch but the plot is in portuguese.
Its the same thing for songs, tvShows, episodes, etc. All this have a event.
For people from Brasil the match from the Container regex its a little diferent for songs and tvshows, because sometimes we have in the same tvshow a plot in English and other in Portuguese. How solved that ? Well, the most of portugue plots have accents and "ç", so i put a little code in the script. If the episode (tv show, season) plot have accents or "ç" the script will return the container like "TV Show Brasil" this will trigger the event Container.Tv Shows Brasil and you can use the TTS.SetVoiceName to get the tts in portuguese.
For music i solved this with another trick. Every song have a genre, so if the genre its a brasilian genre like samba, mpb, sertanejo, rock nacional, reggee nacional, etc, the regex from the container will be "Container.Music Brasil" or "Container.Music Songs Brasil", again you can decide how tss voice you want to use. This can be make for others country songs too, like  german songs for our friend Kalle. I only need to know the name of the genrs of this country to put this in the script.
I think this is all. Works very well for me and i thik works for James and Wanilton, i am not sure.
I am sorry for my bad english, i will explain this better in the portuguese section very soon. Now i am trying to put vox to control the PopCorn Hour and Dune HD Max, like we make with XBMC, i think will be possible to navigate, ask for musics and movies, maybe even pick up the feedback from PopCorn Hour.
Clayton
« Last Edit: July 31, 2012, 01:25:38 PM by claymic »

xtermin8r

  • $upporter
  • Sr. Member
  • *****
  • Posts: 366
  • Karma: 9
  • Crunchie
    • View Profile
@claymic
Brilliant stuff.
I have a couple of questions
1. is it true to think that the plugin is written in python ?
2. did you write the script yourself ?

Thanks.
« Last Edit: July 31, 2012, 01:33:33 PM by xtermin8r »
Neural Net Based Artificial Intelligence.

claymic

  • $upporter
  • Sr. Member
  • *****
  • Posts: 152
  • Karma: 0
    • View Profile
Mij
Sor James help me a lot to make this script, i am not a programmer. Thanks again James.
 Its in python, was not so hard to make this.
If dont work at the Fist Time, create a .txt file named infotemp.txt and put in the root of the VoxCommando. I forgot to say this.