Wednesday, 2015-01-21

*** tpb has joined #timvideos00:00
MaZderMindmithro: take a look at for an example using signals00:03
tpbTitle: MaZderMind/dbus-signal · GitHub (at
MaZderMind(it's linked from the issue comment)00:03
MaZderMindi can to the rework of the dbus code, just want an opi ion on it before running in the wrong way00:04
mithroMaZderMind: sounds like the right direction from what I can see00:10
mithrobut I haven't looked really closely00:10
mithroand am not an expert on dbus00:10
mithroMaZderMind / LeeS: regarding the travis test failures00:10
mithroI think one of the issues is that audio error is causing us to close the audio port00:11
*** LeeS has quit IRC00:12
*** grvanm has joined #timvideos00:17
grvanmHello , Can anyone guide me ?00:18
mithrogrvanm: with what?00:20
grvanmI want to start contributing , so i need help about how to start ? :)00:20
mithrogrvanm: the TimVideos project has many different projects - is there one you are interested in contributing too?00:28
mithroThere is a lot of issues you can "get started with" at
tpbTitle: Issues · timvideos/getting-started · GitHub (at
*** hyades has joined #timvideos00:34
*** LeeS has joined #timvideos00:36
grvanmThanks :)01:00
grvanmWill look into it :)01:00
CarlFKgrvanm: my personal choice: install gst-switch and try to run it01:13
CarlFKif you know C or gstreamer, you can ponder/fix the problems you run into01:14
grvanmThanks :)01:15
grvanmAny problems in python ?01:20
grvanmI am more familiar with python , javascript , CSS , Jquery01:21
CarlFKknow anything about google's oauth?01:23
techman83CarlFK, What trouble are you having with OAuth?01:24
CarlFKmanaging the credentials in my own secrets store01:24
techman83Hmm, I just use a library that take cares of all the hard bits01:25
CarlFKdoes it create a .json file?01:25
xfxfyo CarlFK, techman8301:26
techman83Well I generally take care of handling the tokens01:26
CarlFKxfxf: hey01:26
techman83But it can do it via one of it's methods01:26
techman83xfxf, yo01:26
CarlFKtechman83: the lib I am using won't let me.  I give it the key? (I think that's what it is called) and it some how creates a .josn file.01:27
techman83which lib are you using?01:27
xfxfCarlFK: clearly the answer here is to os.system() out to a perl script01:28
CarlFKum... I think this:
tpbTitle: google/oauth2client · GitHub (at
CarlFKassuming that is what this uses:
tpbTitle: api-samples/ at master · youtube/api-samples · GitHub (at
CarlFKcuz I cut/pasted most of to make
tpbTitle: veyepar/ at master · CarlFK/veyepar · GitHub (at
tpbTitle: OAuth 2.0 - Google APIs Client Library for Python Google Developers (at
techman83In theory that client secrets file can be a full path01:42
techman83guessing that's the trouble you're having?01:43
CarlFKno, I don't want it to deal with the file.  I want to pass the values as parameters01:44
tpbTitle: Using Django - Google APIs Client Library for Python Google Developers (at
CarlFKcuz I need the client secrets file for the app, then one token file? (or some file) for each account: test, me, lca, pycon, chipy, Node... I have like 10 .json files floating around01:45
techman83Thing is, you need to keep track of the tokens01:45
techman83as they need refreshing01:46
CarlFKright.  I want to put them in the same place I put my twitter, email, schedule, vimeo, archive, and whatever other auth stuff I am managing01:47
CarlFKI 'could' create/destroy the .json file as needed, but that;s a damm hack in a half.01:47
techman83it can be done in Django by the looks.01:48
techman83you could pass the token string to the script, but then you have the token string at the end to use next time01:48
LeeSSorry for the delay; but I think I have fixed the failing test. Unfortunately; the PEP8 test failed on my last commit so I'm just pushing a fix for that.01:49
techman83break all the things!01:49
CarlFKim not sure i want the auth stuff stored in my db - the db security is pretty lax01:49
LeeSYAY techman83 - We think alike01:50
*** grvanm has quit IRC01:55
tpbTitle: Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community (at
* techman83 high five!02:14
LeeS*high ten*02:15
*** hyades has quit IRC02:45
*** Niharika has joined #timvideos02:48
*** tvCommitBot has joined #timvideos02:53
tvCommitBot[gst-switch] leesdolphin opened pull request #176: Fixing Failing test(`TestGetPreviewPorts::test_get_preview_ports`) (master...fixing-preview-ports)
*** tvCommitBot has left #timvideos02:53
mithroLeeS: so the failure case is flaky02:58
mithroLeeS: sometimes it passes fine, sometimes it fails02:58
mithroLeeS: see for example02:58
tpbTitle: Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community (at
LeeSI think it was that the server couldn't keep up; so it ran the python code to get the ports before the process to provide the port was up.02:58
mithroLeeS: so you need to run it 4-5 times to see if it passes every time02:59
LeeS*Bashes keyboard*02:59
LeeSOh, Ok. I was all excited that I had fixed it.03:00
mithroLeeS: flaky failures are the *worst* :(03:00
LeeSWell, I'm just thinking I was looking at the logs; and I think the sleep helped(as in the server was started during the 0.1 second sleep). Let me check03:01
mithroLeeS: sleeps are always bad in tests because all it takes for the test to start failing is things get a little slower03:01
LeeSTrue. I guess the only other option is to wait until the process has properly started before continuing the execution. As for how; I'm not too sure03:02
techman83Does the process open a port?03:03
mithroLeeS: I think we should probably make test_sources should understand the pipeline state03:04
LeeSYeah; That would solve a lot of problems.03:04
mithroLeeS: you should just be able to add a method to VideoSrc/AudioSrc in which gets that status from the pipeline03:07
mithro        self.assertEqual(self.pipeline.get_state()[1], gst.STATE_NULL)03:08
mithroLeeS: actually, give me a second and I'll push an exmaple03:09
mithroLeeS: something like this ->
tpbTitle: Temp commit. · f288782 · mithro/gst-switch · GitHub (at
mithroanyway, back to work for me03:15
MaZderMindCarlFK: did you take a look at the voc youtube client? it does exactly what you want.03:59
MaZderMindCarlFK: is what's running at
tpbTitle: YouTube OAuth Collector (at
MaZderMindCarlFK: we send it to the organizers of conferences. they can allow us to publish to their channel and this script stores the required token in a file on the server and notifies us via mail04:02
MaZderMindwe're just storing the refresh-token, since everything can be derived from that04:03
MaZderMind does that04:03
tpbTitle: scripts/ at master · voc/scripts · GitHub (at
*** hyades has joined #timvideos04:03
MaZderMindit requests an access-token for the refresh-token, creates a video, uploads video-data, creates playlists…04:04
MaZderMindthat's what we used at the {04:04
MaZderMind31C3 (minus the playlist-part which is a bit flaky)04:05
CarlFKMaZderMind: it's the "stores the required token in a file " that I am trying to avoid04:17
CarlFKbasically I keep all my secrets on my local box, and create a subset when needed to put on the box that contains the files to upload04:20
MaZderMindCarlFK: that would be the access-token. It is only valid 3600 minutes04:31
CarlFKMaZderMind:   that's only 3 days.  I'v been using the same thing for over a week.04:34
MaZderMindCarlFK: yes, that's the reason we based our upload on the refresh-token and request a new access-token for each upload04:36
MaZderMindYou're looking for an intermediate layer between the all-time refresh-token and the short-time access-token as far as I understand04:37
MaZderMindWhat you could do is just use the refresh-token and after the Conference disallow the Application from accessing the Channel. The refresh-token becomes invalid then.04:38
CarlFKim not sure what the data is called, I just don't like that it is stored in a file04:39
CarlFKit is data I should be able to pass in and get back as parameters to functions, and my application code is responsible for storing it somewhere04:39
MaZderMindI'm sorry to again point this out - the voc uploader doesn ot use any oath-specific libs, it just uses python requests. It actually does not read any file, it get'S the token passed in from our recording-ticket-system04:41
MaZderMindthe file is just an intermediate stage so the token does not get sent by email -- the email just points to the file on the server and sais 'get it there'04:41
techman83So it requests the new token based off the refresh token and adds the bearer stuff to the upload headers04:42
CarlFKsounds like you are passing a file around via urls and http, when I want to pass parameters?04:44
MaZderMindCarlFK: please take a look at - there is no file involved despite the video-file. The refresh-token comes in as ticket['Publishing.YouTube.Token']04:54
tpbTitle: scripts/ at master · voc/scripts · GitHub (at
CarlFKMaZderMind: what code calls youtubeUrls = publish_youtube(ticket, config['youtube']['secret'])05:12
CarlFKor, what is config['youtube']['secret'] ?05:12
CarlFKsame for          #             setTicketProperties(ticket_id, {'YouTube.Url'+str(i): youtubeUrl}, url, group, host, secret)05:12
CarlFKfound it:
tpbTitle: scripts/ at master · voc/scripts · GitHub (at
MaZderMindCarlFK: this is the communication with our recording-tracking-system (ticket-tracker)05:22
MaZderMindit handles each talk as a ticket that can traverse multiple states, each state associated with a script to run05:23
CarlFKyeah, thats what veyepar does too05:23
MaZderMindconfig['youtube']['secret'] is one of the values you get when registering a YouTube-App: you'll get a clientid and a secret05:23
MaZderMindthey will never change, so - yes - we store them in config files :/05:24
MaZderMindforgot about that fact05:24
CarlFKwell, that's one of the wads of data I want to manage, so that's a step in the right direction05:27
*** sharebrained has quit IRC05:30
*** sharebrained has joined #timvideos05:30
CarlFKMaZderMind: this is the data I am trying to manage:  oauth2-test.json05:34
tpbTitle: Ubuntu Pastebin (at
CarlFKwhere does that live?05:35
MaZderMindCarlFK: in our setting the uploader resides on a machine controlled by us with a config-file that contains the parts that never change (client_id & client_secret)05:40
MaZderMindall stuff that changes from conference to conference comes from the tracker (refresh_token)05:40
MaZderMindthe remaining things can be created from the three values above (refresh_token, refresh_token) or from shared knowledge (token_uri, token_uri)05:41
CarlFK309 def youtubeFromTracker():05:46
CarlFK310     try:05:46
CarlFK311         youtubeUrls = publish_youtube(ticket, config['youtube']['client_id']    , config['youtube']['secret'])05:46
CarlFKwhere did ticket come from?05:46
CarlFKit sounds like I am looking for the part that does: "all stuff that changes from conference to conference comes from the tracker (refresh_token)"05:47
MaZderMindticket is fetched from the tracker by an XML-RPC call. it contains the information we have fo that ticket overlayed on the information we have for that conference. the latter contains the refresh-token.05:49
CarlFKI get the feeling I am looking at the parameters being passed in, then passed on to youtube.  which is what I am interest in, but I can't tell what the parameter is05:53
CarlFKx = json.load(file('oauth2-test.json'))  ... is that x part of ticket?05:58
*** techdragon has quit IRC06:32
*** techdragon has joined #timvideos06:35
MaZderMindCarlFK: x contains everything - the none-changeable information (client_id, client_secret), thae information that changes with channels (refresh_token) AND the disposable temporary information (access_token)07:09
CarlFKMaZderMind: that didn't answer my question.  the values in x seem to be what I need to upload videos.  in the code you use, where are they retrieved from? x07:17
CarlFKI am guessing I wan to do something similar, but im having trouble seeing the details I need07:18
MaZderMindCarlFK: to actually upload a video you need client_id (never changes), client secret (never changes) and an access_token (is only 360 min valid and bound to a specific channel)07:20
MaZderMindthe parts that never change are - in our setup - stored in a config-file on the machine that does the upload07:21
MaZderMindit's how the upload-script verifies its identity to youtube07:21
MaZderMindthe access_token is not stored anywhere, it's derived from the refresh_token on demand07:22
CarlFKwhere is the code that does: derived from the refresh_token on demand07:22
MaZderMindthe refesh_token is what we get from
tpbTitle: YouTube OAuth Collector (at
MaZderMindaccessToken = getFreshToken(ticket['Publishing.YouTube.Token'], clientId, clientSecret)07:22
tpbTitle: scripts/ at master · voc/scripts · GitHub (at
*** 7GHAAMO5N has quit IRC07:24
*** 1JTAAD3TU has joined #timvideos07:26
CarlFKswell.. now I have more questions ;)07:29
CarlFKcan you switch back and forth between 2 channels?  (I am guessing when the 2nd channel is setup it replaces the first, so you only have a current channel to upload to, right?)07:32
*** techdragon has quit IRC07:36
*** techdragon has joined #timvideos07:46
*** slomo has joined #timvideos08:02
*** slomo has joined #timvideos08:02
MaZderMindCarlFK: with out setup we can release to multiple channels simultaniously08:07
MaZderMindCarlFK: just use another refresh_token (which is bound to another channel)08:08
MaZderMindif you like we can do a quick phone/mumble call to clarify your questions08:08
CarlFKhmm.. not now.  its midnight at my mom's house, don't want to wake anyone.08:09
CarlFKim still not seeing how things are stored (refresh_token is maybe all I care bout)08:09
CarlFKand if you can store many of them, then you need some way to identify which to retrieve.  which I don't see either08:10
MaZderMindthe tracker calls the upload-script with one ticket for it to be uploaded. after this, the script exits08:16
MaZderMindin this call from the tracker is all the state script needs08:17
MaZderMindstate = video-filename, meta-data, refresh_token08:17
CarlFKhmm.. I just tried and got
tpbTitle: YouTube OAuth Collector (at
CarlFKI was assuming I was going to get back "paste this string into your app"08:23
*** techdragon has quit IRC08:26
*** techdragon has joined #timvideos08:28
MaZderMindCarlFK: as I said it should save the credentials on the server and poke the team via e-mail.08:58
MaZderMindyou as invoker should never see the credentials08:59
*** Niharika has quit IRC09:51
*** Niharika has joined #timvideos09:53
*** Niharika has quit IRC09:58
xfxfCarlFK: yo, does your veyepar script work on latest LTS?10:34
xfxfit seems very broken10:34
shenkimithro: just rebooted hopper, fyi10:51
*** Niharika has joined #timvideos10:54
xfxfCarlFK: fixed it, but i need access to your veyepar instance so i can add my ip to allowed db's10:58
*** Niharika has quit IRC10:58
*** tvCommitBot has joined #timvideos11:19
tvCommitBot[gst-switch] leesdolphin opened pull request #177: Fixed a bug in `gstswitch.VideoPipeline` that adds the time overlay twice (master...fix-failing-unittests)
*** tvCommitBot has left #timvideos11:19
*** slomo_ has joined #timvideos11:38
*** slomo_ has joined #timvideos11:38
*** Niharika has joined #timvideos11:43
*** Niharika has quit IRC11:48
*** Niharika has joined #timvideos12:19
*** slomo__ has joined #timvideos12:26
*** slomo__ has joined #timvideos12:26
*** slomo has quit IRC12:29
*** slomo_ has quit IRC12:29
*** slomo has joined #timvideos13:48
*** slomo has joined #timvideos13:48
xfxfCarlFK: ping when you read this, need to get videos encoding13:58
xfxfcurrent ip is but that could change13:58
*** f15h has joined #timvideos14:53
CarlFKxfxf: pretty sure it works on LTS, whats broken?  and adding that IP/24, I knew there was something else16:26
CarlFKxfxf: ip block added, server restarted16:29
CarlFKand sipping perc coffee.  bleck.16:29
*** LeeS has quit IRC16:42
*** CarlFK has quit IRC17:27
*** slomo has quit IRC18:03
*** CarlFK has joined #timvideos18:10
*** ChanServ sets mode: +v CarlFK18:10
*** CarlFK has quit IRC18:45
*** Niharika has quit IRC18:45
*** hyades has quit IRC19:15
*** CarlFK has joined #timvideos19:35
*** ChanServ sets mode: +v CarlFK19:35
*** CarlFK has quit IRC19:50
*** LeeS has joined #timvideos21:02
*** f15h has quit IRC21:13
*** slomo__ has quit IRC21:37
*** test12345 has joined #timvideos22:38
test12345Hi Anyone der ?22:39
*** tvCommitBot has joined #timvideos22:45
tvCommitBot[gst-switch] mithro pushed 2 new commits to master:
tvCommitBotgst-switch/master 72b98af Lee Symes: Fixed a bug in `gstswitch.VideoPipeline` that adds the time overlay twice if both the time and clock overlay are enabled.22:45
tvCommitBotgst-switch/master 42cdae4 Tim Ansell: Merge pull request #177 from leesdolphin/fix-failing-unittests...22:45
*** tvCommitBot has left #timvideos22:45
*** test12345 has quit IRC23:00

Generated by 2.13.1 by Marius Gedminas - find it at!