Thursday, 2019-08-01

*** tpb has joined #timvideos00:00
*** sb0 has joined #timvideos04:11
*** CarlFK has joined #timvideos06:07
*** ChanServ sets mode: +v CarlFK06:07
*** micolous_ is now known as micolous07:05
micolousCarlFK: I've sent you a couple of pyconau2019 PRs to be applied to the NDV veyepar instance07:07
CarlFKlol what?07:08
micolousThey block us uploading to youtube because licensing issues07:08
micolousshort version: YouTube treats "creativeCommon" as CC-BY-3.0, and there have been many instances of people ripping off content which YouTube won't deal with, which the organising committee and speakers are (understandably) upset about07:09
CarlFKoh.. I was thinking PRs were PIs like raspberry pie computers07:09
micolousI applied the creativeCommon fixes to *everyone*, because I figure it applies to all07:09
micolousUnfortunately youtube isn't expressive enough about CC licenses07:09
CarlFKim not sure "we want CC" should map to "youtube"07:12
CarlFKmy current solution to this is make it the conferences problem - if they don't want CC, they shouldn't put CC in the license field07:13
micolousno, the problem is youtube says CC == CC-BY07:14
micolouswhich is a very liberal license07:14
micolousThis means if a conference says CC-BY-SA or CC-BY-NC-ND then there's no way to tell the YouTube API this07:15
micolousLong term, we should explicitly declare it in the description07:15
micolousI'm trying to fix this issue:
tpbTitle: PyCon AU 2019 | Video Licencing Changes (at
CarlFK"will be marking all uploaded videos in 2019 with the YouTube Standard licence metadata"07:19
CarlFK= no problem07:19
CarlFK  no licence specified = problem07:21
CarlFKmicolous: any idea where the source is for https://2019.pycon-au.org07:26
tpbTitle: PyCon AU 2019 | PyCon AU 2019 (at
micolousYeah one sec08:13
tpbTitle: at master · pyconau/ · GitHub (at
micolousAnd other stuff in that repo08:13
micolousyes, pyconau website is written in Ruby08:13
micolousWe currently hard code the license of all pyconau videos08:14
micolousThat's what my second PR is for08:14
CarlFKwhy didn't you hard code it to "youtube" ?08:14
CarlFKideally, get it out of veyepar and into the fine hand crafted json producer ;)08:16
micolousyoutube is the safe option08:27
micolousBecause when you use "creativeCommon" on youtube, they basically disable anti-plagarism stuff08:28
micolousso defaulting to "youtube" is the safest option08:28
CarlFKwhy didn't you hard code it to "youtube" ?08:28
micolousYou have a choice between only "youtube" or "cc-by-3.0"08:28
micolousBecause someone might want CC-BY ?08:28
micolousI was trying to make it so it has "safe default" while also preserving the previous functionality08:29
micolousThis way when this debate comes up for next conference that NDV does, we can say "here's the behaviour of youtube and the context -- you can override if you want"08:29
CarlFKI already do that08:30
micolousright now it looks for "cc" in the license string and tells youtube "cc-by-3.0"08:30
micolousThere's also some changes that should be done to the uploader, but youtube was the priority right now08:31
micolousThat one tries to do hard coded string offsets08:31
CarlFKand the conference can override it like this:
CarlFKlicense": "youtube",08:31
micolousbecause it's more `license_for_youtube` rather than `license`08:32
micolousif someone puts `cc-by-nd-nc-4.0-italy`, we can't express that to youtube08:32
micolousThere's also the debatable part of "is youtube commercial use" given that youtube can run ads on it while distributing...08:33
micolousMeanwhile, internet archive can totally take `cc-by-nd-nc-4.0-italy`08:33
CarlFKif the conf specifies `cc-by-nd-nc-4.0-italy` then maybe we can't upload to youtube because it isn't supported?08:34
micolouswell, PyConAU are about to do exactly this: they will tell youtube that everything is license=youtube while specifying in the description that it is `cc-by-nc-sa-4.0`08:35
micolousI get where you're coming from (less fuss for us), but I don't think exposing an enum of the youtube API in veyepar is the right answer either :)08:36
micolousI'm trying to just solve the immediate issue08:36
CarlFKthe easiest is hardcode "youube" into veyepars json consumer08:37
micolousyou also have 10 different consumers ;)08:37
CarlFKfollowed by hardcode "youube" into pycona  json producer08:37
micolousok, how about we add 'license_youtube' as an attribute, default to 'youtube', and we just pass that verbatim to YouTube?08:38
micolousAnd then edit PyconAU code to say `license_youtube: youtube`08:38
micolousactually, then we need to add an extra field in the database for it08:38
CarlFKim still missing why you don't hardcode youtube today08:38
micoloussome of the other json consumers appear to take license attributes from the upstream data08:39
CarlFKeven better - I have no idea how much trouble it is to modify the producer08:40
CarlFKthe code change is easy - no clue about who can put it into production - is that you?08:40
micolousproduction for what, sorry?08:41
micolousfor json producer08:41
CarlFKyes that08:41
micolousThat's fairly easy to do, I hassle someone here and they accept the pull request, and it auto-deploys in <1 hour08:42
micolousBut the problem is that we need a "license" and "license_youtube" attribute if we go down that path08:42
CarlFKany idea why email and twitter aren08:42
micolouswhich means adding extra database fields to veyepar08:42
CarlFKaren't in there?08:43
micolousNot sure why there's no email field -- the recording sheets I printed about 20 minutes ago all show email addresses08:43
CarlFKthat came from a spread sheet08:43
CarlFKthat was a hassle.. and then a 2nd hassle when they broke it trying to add twitter handles08:44
CarlFKif you are adding fields:
tpbTitle: veyepar/ at master · CarlFK/veyepar · GitHub (at
CarlFKreviewers: None, language: "English"08:46
micolousThe point is I don't think we should add another field for youtube, we should just let the upstream sources declare licenses properly and then squash it to youtube's 1 bit licensing field (cc-by-3.0 or not that)08:47
micolousIf there's a conference who doesn't want to work within youtube license, then they don't upload to youtube08:47
micolousIf youtube makes a better licensing field, then we can update as needed08:48
CarlFKthe only part I disagree with is changing the squash code08:49
micolouswhich file/line?08:49
CarlFKwhat used to be   if CC in licence: creativeCommons else youtube08:50
CarlFK"will be marking all uploaded videos in 2019 with the YouTube Standard licence metadata"  do that in
tpbTitle: at master · pyconau/ · GitHub (at
micolousok, we can add a "license" field, and then put that into the existing "license" field08:53
CarlFKremove the hardocded bit in the consumer, and everything else stays the same08:53
micolousthe other stuff should be "youtube", because we don't know the "proper" state for those other things08:53
micolousAlso, I think removing the 'license' field from set_permission is a good idea08:53
CarlFKoh wow.. i wonder why that is there...08:55
tpbTitle: Explicitly declare license in schedule_data for video data by micolous · Pull Request #114 · pyconau/ · GitHub (at
micolousyou want something like this, right?08:57
CarlFKexcept "youtube"08:58
micolousOK, but putting in "license_youtube" would be exposing youtube api and require more fields in veyepar08:58
CarlFKthen don't do that08:58
micolousand we can't validate it08:59
CarlFK "license": "youtube"08:59
micolousok, so what happens with internet archive?09:00
CarlFKit gets that too09:00
micolousbut internet archive lets you actually declare the license proper09:01
CarlFKI'm not sure it makes sense to have different licenses09:04
micolousI don't wanna open _that_ can of worms :)09:04
CarlFK"We will be marking all uploaded videos in 2019 with the YouTube Standard licence"09:05
CarlFKdo that09:05
CarlFKon archive too09:05
micolousThat's a youtube-specific thing09:05
micolousok, pycon has the license flag change in now09:13
micolous will propegate that properly (but in a "generic", not "youtube" way)09:13
tpbTitle: pyconau2019: fix license attribute by micolous · Pull Request #79 · CarlFK/veyepar · GitHub (at
micolousI'll fix up the other one in a sec09:13
CarlFK event['license'] = ''  Are you sure you want that?09:15
micolousthat's if it's None09:15
CarlFKso leave it None09:15
CarlFKhopefully it errors right away09:16
CarlFKand you will know the data from json is broken09:16
micolousgit status09:17
micolousanyway, to answer that "none" question -- all the other attributes work this way09:17
micolouswhy does this one need to be different?09:19
CarlFKnot all of them - I hope09:19
tpbTitle: veyepar/ at 2df713a8854f8b3dbd7f901538e06803627ba95b · CarlFK/veyepar · GitHub (at
CarlFK'' is kinda valid09:21
micolousI think this is so that everything that expects a string still gets one?09:23
CarlFK"the conf didn't give me data, oh well, I give up asking for it"09:24
CarlFKI don't think you want to do that for license09:25
micolousoh right, you want to assert on that09:25
micolousone sec...09:25
CarlFKI want you to leave it None09:25
CarlFKpretty sure it will error when it tries to save it09:25
micoloushow sure? :)09:26
CarlFKim sure it will error somewhere09:27
micolouswell you don't have type checks ;)09:27
micolous            if not event.get('license'):09:28
micolous                raise ValueError('license field must be specified: %r' % (09:28
micolous                    event,))09:28
micolousHow does that work for you?09:28
CarlFKI want you to leave it None09:29
micolous(I don't really like it, but "fixing this properly" will require I rewrite this entire thing09:30
micolous(python 3.7 dataclasses + 3.6 type annotations are great btw)09:30
micolousmuch less ugly dict stuff09:30
CarlFKif you want that sort of error checking, I want some way a conference can validate their data without me being involved09:31
micoloussure, but you need to throw errors when people give you garbage09:31
CarlFKthis would be a help  "enter url: " (submit) and yell at them if the json parser barfs09:32
CarlFKthen check they have the fields they agreed to, and then some sort of type / data validation09:33
micolousRight, so the other branch, I pushed a thing to **not** change license when changing permissions on a video09:33
CarlFKwhich means I would have to put all those field maps int a db or something.09:34
micolousIt currently defaults to telling youtube to make it youtube license, and all the test video things are uploaded as youtube license (because you don't want to allow someone to pick up a "test video" that doesn't have this license09:35 setting `meta['license']` is a youtube-specific metadata field09:35
CarlFKI can't find the "merge" button09:40
micolouslog in to github09:40
CarlFKI see the 2 PRs from 3 hours ago, and something in my email that says "commit"09:43
CarlFKoh, it updates the PR - right.09:44
CarlFKlicense": "CC BY-NC-SA 4.0",09:48
CarlFKthat isn't "youtube"09:48
micolousyes, because we weren't going to break the data model for youtube, right? :)09:58
micolousWe can hard code everything to youtube when sending to youtube09:58
micolousBut I think that's only marginally better09:58
micolousatm this is blocking getting stuff working for ryan, so I don't understand the issue09:58
micolousThere needs to be a better long term solution to this, but today is not the day for that :)09:59
micolousWe're also gonna be escalating the issue with YouTube folks post-conference09:59
micolousSo I fully anticipate this to change09:59
micolousBut youtube won't change for at least 6 months10:00
micolousEven if we succeed10:00
CarlFKdo what the blog post said: "youtube"10:01
CarlFKor whatever this is called - "news" I guess:
tpbTitle: PyCon AU 2019 | Video Licencing Changes (at
CarlFKomg 5am.. I'm off to bed10:05
*** sb0 has quit IRC12:48
*** diamondman_ has joined #timvideos22:39
*** diamondman has quit IRC22:46
*** diamondman_ is now known as diamondman22:46

Generated by 2.13.1 by Marius Gedminas - find it at!