*** tpb has joined #timvideos | 00:00 | |
MaZderMind | mithro: take a look at https://github.com/MaZderMind/dbus-signal for an example using signals | 00:03 |
---|---|---|
tpb | Title: MaZderMind/dbus-signal · GitHub (at github.com) | 00:03 |
MaZderMind | (it's linked from the issue comment) | 00:03 |
MaZderMind | i can to the rework of the dbus code, just want an opi ion on it before running in the wrong way | 00:04 |
mithro | MaZderMind: sounds like the right direction from what I can see | 00:10 |
mithro | but I haven't looked really closely | 00:10 |
mithro | and am not an expert on dbus | 00:10 |
mithro | MaZderMind / LeeS: regarding the travis test failures | 00:10 |
mithro | I think one of the issues is that audio error is causing us to close the audio port | 00:11 |
*** LeeS has quit IRC | 00:12 | |
*** grvanm has joined #timvideos | 00:17 | |
grvanm | Hello , Can anyone guide me ? | 00:18 |
mithro | grvanm: with what? | 00:20 |
grvanm | I want to start contributing , so i need help about how to start ? :) | 00:20 |
mithro | grvanm: the TimVideos project has many different projects - is there one you are interested in contributing too? | 00:28 |
mithro | There is a lot of issues you can "get started with" at https://github.com/timvideos/getting-started/issues | 00:28 |
tpb | Title: Issues · timvideos/getting-started · GitHub (at github.com) | 00:28 |
*** hyades has joined #timvideos | 00:34 | |
*** LeeS has joined #timvideos | 00:36 | |
grvanm | Thanks :) | 01:00 |
grvanm | Will look into it :) | 01:00 |
CarlFK | grvanm: my personal choice: install gst-switch and try to run it | 01:13 |
CarlFK | if you know C or gstreamer, you can ponder/fix the problems you run into | 01:14 |
grvanm | Thanks :) | 01:15 |
grvanm | Any problems in python ? | 01:20 |
grvanm | I am more familiar with python , javascript , CSS , Jquery | 01:21 |
CarlFK | know anything about google's oauth? | 01:23 |
techman83 | CarlFK, What trouble are you having with OAuth? | 01:24 |
CarlFK | managing the credentials in my own secrets store | 01:24 |
techman83 | Hmm, I just use a library that take cares of all the hard bits | 01:25 |
CarlFK | does it create a .json file? | 01:25 |
xfxf | yo CarlFK, techman83 | 01:26 |
techman83 | Well I generally take care of handling the tokens | 01:26 |
CarlFK | xfxf: hey | 01:26 |
techman83 | But it can do it via one of it's methods | 01:26 |
techman83 | xfxf, yo | 01:26 |
CarlFK | techman83: 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 |
techman83 | which lib are you using? | 01:27 |
xfxf | CarlFK: clearly the answer here is to os.system() out to a perl script | 01:28 |
xfxf | ;-P | 01:28 |
techman83 | :P | 01:28 |
CarlFK | um... I think this: https://github.com/google/oauth2client | 01:35 |
tpb | Title: google/oauth2client · GitHub (at github.com) | 01:35 |
CarlFK | assuming that is what this uses: https://github.com/youtube/api-samples/blob/master/python/upload_video.py | 01:36 |
tpb | Title: api-samples/upload_video.py at master · youtube/api-samples · GitHub (at github.com) | 01:36 |
CarlFK | cuz I cut/pasted most of upload_video.py to make https://github.com/CarlFK/veyepar/blob/master/dj/scripts/youtube_v3_uploader.py | 01:40 |
tpb | Title: veyepar/youtube_v3_uploader.py at master · CarlFK/veyepar · GitHub (at github.com) | 01:40 |
techman83 | https://developers.google.com/api-client-library/python/guide/aaa_oauth#fileStorage | 01:41 |
tpb | Title: OAuth 2.0 - Google APIs Client Library for Python Google Developers (at developers.google.com) | 01:41 |
techman83 | In theory that client secrets file can be a full path | 01:42 |
techman83 | guessing that's the trouble you're having? | 01:43 |
CarlFK | no, I don't want it to deal with the file. I want to pass the values as parameters | 01:44 |
techman83 | Ahh | 01:44 |
techman83 | https://developers.google.com/api-client-library/python/guide/django | 01:45 |
tpb | Title: Using Django - Google APIs Client Library for Python Google Developers (at developers.google.com) | 01:45 |
CarlFK | cuz 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 around | 01:45 |
techman83 | Thing is, you need to keep track of the tokens | 01:45 |
techman83 | as they need refreshing | 01:46 |
CarlFK | right. I want to put them in the same place I put my twitter, email, schedule, vimeo, archive, and whatever other auth stuff I am managing | 01:47 |
CarlFK | I 'could' create/destroy the .json file as needed, but that;s a damm hack in a half. | 01:47 |
techman83 | it can be done in Django by the looks. | 01:48 |
techman83 | you could pass the token string to the script, but then you have the token string at the end to use next time | 01:48 |
LeeS | Sorry 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 |
techman83 | break all the things! | 01:49 |
CarlFK | im not sure i want the auth stuff stored in my db - the db security is pretty lax | 01:49 |
LeeS | YAY techman83 - We think alike | 01:50 |
techman83 | :D | 01:50 |
*** grvanm has quit IRC | 01:55 | |
LeeS | IT PASSES - YEAH: https://travis-ci.org/leesdolphin/gst-switch/jobs/47730859 | 02:14 |
tpb | Title: Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community (at travis-ci.org) | 02:14 |
* techman83 high five! | 02:14 | |
LeeS | *high ten* | 02:15 |
*** hyades has quit IRC | 02:45 | |
*** Niharika has joined #timvideos | 02:48 | |
*** tvCommitBot has joined #timvideos | 02:53 | |
tvCommitBot | [gst-switch] leesdolphin opened pull request #176: Fixing Failing test(`TestGetPreviewPorts::test_get_preview_ports`) (master...fixing-preview-ports) http://git.io/ts90TQ | 02:53 |
*** tvCommitBot has left #timvideos | 02:53 | |
mithro | LeeS: so the failure case is flaky | 02:58 |
mithro | LeeS: sometimes it passes fine, sometimes it fails | 02:58 |
mithro | LeeS: see https://travis-ci.org/mithro/gst-switch/builds/47472768 for example | 02:58 |
tpb | Title: Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community (at travis-ci.org) | 02:58 |
LeeS | I 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 |
LeeS | Oh | 02:59 |
mithro | LeeS: so you need to run it 4-5 times to see if it passes every time | 02:59 |
LeeS | *Bashes keyboard* | 02:59 |
LeeS | Oh, Ok. I was all excited that I had fixed it. | 03:00 |
mithro | LeeS: flaky failures are the *worst* :( | 03:00 |
LeeS | Well, 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 check | 03:01 |
mithro | LeeS: sleeps are always bad in tests because all it takes for the test to start failing is things get a little slower | 03:01 |
LeeS | True. 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 sure | 03:02 |
techman83 | Does the process open a port? | 03:03 |
mithro | LeeS: I think we should probably make test_sources should understand the pipeline state | 03:04 |
LeeS | Yeah; That would solve a lot of problems. | 03:04 |
mithro | LeeS: you should just be able to add a method to VideoSrc/AudioSrc in testsource.py which gets that status from the pipeline | 03:07 |
mithro | self.assertEqual(self.pipeline.get_state()[1], gst.STATE_NULL) | 03:08 |
mithro | LeeS: actually, give me a second and I'll push an exmaple | 03:09 |
mithro | LeeS: something like this -> https://github.com/mithro/gst-switch/commit/f288782504438111458ec08eb108e0ad61c13810 | 03:15 |
tpb | Title: Temp commit. · f288782 · mithro/gst-switch · GitHub (at github.com) | 03:15 |
mithro | anyway, back to work for me | 03:15 |
LeeS | Ok | 03:15 |
MaZderMind | CarlFK: did you take a look at the voc youtube client? it does exactly what you want. | 03:59 |
MaZderMind | CarlFK: https://github.com/voc/youtube-oauth is what's running at https://c3voc.de/youtube/ | 04:01 |
tpb | Title: YouTube OAuth Collector (at c3voc.de) | 04:01 |
MaZderMind | CarlFK: 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 mail | 04:02 |
MaZderMind | we're just storing the refresh-token, since everything can be derived from that | 04:03 |
MaZderMind | https://github.com/voc/scripts/blob/master/c3tt-publishing/youtube_client.py does that | 04:03 |
tpb | Title: scripts/youtube_client.py at master · voc/scripts · GitHub (at github.com) | 04:03 |
*** hyades has joined #timvideos | 04:03 | |
MaZderMind | it requests an access-token for the refresh-token, creates a video, uploads video-data, creates playlists… | 04:04 |
MaZderMind | that's what we used at the { | 04:04 |
MaZderMind | 31C3 (minus the playlist-part which is a bit flaky) | 04:05 |
CarlFK | MaZderMind: it's the "stores the required token in a file " that I am trying to avoid | 04:17 |
CarlFK | basically 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 upload | 04:20 |
MaZderMind | CarlFK: that would be the access-token. It is only valid 3600 minutes | 04:31 |
CarlFK | MaZderMind: that's only 3 days. I'v been using the same thing for over a week. | 04:34 |
MaZderMind | CarlFK: yes, that's the reason we based our upload on the refresh-token and request a new access-token for each upload | 04:36 |
MaZderMind | You're looking for an intermediate layer between the all-time refresh-token and the short-time access-token as far as I understand | 04:37 |
MaZderMind | What 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 |
CarlFK | im not sure what the data is called, I just don't like that it is stored in a file | 04:39 |
CarlFK | it 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 somewhere | 04:39 |
MaZderMind | I'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-system | 04:41 |
MaZderMind | the 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 |
techman83 | So it requests the new token based off the refresh token and adds the bearer stuff to the upload headers | 04:42 |
MaZderMind | jip | 04:42 |
CarlFK | sounds like you are passing a file around via urls and http, when I want to pass parameters? | 04:44 |
techman83 | nice | 04:44 |
MaZderMind | CarlFK: please take a look at https://github.com/voc/scripts/blob/master/c3tt-publishing/youtube_client.py - there is no file involved despite the video-file. The refresh-token comes in as ticket['Publishing.YouTube.Token'] | 04:54 |
tpb | Title: scripts/youtube_client.py at master · voc/scripts · GitHub (at github.com) | 04:54 |
CarlFK | MaZderMind: what code calls youtubeUrls = publish_youtube(ticket, config['youtube']['secret']) | 05:12 |
CarlFK | or, what is config['youtube']['secret'] ? | 05:12 |
CarlFK | same for # setTicketProperties(ticket_id, {'YouTube.Url'+str(i): youtubeUrl}, url, group, host, secret) | 05:12 |
CarlFK | found it: https://github.com/voc/scripts/blob/master/c3tt-publishing/script-H-media-ccc-upload.py#L311 | 05:21 |
tpb | Title: scripts/script-H-media-ccc-upload.py at master · voc/scripts · GitHub (at github.com) | 05:21 |
MaZderMind | CarlFK: this is the communication with our recording-tracking-system (ticket-tracker) | 05:22 |
MaZderMind | it handles each talk as a ticket that can traverse multiple states, each state associated with a script to run | 05:23 |
CarlFK | yeah, thats what veyepar does too | 05:23 |
MaZderMind | config['youtube']['secret'] is one of the values you get when registering a YouTube-App: you'll get a clientid and a secret | 05:23 |
MaZderMind | they will never change, so - yes - we store them in config files :/ | 05:24 |
MaZderMind | forgot about that fact | 05:24 |
CarlFK | well, that's one of the wads of data I want to manage, so that's a step in the right direction | 05:27 |
*** sharebrained has quit IRC | 05:30 | |
*** sharebrained has joined #timvideos | 05:30 | |
CarlFK | MaZderMind: this is the data I am trying to manage: http://paste.ubuntu.com/9801985/ oauth2-test.json | 05:34 |
tpb | Title: Ubuntu Pastebin (at paste.ubuntu.com) | 05:35 |
CarlFK | where does that live? | 05:35 |
MaZderMind | CarlFK: 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 |
MaZderMind | all stuff that changes from conference to conference comes from the tracker (refresh_token) | 05:40 |
MaZderMind | the remaining things can be created from the three values above (refresh_token, refresh_token) or from shared knowledge (token_uri, token_uri) | 05:41 |
CarlFK | 309 def youtubeFromTracker(): | 05:46 |
CarlFK | 310 try: | 05:46 |
CarlFK | 311 youtubeUrls = publish_youtube(ticket, config['youtube']['client_id'] , config['youtube']['secret']) | 05:46 |
CarlFK | where did ticket come from? | 05:46 |
CarlFK | it 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 |
MaZderMind | ticket 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 |
CarlFK | I 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 is | 05:53 |
CarlFK | x = json.load(file('oauth2-test.json')) ... is that x part of ticket? | 05:58 |
*** techdragon has quit IRC | 06:32 | |
*** techdragon has joined #timvideos | 06:35 | |
MaZderMind | CarlFK: 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 |
CarlFK | MaZderMind: 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? x | 07:17 |
CarlFK | I am guessing I wan to do something similar, but im having trouble seeing the details I need | 07:18 |
MaZderMind | CarlFK: 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 |
MaZderMind | the parts that never change are - in our setup - stored in a config-file on the machine that does the upload | 07:21 |
MaZderMind | it's how the upload-script verifies its identity to youtube | 07:21 |
MaZderMind | the access_token is not stored anywhere, it's derived from the refresh_token on demand | 07:22 |
CarlFK | where is the code that does: derived from the refresh_token on demand | 07:22 |
MaZderMind | the refesh_token is what we get from https://c3voc.de/youtube/ | 07:22 |
tpb | Title: YouTube OAuth Collector (at c3voc.de) | 07:22 |
MaZderMind | accessToken = getFreshToken(ticket['Publishing.YouTube.Token'], clientId, clientSecret) | 07:22 |
MaZderMind | https://github.com/voc/scripts/blob/master/c3tt-publishing/youtube_client.py#L225 | 07:23 |
tpb | Title: scripts/youtube_client.py at master · voc/scripts · GitHub (at github.com) | 07:23 |
*** 7GHAAMO5N has quit IRC | 07:24 | |
*** 1JTAAD3TU has joined #timvideos | 07:26 | |
CarlFK | swell.. now I have more questions ;) | 07:29 |
CarlFK | can 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 IRC | 07:36 | |
*** techdragon has joined #timvideos | 07:46 | |
*** slomo has joined #timvideos | 08:02 | |
*** slomo has joined #timvideos | 08:02 | |
MaZderMind | CarlFK: with out setup we can release to multiple channels simultaniously | 08:07 |
MaZderMind | CarlFK: just use another refresh_token (which is bound to another channel) | 08:08 |
MaZderMind | if you like we can do a quick phone/mumble call to clarify your questions | 08:08 |
CarlFK | hmm.. not now. its midnight at my mom's house, don't want to wake anyone. | 08:09 |
CarlFK | im still not seeing how things are stored (refresh_token is maybe all I care bout) | 08:09 |
CarlFK | and if you can store many of them, then you need some way to identify which to retrieve. which I don't see either | 08:10 |
MaZderMind | the tracker calls the upload-script with one ticket for it to be uploaded. after this, the script exits | 08:16 |
MaZderMind | in this call from the tracker is all the state script needs | 08:17 |
MaZderMind | state = video-filename, meta-data, refresh_token | 08:17 |
CarlFK | hmm.. I just tried https://c3voc.de/youtube/ and got http://paste.ubuntu.com/9803132/ | 08:22 |
tpb | Title: YouTube OAuth Collector (at c3voc.de) | 08:22 |
CarlFK | I was assuming I was going to get back "paste this string into your app" | 08:23 |
*** techdragon has quit IRC | 08:26 | |
*** techdragon has joined #timvideos | 08:28 | |
MaZderMind | CarlFK: as I said it should save the credentials on the server and poke the team via e-mail. | 08:58 |
MaZderMind | you as invoker should never see the credentials | 08:59 |
*** Niharika has quit IRC | 09:51 | |
*** Niharika has joined #timvideos | 09:53 | |
*** Niharika has quit IRC | 09:58 | |
xfxf | CarlFK: yo, does your veyepar INSTALL.sh script work on latest LTS? | 10:34 |
xfxf | it seems very broken | 10:34 |
shenki | mithro: just rebooted hopper, fyi | 10:51 |
*** Niharika has joined #timvideos | 10:54 | |
xfxf | CarlFK: fixed it, but i need access to your veyepar instance so i can add my ip to allowed db's | 10:58 |
*** Niharika has quit IRC | 10:58 | |
*** tvCommitBot has joined #timvideos | 11: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) http://git.io/5e1XTA | 11:19 |
*** tvCommitBot has left #timvideos | 11:19 | |
*** slomo_ has joined #timvideos | 11:38 | |
*** slomo_ has joined #timvideos | 11:38 | |
*** Niharika has joined #timvideos | 11:43 | |
*** Niharika has quit IRC | 11:48 | |
*** Niharika has joined #timvideos | 12:19 | |
*** slomo__ has joined #timvideos | 12:26 | |
*** slomo__ has joined #timvideos | 12:26 | |
*** slomo has quit IRC | 12:29 | |
*** slomo_ has quit IRC | 12:29 | |
*** slomo has joined #timvideos | 13:48 | |
*** slomo has joined #timvideos | 13:48 | |
xfxf | CarlFK: ping when you read this, need to get videos encoding | 13:58 |
xfxf | current ip is 120.148.51.187 but that could change | 13:58 |
*** f15h has joined #timvideos | 14:53 | |
CarlFK | xfxf: pretty sure it works on LTS, whats broken? and adding that IP/24, I knew there was something else | 16:26 |
CarlFK | xfxf: ip block added, server restarted | 16:29 |
CarlFK | and sipping perc coffee. bleck. | 16:29 |
*** LeeS has quit IRC | 16:42 | |
*** CarlFK has quit IRC | 17:27 | |
*** slomo has quit IRC | 18:03 | |
*** CarlFK has joined #timvideos | 18:10 | |
*** ChanServ sets mode: +v CarlFK | 18:10 | |
*** CarlFK has quit IRC | 18:45 | |
*** Niharika has quit IRC | 18:45 | |
*** hyades has quit IRC | 19:15 | |
*** CarlFK has joined #timvideos | 19:35 | |
*** ChanServ sets mode: +v CarlFK | 19:35 | |
*** CarlFK has quit IRC | 19:50 | |
*** LeeS has joined #timvideos | 21:02 | |
*** f15h has quit IRC | 21:13 | |
*** slomo__ has quit IRC | 21:37 | |
*** test12345 has joined #timvideos | 22:38 | |
test12345 | Hi Anyone der ? | 22:39 |
*** tvCommitBot has joined #timvideos | 22:45 | |
tvCommitBot | [gst-switch] mithro pushed 2 new commits to master: http://git.io/Api2aQ | 22:45 |
tvCommitBot | gst-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 |
tvCommitBot | gst-switch/master 42cdae4 Tim Ansell: Merge pull request #177 from leesdolphin/fix-failing-unittests... | 22:45 |
*** tvCommitBot has left #timvideos | 22:45 | |
*** test12345 has quit IRC | 23:00 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!