Ok Mossy, I've implemented dnsmasq as you suggested, and removed the standard DNS configuration from Raspbmc.
As far as I can tell, RTE live stream & catch-up (including geoblocked shows) still work as normal, so the SmartDNS is being used for these.
For AerTV, I still have the timeout error. Checking the log, brightcove recognizes my foreign location and denies access. Correct me if I'm wrong, but if brightcove host the stream service and do the geolocation check, there's no way to use dnsmasq to distinguish between the two requests? In reality, I think AerTV / Brightcove have figured out a way to block SmartDNS.
EDIT: Maybe I'm searching in the wrong place, I'm getting a login failed error for AerTV Plus. I'm sure I have my correct email/password...any ideas how I can check?
Code:
22:17:46 T:2877289536 NOTICE: -->Python Interpreter Initialized<--
22:17:50 T:2877289536 NOTICE: <module> : 'Loading cookies from :u'/home/pi/.xbmc/userdata/addon_data/plugin.video.irishtv/cookiejar.txt''
22:17:50 T:2877289536 NOTICE: setGetFromCache : 'self: <httpmanager.HttpManager instance at 0x3fd52d8>'
22:17:50 T:2877289536 NOTICE: setGetFromCache : 'setGetFromCache(True)'
22:17:50 T:2877289536 NOTICE: InitialiseHTTP : 'proxy_method: 0'
22:17:50 T:2877289536 NOTICE: ParseCommand : 'urlRoot: http://www.rte.ie, page: /player/ie/live/8/'
22:18:00 T:3040645120 NOTICE: COMXPlayer: Opening: rtmp://fmsod.rte.ie/live/ app=live playpath=rte1 swfurl=http://www.rte.ie/static/player/swf/osmf2_2013_06_25b.swf swfvfy=true live=true
22:18:00 T:3040645120 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
22:18:00 T:2768237632 NOTICE: Thread COMXPlayer start, auto delete: false
22:18:00 T:2768237632 NOTICE: Creating InputStream
22:18:00 T:2768237632 ERROR: rtmp server sent error
22:18:01 T:2768237632 NOTICE: Creating Demuxer
22:18:01 T:2768237632 NOTICE: Metadata:
22:18:01 T:2768237632 NOTICE: startDate 10-04-2014
22:18:01 T:2768237632 NOTICE: startTime 04:00:13:00
22:18:01 T:2768237632 NOTICE: sourcetype KulaByte Encoder 3.2 rev6401
22:18:01 T:2768237632 NOTICE: presetname rte1uni
22:18:01 T:2768237632 NOTICE: videocodecid avc1
22:18:01 T:2768237632 NOTICE: framerate 25.00
22:18:01 T:2768237632 NOTICE: width 512.00
22:18:01 T:2768237632 NOTICE: height 288.00
22:18:01 T:2768237632 NOTICE: videodatarate 448.00
22:18:01 T:2768237632 NOTICE: avcprofile 77.00
22:18:01 T:2768237632 NOTICE: avclevel 30.00
22:18:01 T:2768237632 NOTICE: videokeyframe_frequency0.00
22:18:01 T:2768237632 NOTICE: audiocodecid aac
22:18:01 T:2768237632 NOTICE: audiosamplerate 48000.00
22:18:01 T:2768237632 NOTICE: audiochannels 2.00
22:18:01 T:2768237632 NOTICE: audiodatarate 64.00
22:18:01 T:2768237632 NOTICE: audioinputvolume 0.00
22:18:02 T:2768237632 NOTICE: Opening video stream: 0 source: 256
22:18:02 T:2768237632 NOTICE: Creating video thread
22:18:02 T:2689594432 NOTICE: Thread COMXPlayerVideo start, auto delete: false
22:18:02 T:2768237632 NOTICE: Opening audio stream: 1 source: 256
22:18:02 T:2768237632 NOTICE: Creating audio thread
22:18:02 T:2681205824 NOTICE: Thread COMXPlayerAudio start, auto delete: false
22:18:03 T:2768237632 NOTICE: OMXClock using audio as reference
22:18:03 T:2689594432 NOTICE: Display resolution DESKTOP : 1920x1080 @ 60.00 - Full Screen (16)
22:18:04 T:3040645120 NOTICE: Using GL_TEXTURE_2D
22:18:04 T:3040645120 NOTICE: GL: Using BYPASS render method
22:18:04 T:3040645120 NOTICE: GL: NPOT texture support detected
22:18:07 T:3040645120 NOTICE: COMXPlayer::CloseFile
22:18:07 T:3040645120 NOTICE: COMXPlayer: waiting for threads to exit
22:18:07 T:2768237632 NOTICE: COMXPlayer::OnExit()
22:18:07 T:2768237632 NOTICE: OMXPlayer: closing audio stream
22:18:07 T:2768237632 NOTICE: Closing audio stream
22:18:07 T:2681205824 NOTICE: thread end: OMXPlayerAudio::OnExit()
22:18:07 T:2768237632 NOTICE: OMXPlayer: closing video stream
22:18:07 T:2768237632 NOTICE: Closing video stream
22:18:07 T:2689594432 ERROR: OMXPlayerVideo: Got MSGQ_IS_ERROR(-1) Aborting
22:18:07 T:2689594432 NOTICE: thread end: video_thread
22:18:07 T:2768237632 NOTICE: COMXPlayer::OnExit() deleting demuxer
22:18:07 T:2768237632 NOTICE: COMXPlayer::OnExit() deleting input stream
22:18:07 T:3040645120 NOTICE: DVDPlayer: finished waiting
22:18:08 T:2768237632 NOTICE: Thread Background Loader start, auto delete: false
22:18:08 T:3040645120 NOTICE: COMXPlayer::CloseFile
22:18:08 T:3040645120 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
22:18:08 T:3040645120 NOTICE: COMXPlayer: waiting for threads to exit
22:18:08 T:3040645120 NOTICE: DVDPlayer: finished waiting
22:18:08 T:2877289536 NOTICE: _Cache_GetFromFlag : '_Cache_GetFromFlag() - gotFromCache = False'
22:18:10 T:2714760256 NOTICE: Thread Background Loader start, auto delete: false
22:18:10 T:2877289536 NOTICE: Thread Jobworker start, auto delete: true
22:18:11 T:2714760256 NOTICE: Thread Background Loader start, auto delete: false
22:18:13 T:2714760256 NOTICE: Thread XBPyThread start, auto delete: false
22:18:14 T:2714760256 NOTICE: -->Python Interpreter Initialized<--
22:18:20 T:2714760256 NOTICE: <module> : 'Loading cookies from :u'/home/pi/.xbmc/userdata/addon_data/plugin.video.irishtv/cookiejar.txt''
22:18:20 T:2714760256 NOTICE: setGetFromCache : 'self: <httpmanager.HttpManager instance at 0x39b48a0>'
22:18:20 T:2714760256 NOTICE: setGetFromCache : 'setGetFromCache(True)'
22:18:20 T:2714760256 NOTICE: InitialiseHTTP : 'proxy_method: 0'
22:18:26 T:2714760256 ERROR: GetHTTPResponse : 'URLError: <urlopen error timed out>'
22:18:26 T:2714760256 NOTICE: _Cache_GetFromFlag : '_Cache_GetFromFlag() - gotFromCache = False'
22:18:26 T:2714760256 WARNING: fromException : 'URLError(timeout('timed out',),)'
22:18:26 T:2714760256 WARNING: Login : 'AerTV login failed'
22:18:26 T:2714760256 WARNING: : 'Traceback (most recent call last):
File "/home/pi/.xbmc/addons/plugin.video.irishtv/aertv.py", line 266, in AttemptLogin
loginJSONText = self.httpManager.GetWebPageDirect(url, logUrl = logUrl)
File "/home/pi/.xbmc/addons/plugin.video.irishtv/httpmanager.py", line 326, in GetWebPageDirect
return self.GetWebPage(url, 0, values, headers, logUrl)
File "/home/pi/.xbmc/addons/plugin.video.irishtv/httpmanager.py", line 320, in GetWebPage
return self.GetURL( url, maxAge, values, headers, logUrl )
File "/home/pi/.xbmc/addons/plugin.video.irishtv/httpmanager.py", line 539, in GetURL
data, responseMaxAge = self._GetURL_NoCache( url, values, headers, logUrl)
File "/home/pi/.xbmc/addons/plugin.video.irishtv/httpmanager.py", line 390, in _GetURL_NoCache
response = self.GetHTTPResponse(url, values, headers, logUrl)
File "/home/pi/.xbmc/addons/plugin.video.irishtv/httpmanager.py", line 494, in GetHTTPResponse
raise exception
URLError: <urlopen error timed out>
'
22:18:29 T:2714760256 NOTICE: LogLoginInfo : 'is_paid_subscriber: 1'
22:18:29 T:2714760256 NOTICE: LogLoginInfo : 'login: True'
22:18:29 T:2714760256 NOTICE: LogLoginInfo : 'status: 1'
22:18:29 T:2714760256 NOTICE: LogLoginInfo : 'status: [
{
u'code': u'AERTV_PLUS',
u'desc': u'Aertv Plus',
u'package_id': u'6'
},
{
u'code': u'WEB_STD',
u'desc': u'Free Channel Pack',
u'package_id': u'1'
}
]'
22:18:35 T:2714760256 NOTICE: _Cache_GetFromFlag : '_Cache_GetFromFlag() - gotFromCache = False'
22:18:35 T:2681205824 NOTICE: Thread Background Loader start, auto delete: false
22:18:39 T:2768237632 NOTICE: Thread XBPyThread start, auto delete: false
22:18:39 T:2768237632 NOTICE: -->Python Interpreter Initialized<--
22:18:44 T:2768237632 NOTICE: <module> : 'Loading cookies from :u'/home/pi/.xbmc/userdata/addon_data/plugin.video.irishtv/cookiejar.txt''
22:18:44 T:2768237632 NOTICE: setGetFromCache : 'self: <httpmanager.HttpManager instance at 0xa1d19ee0>'
22:18:44 T:2768237632 NOTICE: setGetFromCache : 'setGetFromCache(True)'
22:18:44 T:2768237632 NOTICE: InitialiseHTTP : 'proxy_method: 0'
22:18:47 T:2768237632 NOTICE: LogLoginInfo : 'is_paid_subscriber: 1'
22:18:47 T:2768237632 NOTICE: LogLoginInfo : 'login: True'
22:18:47 T:2768237632 NOTICE: LogLoginInfo : 'status: 1'
22:18:47 T:2768237632 NOTICE: LogLoginInfo : 'status: [
{
u'code': u'AERTV_PLUS',
u'desc': u'Aertv Plus',
u'package_id': u'6'
},
{
u'code': u'WEB_STD',
u'desc': u'Free Channel Pack',
u'package_id': u'1'
}
]'
22:18:48 T:2768237632 NOTICE: PlayChannel : 'json data:{u'player': u'Get player here from post ', u'flag': u'new', u'data': {u'free': True, u'appStreamUrl': u'', u'show': u'Ceili\xfaradh (Celebration)', u'playerId': u'1454761980001', u'publisherId': u'1242843906001', u'streamname': u'', u'videoId': u'rte-one', u'auth': True, u'post_id': u'17', u'internal': u'off', u'freebie': True, u'magonly': False, u'playerKey': u'AQ~~,AAABIV9E_9E~,lGDQr89oSbKT02RqV22r-E007AitVINH', u'channel': u'RT\xc9 One'}}'
22:18:48 T:2768237632 NOTICE: BuildAmfRequest : 'ContentRefId:rte-one, ExperienceId:1454761980001, URL:http://www.aertv.ie/#rte-one'
22:18:48 T:2768237632 NOTICE: BuildAmfRequest : 'hashValue:a7ef6ffbfba938b174f5044af3343163a0877c48'
22:18:48 T:2768237632 NOTICE: BuildAmfRequest : 'contentType: 0, contentId: None, target: videoPlayer, contentIds: None, contentRefId: rte-one, contentRefIds: None, contentType: 0, featureId: 0.0, featuredRefId: None, '
22:18:48 T:2768237632 NOTICE: BuildAmfRequest : 'TTLToken: , URL: http://www.aertv.ie/#rte-one, deliveryType: 0.0, contentOverrides: [<brightcove.ContentOverride object at 0x3fbb710>], experienceId: 1454761980001, playerKey: AQ~~,AAABIV9E_9E~,lGDQr89oSbKT02RqV22r-E007AitVINH'
22:18:49 T:2768237632 NOTICE: PostBinary : 'headers: {'DNT': '1', 'content-type': 'application/x-amf', 'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'}'
22:18:50 T:2768237632 NOTICE: PlayChannel : ' channel: rte-one'
22:18:50 T:2768237632 NOTICE: _Cache_GetFromFlag : '_Cache_GetFromFlag() - gotFromCache = False'
22:18:50 T:2768237632 ERROR: fromException : 'KeyError(u'name',)'
22:18:50 T:2768237632 ERROR: GetStreamUrl : 'self.amfResponse:
{
'code': u'SERVER.PROCESSING',
'description': u'The video you are trying to watch cannot be viewed from your current country or location.',
'details': u'com.brightcove.templating.RestrictedGeographyException: The video you are trying to watch cannot be viewed from your current country or location.',
'level': u'error',
'message': u'com.brightcove.templating.RestrictedGeographyException : The video you are trying to watch cannot be viewed from your current country or location.',
'type': u'com.brightcove.templating.RestrictedGeographyException'
}
'
22:18:50 T:2768237632 ERROR: PlayChannel : 'Error getting rtmp url'
22:18:50 T:2768237632 ERROR: PlayChannel : 'jsonData:
{"player":"Get player here from post ","data":{"post_id":"17","freebie":true,"auth":true,"magonly":false,"channel":"RT\u00c9 One","internal":"off","streamname":"","free":true,"videoId":"rte-one","publisherId":"1242843906001","playerId":"1454761980001","playerKey":"AQ~~,AAABIV9E_9E~,lGDQr89oSbKT02RqV22r-E007AitVINH","appStreamUrl":"","show":"Ceili\u00faradh (Celebration)"},"flag":"new"}
'
22:18:50 T:2768237632 ERROR: PlayChannel : 'Error getting rtmp url'
22:18:50 T:2768237632 ERROR: : 'Traceback (most recent call last):
File "/home/pi/.xbmc/addons/plugin.video.irishtv/brightcove.py", line 72, in GetStreamUrl
name = self.amfResponse[u'name']
KeyError: u'name'
'
22:19:01 T:2768237632 NOTICE: _Cache_GetFromFlag : '_Cache_GetFromFlag() - gotFromCache = False'