*** tpb has joined #timvideos | 00:00 | |
*** sb0 has joined #timvideos | 04:11 | |
*** CarlFK has joined #timvideos | 06:07 | |
*** ChanServ sets mode: +v CarlFK | 06:07 | |
*** micolous_ is now known as micolous | 07:05 | |
micolous | CarlFK: I've sent you a couple of pyconau2019 PRs to be applied to the NDV veyepar instance | 07:07 |
---|---|---|
CarlFK | lol what? | 07:08 |
micolous | They block us uploading to youtube because licensing issues | 07:08 |
micolous | short 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 about | 07:09 |
CarlFK | oh.. I was thinking PRs were PIs like raspberry pie computers | 07:09 |
micolous | hah | 07:09 |
micolous | I applied the creativeCommon fixes to *everyone*, because I figure it applies to all | 07:09 |
micolous | Unfortunately youtube isn't expressive enough about CC licenses | 07:09 |
CarlFK | im not sure "we want CC" should map to "youtube" | 07:12 |
CarlFK | my current solution to this is make it the conferences problem - if they don't want CC, they shouldn't put CC in the license field | 07:13 |
micolous | no, the problem is youtube says CC == CC-BY | 07:14 |
micolous | which is a very liberal license | 07:14 |
micolous | This means if a conference says CC-BY-SA or CC-BY-NC-ND then there's no way to tell the YouTube API this | 07:15 |
micolous | Long term, we should explicitly declare it in the description | 07:15 |
micolous | I'm trying to fix this issue: https://2019.pycon-au.org/news/video-licencing-changes/ | 07:15 |
tpb | Title: PyCon AU 2019 | Video Licencing Changes (at 2019.pycon-au.org) | 07:15 |
CarlFK | "will be marking all uploaded videos in 2019 with the YouTube Standard licence metadata" | 07:19 |
CarlFK | = no problem | 07:19 |
CarlFK | https://2019.pycon-au.org/schedule/avdata.json no licence specified = problem | 07:21 |
CarlFK | micolous: any idea where the source is for https://2019.pycon-au.org | 07:26 |
tpb | Title: PyCon AU 2019 | PyCon AU 2019 (at 2019.pycon-au.org) | 07:26 |
micolous | Yeah one sec | 08:13 |
micolous | CarlFK: https://github.com/pyconau/2019.pycon-au.org/blob/master/_layouts/schedule_data.json | 08:13 |
tpb | Title: 2019.pycon-au.org/schedule_data.json at master · pyconau/2019.pycon-au.org · GitHub (at github.com) | 08:13 |
micolous | And other stuff in that repo | 08:13 |
micolous | yes, pyconau website is written in Ruby | 08:13 |
micolous | We currently hard code the license of all pyconau videos | 08:14 |
micolous | That's what my second PR is for | 08:14 |
CarlFK | why didn't you hard code it to "youtube" ? | 08:14 |
CarlFK | ideally, get it out of veyepar and into the fine hand crafted json producer ;) | 08:16 |
micolous | youtube is the safe option | 08:27 |
micolous | Because when you use "creativeCommon" on youtube, they basically disable anti-plagarism stuff | 08:28 |
micolous | so defaulting to "youtube" is the safest option | 08:28 |
CarlFK | why didn't you hard code it to "youtube" ? | 08:28 |
micolous | You have a choice between only "youtube" or "cc-by-3.0" | 08:28 |
micolous | Because someone might want CC-BY ? | 08:28 |
micolous | I was trying to make it so it has "safe default" while also preserving the previous functionality | 08:29 |
micolous | This 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 |
CarlFK | I already do that | 08:30 |
micolous | right now it looks for "cc" in the license string and tells youtube "cc-by-3.0" | 08:30 |
micolous | There's also some changes that should be done to the archive.org uploader, but youtube was the priority right now | 08:31 |
micolous | That one tries to do hard coded string offsets | 08:31 |
CarlFK | and the conference can override it like this: https://cfp.pyohio.org/2019/schedule/conference.json | 08:31 |
CarlFK | license": "youtube", | 08:31 |
micolous | because it's more `license_for_youtube` rather than `license` | 08:32 |
micolous | if someone puts `cc-by-nd-nc-4.0-italy`, we can't express that to youtube | 08:32 |
micolous | There's also the debatable part of "is youtube commercial use" given that youtube can run ads on it while distributing... | 08:33 |
micolous | Meanwhile, internet archive can totally take `cc-by-nd-nc-4.0-italy` | 08:33 |
CarlFK | if 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 |
micolous | well, 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 |
micolous | I 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 |
micolous | I'm trying to just solve the immediate issue | 08:36 |
CarlFK | the easiest is hardcode "youube" into veyepars json consumer | 08:37 |
micolous | you also have 10 different consumers ;) | 08:37 |
CarlFK | followed by hardcode "youube" into pycona json producer | 08:37 |
micolous | ok, how about we add 'license_youtube' as an attribute, default to 'youtube', and we just pass that verbatim to YouTube? | 08:38 |
micolous | And then edit PyconAU code to say `license_youtube: youtube` | 08:38 |
micolous | actually, then we need to add an extra field in the database for it | 08:38 |
CarlFK | im still missing why you don't hardcode youtube today | 08:38 |
micolous | some of the other json consumers appear to take license attributes from the upstream data | 08:39 |
CarlFK | even better - I have no idea how much trouble it is to modify the producer | 08:40 |
CarlFK | the code change is easy - no clue about who can put it into production - is that you? | 08:40 |
micolous | production for what, sorry? | 08:41 |
micolous | for 2019.pycon-au.org? | 08:41 |
CarlFK | pycon.au json producer | 08:41 |
CarlFK | yes that | 08:41 |
micolous | That's fairly easy to do, I hassle someone here and they accept the pull request, and it auto-deploys in <1 hour | 08:42 |
micolous | But the problem is that we need a "license" and "license_youtube" attribute if we go down that path | 08:42 |
CarlFK | any idea why email and twitter aren | 08:42 |
micolous | which means adding extra database fields to veyepar | 08:42 |
CarlFK | aren't in there? | 08:43 |
micolous | Not sure why there's no email field -- the recording sheets I printed about 20 minutes ago all show email addresses | 08:43 |
CarlFK | that came from a spread sheet | 08:43 |
CarlFK | that was a hassle.. and then a 2nd hassle when they broke it trying to add twitter handles | 08:44 |
CarlFK | if you are adding fields: https://github.com/CarlFK/veyepar/blob/master/dj/scripts/addeps.py#L7-L28 | 08:45 |
tpb | Title: veyepar/addeps.py at master · CarlFK/veyepar · GitHub (at github.com) | 08:45 |
CarlFK | reviewers: None, language: "English" | 08:46 |
micolous | The 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 |
micolous | If there's a conference who doesn't want to work within youtube license, then they don't upload to youtube | 08:47 |
micolous | If youtube makes a better licensing field, then we can update as needed | 08:48 |
CarlFK | the only part I disagree with is changing the squash code | 08:49 |
micolous | which file/line? | 08:49 |
CarlFK | what used to be if CC in licence: creativeCommons else youtube | 08:50 |
CarlFK | "will be marking all uploaded videos in 2019 with the YouTube Standard licence metadata" do that in https://github.com/pyconau/2019.pycon-au.org/blob/master/_layouts/schedule_data.json | 08:52 |
tpb | Title: 2019.pycon-au.org/schedule_data.json at master · pyconau/2019.pycon-au.org · GitHub (at github.com) | 08:52 |
micolous | ok, we can add a "license" field, and then put that into the existing "license" field | 08:53 |
CarlFK | remove the hardocded bit in the consumer, and everything else stays the same | 08:53 |
micolous | the other stuff should be "youtube", because we don't know the "proper" state for those other things | 08:53 |
micolous | Also, I think removing the 'license' field from set_permission is a good idea | 08:53 |
CarlFK | oh wow.. i wonder why that is there... | 08:55 |
micolous | https://github.com/pyconau/2019.pycon-au.org/pull/114/files | 08:57 |
tpb | Title: Explicitly declare license in schedule_data for video data by micolous · Pull Request #114 · pyconau/2019.pycon-au.org · GitHub (at github.com) | 08:57 |
micolous | you want something like this, right? | 08:57 |
CarlFK | except "youtube" | 08:58 |
micolous | OK, but putting in "license_youtube" would be exposing youtube api and require more fields in veyepar | 08:58 |
CarlFK | then don't do that | 08:58 |
micolous | and we can't validate it | 08:59 |
CarlFK | "license": "youtube" | 08:59 |
micolous | ok, so what happens with internet archive? | 09:00 |
CarlFK | it gets that too | 09:00 |
micolous | but internet archive lets you actually declare the license proper | 09:01 |
CarlFK | I'm not sure it makes sense to have different licenses | 09:04 |
micolous | I 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 |
CarlFK | do that | 09:05 |
CarlFK | on archive too | 09:05 |
micolous | That's a youtube-specific thing | 09:05 |
micolous | ok, pycon has the license flag change in now | 09:13 |
micolous | https://github.com/CarlFK/veyepar/pull/79 will propegate that properly (but in a "generic", not "youtube" way) | 09:13 |
tpb | Title: pyconau2019: fix license attribute by micolous · Pull Request #79 · CarlFK/veyepar · GitHub (at github.com) | 09:13 |
micolous | I'll fix up the other one in a sec | 09:13 |
CarlFK | event['license'] = '' Are you sure you want that? | 09:15 |
micolous | that's if it's None | 09:15 |
CarlFK | so leave it None | 09:15 |
CarlFK | hopefully it errors right away | 09:16 |
CarlFK | and you will know the data from json is broken | 09:16 |
micolous | git status | 09:17 |
micolous | oops | 09:17 |
micolous | anyway, to answer that "none" question -- all the other attributes work this way | 09:17 |
micolous | why does this one need to be different? | 09:19 |
CarlFK | not all of them - I hope | 09:19 |
micolous | https://github.com/CarlFK/veyepar/blob/2df713a8854f8b3dbd7f901538e06803627ba95b/dj/scripts/addeps.py#L1851-L1858 | 09:20 |
tpb | Title: veyepar/addeps.py at 2df713a8854f8b3dbd7f901538e06803627ba95b · CarlFK/veyepar · GitHub (at github.com) | 09:20 |
CarlFK | '' is kinda valid | 09:21 |
micolous | I 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 |
CarlFK | I don't think you want to do that for license | 09:25 |
micolous | oh right, you want to assert on that | 09:25 |
micolous | ok | 09:25 |
micolous | one sec... | 09:25 |
CarlFK | I want you to leave it None | 09:25 |
CarlFK | pretty sure it will error when it tries to save it | 09:25 |
micolous | how sure? :) | 09:26 |
CarlFK | im sure it will error somewhere | 09:27 |
micolous | well 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 |
micolous | How does that work for you? | 09:28 |
CarlFK | I want you to leave it None | 09:29 |
CarlFK | really | 09:29 |
micolous | done | 09:29 |
CarlFK | yay | 09:30 |
micolous | (I don't really like it, but "fixing this properly" will require I rewrite this entire thing | 09:30 |
micolous | (python 3.7 dataclasses + 3.6 type annotations are great btw) | 09:30 |
micolous | much less ugly dict stuff | 09:30 |
CarlFK | if you want that sort of error checking, I want some way a conference can validate their data without me being involved | 09:31 |
micolous | sure, but you need to throw errors when people give you garbage | 09:31 |
CarlFK | this would be a help "enter url: " (submit) and yell at them if the json parser barfs | 09:32 |
CarlFK | then check they have the fields they agreed to, and then some sort of type / data validation | 09:33 |
micolous | Right, so the other branch, I pushed a thing to **not** change license when changing permissions on a video | 09:33 |
CarlFK | which means I would have to put all those field maps int a db or something. | 09:34 |
micolous | It 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 license | 09:35 |
micolous | post_yt.py setting `meta['license']` is a youtube-specific metadata field | 09:35 |
CarlFK | I can't find the "merge" button | 09:40 |
micolous | log in to github | 09:40 |
CarlFK | I see the 2 PRs from 3 hours ago, and something in my email that says "commit" | 09:43 |
CarlFK | oh, it updates the PR - right. | 09:44 |
CarlFK | license": "CC BY-NC-SA 4.0", | 09:48 |
CarlFK | that isn't "youtube" | 09:48 |
micolous | yes, because we weren't going to break the data model for youtube, right? :) | 09:58 |
micolous | We can hard code everything to youtube when sending to youtube | 09:58 |
micolous | But I think that's only marginally better | 09:58 |
micolous | atm this is blocking getting stuff working for ryan, so I don't understand the issue | 09:58 |
micolous | There needs to be a better long term solution to this, but today is not the day for that :) | 09:59 |
micolous | We're also gonna be escalating the issue with YouTube folks post-conference | 09:59 |
micolous | So I fully anticipate this to change | 09:59 |
micolous | But youtube won't change for at least 6 months | 10:00 |
micolous | Even if we succeed | 10:00 |
CarlFK | do what the blog post said: "youtube" | 10:01 |
CarlFK | or whatever this is called - "news" I guess: https://2019.pycon-au.org/news/video-licencing-changes/ | 10:03 |
tpb | Title: PyCon AU 2019 | Video Licencing Changes (at 2019.pycon-au.org) | 10:03 |
CarlFK | omg 5am.. I'm off to bed | 10:05 |
*** sb0 has quit IRC | 12:48 | |
*** diamondman_ has joined #timvideos | 22:39 | |
*** diamondman has quit IRC | 22:46 | |
*** diamondman_ is now known as diamondman | 22:46 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!