FAQ  •  Register  •  Login

Tune In radio

<<

brotherman38

Serviio newbie

Posts: 4

Joined: Wed May 28, 2014 5:52 am

Post Thu May 29, 2014 10:07 am

Re: Tune In radio

Trying to use version 6 of this plugin but its not working for me I get no results returned, using the following urls?

http://tunein.com/radio/Indianapolis-r100041/
http://tunein.com/radio/Ft-Wayne-r100103/
http://tunein.com/radio/Atlanta-r100011/

I also tried this one that was listed as a test url in the plugin;

http://tunein.com/radio/London-United-K ... 780/?qlc=1

I'm adding these as audio web resources, Serviio is loading the TuneIn.groovy ok.

2014-05-28 19:54:42,842 INFO [PluginCompilerThread] Added Web Resouce plugin Tune In (TuneIn.groovy), version: 6
2014-05-28 19:55:06,298 INFO [FeedUpdaterThread] Started looking for information about online resources
2014-05-28 19:55:06,319 INFO [LibraryAdditionsCheckerThread] Started looking for newly added files
2014-05-28 19:55:06,325 INFO [LibraryUpdatesCheckerThread] Started looking for updates to currently shared files
2014-05-28 19:55:06,340 INFO [PlaylistMaintainerThread] Started looking playlist changes

Any help would be appreated, thanks for the effort.
<<

zip

User avatar

Serviio developer / Site Admin

Posts: 17212

Joined: Sat Oct 24, 2009 12:24 pm

Location: London, UK

Post Sat May 31, 2014 10:59 pm

Re: Tune In radio

Uploaded version 7, give that a try
<<

brotherman38

Serviio newbie

Posts: 4

Joined: Wed May 28, 2014 5:52 am

Post Fri Jun 06, 2014 6:26 pm

Re: Tune In radio

Thanks, working better now. Appreciate the update.
<<

andynw1

Serviio newbie

Posts: 1

Joined: Sun Jun 29, 2014 8:12 pm

Post Sun Jun 29, 2014 8:22 pm

Re: Tune In radio

I have installed version 1.4.1.2 on Nas4Free (freebsd) and so far all seems to work fine except for the plugins. I have added the tunein.groovy to the plugins folder ans it recognises it according to the log but then there is an error. On my Sony Bravia TV there is no content in the online folder. I have tried adding the URL in the console and I get "Error: Cannot read property '1' of undefined" . This also happens with every URL I have tried...
Serviio log:

  Code:

2014-06-29 22:06:43,685 INFO [LibraryAdditionsCheckerThread] Added file 'VTS_01_5.VOB' (title: VTS_01_5) to Library
2014-06-29 22:06:43,685 INFO [LibraryUpdatesCheckerThread] Updated 'VTS_01_1' (/mnt/media/video/Dantes Cove/Dantes Cove Season 2 Disc 1/VIDEO_TS/VTS_01_1.VOB) in Library
2014-06-29 22:06:43,383 INFO [SearchManager] Starting up search engine
2014-06-29 22:06:42,136 INFO [PlaylistMaintainerThread] Started looking playlist changes
2014-06-29 22:06:42,136 INFO [LibraryUpdatesCheckerThread] Started looking for updates to currently shared files
2014-06-29 22:06:42,136 INFO [LibraryAdditionsCheckerThread] Started looking for newly added files
2014-06-29 22:06:42,136 INFO [FeedUpdaterThread] Started looking for information about online resources
2014-06-29 22:06:40,122 INFO [BrowsingCategoriesMessages] Loaded browsing categories message bundle for locale: es
2014-06-29 22:06:39,774 INFO [ContentDirectoryDefinitionParser] Parsing ContentDirectory definition
2014-06-29 22:06:38,445 WARN [ServiioStatusService] Returning error code to the REST layer: Not Found (404) - The server has not found anything matching the request URI
2014-06-29 22:06:18,421 INFO [PluginCompilerThread] Added Web Resouce plugin Playlist extractor (Playlist.groovy), version: 1
2014-06-29 22:06:16,474 INFO [PluginCompilerThread] Added Web Resouce plugin Tune In (TuneIn.groovy), version: 7
2014-06-29 22:06:16,108 INFO [DiscoverySSDPMessageListener] Starting DiscoverySSDPMessageListener using interface em0 (em0) and address 192.168.1.202, timeout = 0
2014-06-29 22:06:16,104 INFO [RendererSearchSender] Searching for Renderer devices
2014-06-29 22:06:16,104 INFO [RendererExpirationChecker] Starting RendererExpirationChecker
2014-06-29 22:06:16,100 INFO [DiscoveryAdvertisementNotifier] Starting DiscoveryAdvertisementNotifier
2014-06-29 22:06:16,100 INFO [EventDispatcher] Starting EventDispatcher
2014-06-29 22:06:16,099 INFO [EventSubscriptionExpirationChecker] Starting EventSubscriptionExpirationChecker
2014-06-29 22:06:16,052 INFO [Device] Updated bound IP address of Device with UUID: 5276b898-372e-3245-aaf6-cf05d71f561e, bound address: 192.168.1.202
2014-06-29 22:06:16,052 INFO [WebServer] WebServer starting on port 8895
2014-06-29 22:06:16,027 INFO [AbstractTranscodingDeliveryEngine] Cleaning transcode engine and its data
2014-06-29 22:06:15,990 INFO [FFMPEGWrapper] Found FFmpeg: ffmpeg version 2.2.4 Copyright (c) 2000-2014 the FFmpeg developers
2014-06-29 22:06:15,961 INFO [UpdateChecker] Checking if a new version is available
2014-06-29 22:06:15,960 INFO [PluginCompilerThread] Started looking for plugins
2014-06-29 22:06:15,960 INFO [PluginCompilerThread] Looking for plugins at /usr/local/etc/serviio/plugins
2014-06-29 22:06:15,916 INFO [ProfilesDefinitionParser] Added profile 'Chromecast' (id=chromecast)
2014-06-29 22:06:15,915 INFO [ProfilesDefinitionParser] Added profile 'Windows Phone 8' (id=wp8)
2014-06-29 22:06:15,914 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (Google TV)' (id=serviigo_gtv)
2014-06-29 22:06:15,914 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (HLS)' (id=serviigo_hls)
2014-06-29 22:06:15,913 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (Legacy Devices)' (id=serviigo)
2014-06-29 22:06:15,913 INFO [ProfilesDefinitionParser] Added profile 'ServiiGo (Standard)' (id=serviigo_standard)
2014-06-29 22:06:15,912 INFO [ProfilesDefinitionParser] Added profile 'iOS' (id=ios)
2014-06-29 22:06:15,911 INFO [ProfilesDefinitionParser] Added profile 'Flash player' (id=flv_player)
2014-06-29 22:06:15,911 INFO [ProfilesDefinitionParser] Parsing Profiles definition
2014-06-29 22:06:15,875 INFO [ProfilesDefinitionParser] Added profile 'Xbox One' (id=xbox_one)
2014-06-29 22:06:15,874 INFO [ProfilesDefinitionParser] Added profile 'Telenet Yelo TV' (id=TNDC)
2014-06-29 22:06:15,874 INFO [ProfilesDefinitionParser] Added profile 'Yamaha BD-A1020/BD-A1010' (id=YamBD)
2014-06-29 22:06:15,873 INFO [ProfilesDefinitionParser] Added profile 'Roku Media Player' (id=RokuMPApp)
2014-06-29 22:06:15,872 INFO [ProfilesDefinitionParser] Added profile 'Chaneru' (id=roku)
2014-06-29 22:06:15,871 INFO [ProfilesDefinitionParser] Added profile 'Philips NP Streamium' (id=philips_streamium)
2014-06-29 22:06:15,871 INFO [ProfilesDefinitionParser] Added profile 'Panasonic BD player' (id=panasonicBDT220)
2014-06-29 22:06:15,870 INFO [ProfilesDefinitionParser] Added profile 'Windows 8/RT' (id=win8metro)
2014-06-29 22:06:15,869 INFO [ProfilesDefinitionParser] Added profile 'Vizio TV' (id=viziotv)
2014-06-29 22:06:15,868 INFO [ProfilesDefinitionParser] Added profile 'Sony Audio CMT' (id=SonyCMT)
2014-06-29 22:06:15,868 INFO [ProfilesDefinitionParser] Added profile 'Sony AVReceiver STR' (id=SonySTR)
2014-06-29 22:06:15,867 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2011) - US' (id=sony2011us)
2014-06-29 22:06:15,867 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2012) - US' (id=sony2012us)
2014-06-29 22:06:15,866 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera (2010)' (id=viera2010)
2014-06-29 22:06:15,866 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera E/S/ST/VT (2011)' (id=viera2011)
2014-06-29 22:06:15,865 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera G/GT/DT/UT/VT (2011/2012)' (id=viera2011a)
2014-06-29 22:06:15,865 INFO [ProfilesDefinitionParser] Added profile 'Panasonic Viera (2013)' (id=viera2013)
2014-06-29 22:06:15,864 INFO [ProfilesDefinitionParser] Added profile 'Denon AVR' (id=22)
2014-06-29 22:06:15,863 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2009)' (id=sony2009)
2014-06-29 22:06:15,863 INFO [ProfilesDefinitionParser] Added profile 'Philips (2009)' (id=20)
2014-06-29 22:06:15,862 INFO [ProfilesDefinitionParser] Added profile 'Philips (2010-)' (id=plps2010)
2014-06-29 22:06:15,862 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2010)' (id=sony2010)
2014-06-29 22:06:15,861 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2011)' (id=sony2011)
2014-06-29 22:06:15,860 INFO [ProfilesDefinitionParser] Added profile 'Sharp Aquos' (id=18)
2014-06-29 22:06:15,860 INFO [ProfilesDefinitionParser] Added profile 'Pure Flow' (id=17)
2014-06-29 22:06:15,860 INFO [ProfilesDefinitionParser] Added profile 'Manta WIFI Centre' (id=16)
2014-06-29 22:06:15,859 INFO [ProfilesDefinitionParser] Added profile 'LaCie LaCinema Media Player' (id=15)
2014-06-29 22:06:15,859 INFO [ProfilesDefinitionParser] Added profile 'WDTV Live' (id=14)
2014-06-29 22:06:15,857 INFO [ProfilesDefinitionParser] Added profile 'Toshiba REGZA 2012-' (id=tosh2012)
2014-06-29 22:06:15,856 INFO [ProfilesDefinitionParser] Added profile 'Toshiba REGZA' (id=13)
2014-06-29 22:06:15,856 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx80/SMP-N200 (2011)' (id=bdp2011)
2014-06-29 22:06:15,855 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx70/SMP-N100 (2010) - US' (id=bdp2010us)
2014-06-29 22:06:15,855 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx70/SMP-N100 (2010)' (id=bdp2010)
2014-06-29 22:06:15,853 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx90 (2012)' (id=bdp2012)
2014-06-29 22:06:15,852 INFO [ProfilesDefinitionParser] Added profile 'Sony BDP-Sx100 (2013)' (id=bdp2013)
2014-06-29 22:06:15,851 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2013)' (id=sony2013)
2014-06-29 22:06:15,850 INFO [ProfilesDefinitionParser] Added profile 'Sony Bravia TV (2012)' (id=sony2012)
2014-06-29 22:06:15,847 INFO [ProfilesDefinitionParser] Added profile 'LG TV / player' (id=8)
2014-06-29 22:06:15,847 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV / player (C/D-series)' (id=7)
2014-06-29 22:06:15,846 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV / player (E/F-series)' (id=sam_ef)
2014-06-29 22:06:15,844 INFO [ProfilesDefinitionParser] Added profile 'DirecTV HD-DVR' (id=6)
2014-06-29 22:06:15,843 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV (A-series)' (id=5)
2014-06-29 22:06:15,843 INFO [ProfilesDefinitionParser] Added profile 'Playstation 3' (id=4)
2014-06-29 22:06:15,842 INFO [ProfilesDefinitionParser] Added profile 'Xbox 360' (id=3)
2014-06-29 22:06:15,839 INFO [ProfilesDefinitionParser] Added profile 'Samsung TV (B-series)' (id=2)
2014-06-29 22:06:15,832 INFO [ProfilesDefinitionParser] Added profile 'Generic DLNA profile' (id=1)
2014-06-29 22:06:15,719 INFO [ProfilesDefinitionParser] Parsing Profiles definition
2014-06-29 22:06:15,496 INFO [MediaServer] ------------------------------------------------------------------------
2014-06-29 22:06:15,496 INFO [MediaServer] License: PRO (EVALUATION, id: 11111111-1111-1111-1111-111111111113)
2014-06-29 22:06:15,496 INFO [MediaServer] ------------------------------------------------------------------------
2014-06-29 22:06:15,370 INFO [Device] Created UPnP Device with UUID: 5276b898-372e-3245-aaf6-cf05d71f561e, bound address: 192.168.1.202
2014-06-29 22:06:14,451 INFO [DatabaseManager] Using DERBY database language
2014-06-29 22:06:14,445 INFO [DBSchemaUpdateExecutor] Checking if DB schema needs to be updated
2014-06-29 22:06:14,439 INFO [RestletServer] Starting Restlet server (/mediabrowser) exposed on port 23424
2014-06-29 22:06:14,439 INFO [RestletServer] Starting Restlet server (/cds) exposed on port 23424
2014-06-29 22:06:14,428 INFO [RestletServer] Starting Restlet server (/rest) exposed on port 23423
2014-06-29 22:06:14,424 INFO [WebServer] Socket buffer set to 65535 bytes
2014-06-29 22:06:14,421 INFO [MediaServer] ------------------------------------------------------------------------
2014-06-29 22:06:14,421 INFO [MediaServer] Temp dir: /tmp/
2014-06-29 22:06:14,421 INFO [MediaServer] User home dir: /usr/local/etc/serviio/prefs/
2014-06-29 22:06:14,421 INFO [MediaServer] User: dlna
2014-06-29 22:06:14,421 INFO [MediaServer] Headless mode enabled: true
2014-06-29 22:06:14,421 INFO [MediaServer] File encoding: ISO-8859-1
2014-06-29 22:06:14,421 INFO [MediaServer] OS FreeBSD amd64 9.2-RELEASE-p4
2014-06-29 22:06:14,421 INFO [MediaServer] Java 1.6.0_32-Sun Microsystems Inc.
2014-06-29 22:06:14,421 INFO [MediaServer]
2014-06-29 22:06:14,421 INFO [MediaServer] http://www.serviio.org
2014-06-29 22:06:14,421 INFO [MediaServer] Petr Nejedly 2009-2014
2014-06-29 22:06:14,421 INFO [MediaServer] Serviio DLNA media streaming server v 1.4.1.2 (rev. 3753eff81a2f+)
2014-06-29 22:06:14,421 INFO [MediaServer] ------------------------------------------------------------------------
2014-06-29 22:06:14,329 INFO [RestletProxy] Starting Serviio WebUI on port 8123
2014-06-29 22:06:14,328 INFO [RestletProxy] Starting WebUI
Dell Poweredge T20
CPU: Intel Xeon E3-1225 v3 @ 3.20GHz
Intel C226 series chipset
RAM: 4GB DDR3 ECC
Storage: 2x1TB ZFS Mirror + 2x500gb laptop drives
O/S: NAS4Free 9.2.0.1.972 -amd64 full, on 16Mb USB flash drive
<<

sleech

Serviio newbie

Posts: 2

Joined: Mon Jun 30, 2014 12:10 pm

Post Mon Jun 30, 2014 12:18 pm

Re: Tune In radio

Mornin' All

This is a bit of a Hail Mary attempt. I've got Serviio 1.4.1.2 on Fedora FC20 with openjdk7. I've just installed the TuneIn.groovy plugin version 7. When I add a web resource for any tunein radio station including the url example in the plugin, I get the following java error in serviio.log:

  Code:
2014-06-30 22:14:50,939 WARN  [FeedUpdaterThread] An error occured while parsing the online resource http://tunein.com/radio/RFI-Monde-890-s25629/, will try again soon: Unexpected error while invoking plugin (Tune In): Could not initialize class sun.security.util.SecurityConstants
org.serviio.library.online.metadata.OnlineResourceParseException: Unexpected error while invoking plugin (Tune In): Could not initialize class sun.security.util.SecurityConstants


Google, Fedora forums and OpenJDK forums say that this was a problem fixed at the beginning of the year. It occurs nowhere else for me.

Any clues? Do I need to add something to a CLASSPATH somewhere?

Thanks in advance.
<<

zip

User avatar

Serviio developer / Site Admin

Posts: 17212

Joined: Sat Oct 24, 2009 12:24 pm

Location: London, UK

Post Tue Jul 01, 2014 8:34 am

Re: Tune In radio

what Java version is printend in the log on the start of the server? Then check if you have the version that has the fix in.
<<

sleech

Serviio newbie

Posts: 2

Joined: Mon Jun 30, 2014 12:10 pm

Post Tue Jul 01, 2014 10:56 am

Re: Tune In radio

Thanks. It was the one thing I should have checked.

A package update and all is work fine now. Thanks again.
<<

Wasabi

Serviio newbie

Posts: 1

Joined: Sat Dec 06, 2014 4:21 pm

Post Sat Dec 06, 2014 4:37 pm

Re: Tune In radio

zip wrote:Uploaded version 7, give that a try


Hello everyone,

I have been looking for the plugin download in other to stream radio such as:
http://sradio.tv/asx/1831.asx
or
http://sradio.tv/stream/1831.m3u

Would you please show some information about the subject.

Thank you.
<<

h8spaCec4EspUdE

Serviio newbie

Posts: 4

Joined: Fri Jan 30, 2015 3:06 pm

Post Fri Jan 30, 2015 3:09 pm

Re: Tune In radio

How should I edit the plugin so it retrieves radio name with unicode and display properly?
<<

Satjit

Serviio newbie

Posts: 10

Joined: Sat Jun 16, 2012 6:34 pm

Post Sun Feb 08, 2015 11:22 am

Re: Tune In radio

How do I add / get 'Soma FM' stations listed, using the URL?
<<

operagost

Serviio newbie

Posts: 10

Joined: Mon Jun 30, 2014 2:53 am

Post Thu Sep 03, 2015 2:01 am

Re: Tune In radio

I can no longer get the plugin to return any results except for local radio.

For example, this works: http://tunein.com/radio/search/12345/ (where 12345 is a zip code)

Anything else does not. Examples:
http://tunein.com/radio/Rock-c57951/
http://tunein.com/radio/Jazz-c57944/
http://tunein.com/radio/Soul-and-RB-c1367173/

I checked, and those are still valid URLs on the site.
<<

MarcB

Streaming enthusiast

Posts: 31

Joined: Thu Nov 26, 2015 7:21 pm

Post Thu Nov 26, 2015 7:29 pm

Re: Tune In radio

I'm having the same issue with the plugin. I have version 7 of the plugin and I've tried adding 3 different tunein links but they don't play.

http://tunein.com/radio/1025-KZOK-s26820
http://tunein.com/radio/KPLU-885-s44526
http://tunein.com/radio/KIRO-Radio-973-FM-s31855

The sources show in the online list. They are added as "Web Resource", and they are media type "Audio".

If I add "http://tunein.com/radio/London-United-Kingdom-r100780/?qlc=1" serviio DOES give me a list of stations, so it seems that individual stations won't play but a query will render a list of stations that DOES play.

Is this something I'm doing wrong, is it a bug, or ???

Thank you!

Marc
<<

zip

User avatar

Serviio developer / Site Admin

Posts: 17212

Joined: Sat Oct 24, 2009 12:24 pm

Location: London, UK

Post Thu Dec 10, 2015 11:11 pm

Re: Tune In radio

It never worked for individual stations, only for station lists (or search results)
<<

fidmas

Serviio lover

Posts: 96

Joined: Thu Dec 17, 2015 8:29 pm

Post Thu Dec 17, 2015 9:16 pm

Re: Tune In radio

I recently downloaded Serviio and am having fun streaming to my Sony KLD-48W600B. However, the only Online Source I've been able to make work so far is Youtube channels. I realize I don't know what I'm doing, but I got TuneIn Radio to almost work. I had no success with the Tunin.groovy from the A.P.P .zip file. And limited success with the with the one from the first post of this thread.

I see Tunein.groovy versions 5, 6 and 7 mentioned in this thread. The .groovy from the A.P.P .zip has no version, and the one I got here looks like version 3. I think I need more help than just this. Can someone help me understand where to look for the latest (or correct) plugins?

Please/Thank-you Help!
<<

fidmas

Serviio lover

Posts: 96

Joined: Thu Dec 17, 2015 8:29 pm

Post Sat Dec 19, 2015 2:59 pm

Re: Tune In radio

Well, I'm starting to get the hang of this. I see I have to search the entire topic for the latest plugin, and that the A.P.P. zip file isn't updated. Correct? I see I'm using Version 7 ant most things are working. However, some folks seem to have gotten things like ".../search/?Query=..." to work. When I tried

http://tunein.com/search/?query=doowop

my Bravia gets "No items to display. Anyone have any ideas?
<<

fidmas

Serviio lover

Posts: 96

Joined: Thu Dec 17, 2015 8:29 pm

Post Sat Dec 19, 2015 8:59 pm

Re: Tune In radio

After playing with VALID_FEED_URL for a while, I think I see why

http://tunein.com/search/?query=doowop

can never work. The VALID_FEED_URL looks much like a RegEx and we're trying to match "http://tunein.com/search/?query=" but

http://tunein.com/search/?query= by itself is not a valid URL.

I would very much appreciate it if someone could confirm this, or at least comment.

Or, am I talking to myself? Anyone out there?
<<

jhb50

DLNA master

Posts: 2843

Joined: Thu Jun 30, 2011 9:32 pm

Post Sat Dec 19, 2015 11:10 pm

Re: Tune In radio

The lastest version (7) is in the first post.
APP is and always will be out of date. It should never have been offered.
Just use per the rules in post #1
<<

fidmas

Serviio lover

Posts: 96

Joined: Thu Dec 17, 2015 8:29 pm

Post Sat Dec 19, 2015 11:23 pm

Re: Tune In radio

Thanks. The .groovy attached to the first post is "always" the latest, for any plugin then??
<<

jhb50

DLNA master

Posts: 2843

Joined: Thu Jun 30, 2011 9:32 pm

Post Sun Dec 20, 2015 3:35 am

Re: Tune In radio

fidmas wrote:Thanks. The .groovy attached to the first post is "always" the latest, for any plugin then??


It should be. That is by convention, but its up to the author to stick to it. Also if others modify the authors plugin they will post within the thread because they cannot access the authors first post.

Note that most of the plugins no longer work because its too hard to keep them up to date because of changes in theb web source pages and the efforts of those authors to stop people from "stealing" their streams which they generate revenue with.
<<

fidmas

Serviio lover

Posts: 96

Joined: Thu Dec 17, 2015 8:29 pm

Post Sun Dec 20, 2015 2:59 pm

Re: Tune In radio

Oh... I see... Then, am I correct in assuming that if I would like a URL like http://tunein.com/search/?query=kiss%20fm%20955" to work, I would need to learn how to code in groovy, and do it myself? I don't speak groovy, but I did find the commented test line below in Tunin.groovy, implying that someone had that URL format working at one time.

  Code:
//WebResourceContainer container = extractor.extractItems( new URL("http://tunein.com/search/?query=kiss%20fm%20955"), -1)
PreviousNext

Return to Available plugins

Who is online

Users browsing this forum: No registered users and 18 guests

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.