For the preventing copy-past you can set some cell metadata to `metadata.editable=false`, I think some frontend will then prevent you to copy-past the source. It's pretty easy to get around though.
The notebook top-level metadata supports arbitrary fields. As notebook are json you can easily add a random UUID to these. Once you have a unique UUID per notebook, it's easier to setup a google alert that tell you whether this UUID has been found. Again it's relatively easy to remove, but you have to know it is there. If you have a tiny bit more resources, then you can add a second field which is related to the user having bought the book. Again, as notebook are Json it's just a matter of opening the files, adding this field and writing it back. If you really have a lot of downloads, it can even be done really fast by directly modifying the bytes in files. Simply set this field a first time to a long, know string, lookup the bytes offset of this string, and now you can do a quick raw search and replace. And you can even be more sneaky, see for example this HN thread[1] with ZW spaces, but you can also use Homoglyphs, to fingerprint leaks. Preventing leaks will though I'm afraid be close to impossible. Look at what other authors have done, like Jake van Der Plas, whose notebook are open, but only part of the content that you get with the full book. -- M 1: https://news.ycombinator.com/item?id=16046329 On 8 January 2018 at 18:35, insearchof answers < [email protected]> wrote: > Hi Matthias, anything at all that would discourage piracy and would make > it possible to track piracy would be great. We're open to all suggestions. > > On 7 January 2018 at 08:12, Matthias Bussonnier < > [email protected]> wrote: > >> It also depends what you mean by "protecting content in Jupyter >> Notebooks" does that mean making it hard to copy ? Does that mean figuring >> out a way to finger-print the notebook in order to easily detect leaked >> version. Or do you want a more complex tagging that would identify which >> user have leaked the notebook ? >> >> Completely protecting is hard, but there are potentially soft mitigation >> to track notebooks if this is what you are looking for. >> -- >> M >> >> On 7 January 2018 at 00:14, Lawrence D’Oliveiro <[email protected]> >> wrote: >> >>> On Sunday, January 7, 2018 at 6:41:02 AM UTC+13, [email protected] >>> wrote: >>>> >>>> >>>> On Thursday, 4 January 2018 19:07:13 UTC-5, Lawrence D’Oliveiro wrote: >>>> >>> >>>> >>> On Friday, January 5, 2018 at 6:14:54 AM UTC+13, [email protected] >>>>> wrote: >>>>> >>>> >>>>>> >>>>> I'd like to create a Jupyter version of a textbook I am working on and >>>>>> need to consider piracy of the content. >>>>>> >>>>>> Isn’t that what copyright is for? >>>>> >>>> >>>> >>> :-) Yes, but as an author whose content is extensively pirated >>>> worldwide, I know that copyright unfortunately does not mean anything to a >>>> many people. >>>> >>> >>> If law doesn’t help, technical measures aren’t going to matter either. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Project Jupyter" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> To view this discussion on the web visit https://groups.google.com/d/ms >>> gid/jupyter/1cc6c804-1346-485b-843d-96bdf011b776%40googlegroups.com >>> <https://groups.google.com/d/msgid/jupyter/1cc6c804-1346-485b-843d-96bdf011b776%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Project Jupyter" group. >> To unsubscribe from this topic, visit https://groups.google.com/d/to >> pic/jupyter/IRd3QSqWFUE/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To post to this group, send email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ms >> gid/jupyter/CANJQusX0SqpdV2Q3SJfgz-62Fb7KB%3DRigkmYYN1EE3PR08-zeQ%40mail. >> gmail.com >> <https://groups.google.com/d/msgid/jupyter/CANJQusX0SqpdV2Q3SJfgz-62Fb7KB%3DRigkmYYN1EE3PR08-zeQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "Project Jupyter" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/jupyter/CA%2Bsg3DXY%3DreFBLRwSj7E0Xsd9-e3xBsOfnogFOWRAJDqNn4jMA% > 40mail.gmail.com > <https://groups.google.com/d/msgid/jupyter/CA%2Bsg3DXY%3DreFBLRwSj7E0Xsd9-e3xBsOfnogFOWRAJDqNn4jMA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Project Jupyter" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/CANJQusU9cQ7GbFZOnYeAjDLkL-OB%2B75Q02ujefKc0XycfYegHg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
