mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Remove references to drmfree.calibre-ebook.com
That site is being retired. Text about DRM has been migrated to the calibre manual.
This commit is contained in:
parent
4a661f9138
commit
2d38fb1b22
107
manual/drm.rst
Normal file
107
manual/drm.rst
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
|
||||||
|
.. _dmr:
|
||||||
|
|
||||||
|
Digital Rights Management (DRM)
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
Digital rights management (DRM) is a generic term for access control
|
||||||
|
technologies that can be used by hardware manufacturers, publishers, copyright
|
||||||
|
holders and individuals to try to impose limitations on the usage of digital
|
||||||
|
content and devices. It is also, sometimes, disparagingly described as Digital
|
||||||
|
Restrictions Management. The term is used to describe any technology which
|
||||||
|
inhibits uses (legitimate or otherwise) of digital content that were not
|
||||||
|
desired or foreseen by the content provider. The term generally doesn't refer
|
||||||
|
to other forms of copy protection which can be circumvented without modifying
|
||||||
|
the file or device, such as serial numbers or key-files. It can also refer to
|
||||||
|
restrictions associated with specific instances of digital works or devices.
|
||||||
|
DRM technologies attempt to control use of digital media by preventing access,
|
||||||
|
copying or conversion to other formats by end users. See `wikipedia
|
||||||
|
<http://en.wikipedia.org/wiki/Digital_rights_management>`_.
|
||||||
|
|
||||||
|
|
||||||
|
What does DRM imply for me personally?
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
When you buy an e-book with DRM you don't really own it but have purchased the
|
||||||
|
permission to use it in a manner dictated to you by the seller. DRM limits what
|
||||||
|
you can do with e-books you have "bought". Often people who buy books with DRM
|
||||||
|
are unaware of the extent of these restrictions. These restrictions prevent you
|
||||||
|
from reformatting the e-book to your liking, including making stylistic changes
|
||||||
|
like adjusting the font sizes, although there is software that empowers you to
|
||||||
|
do such things for non DRM books. People are often surprised that an e-book
|
||||||
|
they have bought in a particular format cannot be converted to another format
|
||||||
|
if the e-book has DRM. So if you have an Amazon Kindle and buy a book sold by
|
||||||
|
Barnes and Nobles, you should know that if that e-book has DRM you will not be
|
||||||
|
able to read it on your Kindle. Notice that I am talking about a book you buy,
|
||||||
|
not steal or pirate but BUY.
|
||||||
|
|
||||||
|
|
||||||
|
What does DRM do for authors?
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Publishers of DRMed e-books argue that the DRM is all for the sake of authors
|
||||||
|
and to protect their artistic integrity and prevent piracy. But DRM does NOT
|
||||||
|
prevent piracy. People who want to pirate content or use pirated content still
|
||||||
|
do it and succeed. The three major DRM schemes for e-books today are run by
|
||||||
|
Amazon, Adobe and Barnes and Noble and all three DRM schemes have been cracked.
|
||||||
|
All DRM does is inconvenience legitimate users. It can be argued that it
|
||||||
|
actually harms authors as people who would have bought the book choose to find
|
||||||
|
a pirated version as they are not willing to put up with DRM. Those that would
|
||||||
|
pirate in the absence of DRM do so in its presence as well. To reiterate, the
|
||||||
|
key point is that DRM *does not prevent piracy*. So DRM is not only pointless
|
||||||
|
and harmful to buyers of e-books but also a waste of money.
|
||||||
|
|
||||||
|
|
||||||
|
DRM and freedom
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Although digital content can be used to make information as well as creative
|
||||||
|
works easily available to everyone and empower humanity, this is not in the
|
||||||
|
interests of some publishers who want to steer people away from this
|
||||||
|
possibility of freedom simply to maintain their relevance in world developing
|
||||||
|
so fast that they cant keep up.
|
||||||
|
|
||||||
|
|
||||||
|
Why does calibre not support DRM?
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
calibre is open source software while DRM by its very nature is closed. If
|
||||||
|
calibre were to support opening or viewing DRM files it could be trivially
|
||||||
|
modified to be used as a tool for DRM removal which is illegal under today's
|
||||||
|
laws. Open source software and DRM are a clash of principles. While DRM is all
|
||||||
|
about controlling the user open source software is about empowering the user.
|
||||||
|
The two simply can not coexist.
|
||||||
|
|
||||||
|
|
||||||
|
What is calibre's view on content providers?
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
We firmly believe that authors and other content providers should be
|
||||||
|
compensated for their efforts, but DRM is not the way to go about it. We are
|
||||||
|
developing this database of DRM-free e-books from various sources to help you
|
||||||
|
find DRM-free alternatives and to help independent authors and publishers of
|
||||||
|
DRM-free e-books publicize their content. We hope you will find this useful and
|
||||||
|
we request that you do not pirate the content made available to you here.
|
||||||
|
|
||||||
|
|
||||||
|
How can I help fight DRM?
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
As somebody who reads and buys e-books you can help fight DRM. Do not buy
|
||||||
|
e-books with DRM. There are some publishers who publish DRM-free e-books. Make
|
||||||
|
an effort to see if they carry the e-book you are looking for. If you like
|
||||||
|
books by certain independent authors that sell DRM-free e-books and you can
|
||||||
|
afford it make donations to them. This is money well spent as their e-books
|
||||||
|
tend to be cheaper (there may be exceptions) than the ones you would buy from
|
||||||
|
publishers of DRMed books and would probably work on all devices you own in the
|
||||||
|
future saving you the cost of buying the e-book again. Do not discourage
|
||||||
|
publishers and authors of DRM-free e-books by pirating their content. Content
|
||||||
|
providers deserve compensation for their efforts. Do not punish them for trying
|
||||||
|
to make your reading experience better by making available DRM-free e-books. In
|
||||||
|
the long run this is detrimental to you. If you have bought books from sellers
|
||||||
|
that carry both DRMed as well as DRM-free books, not knowing if they carry DRM
|
||||||
|
or not make it a point to leave a comment or review on the website informing
|
||||||
|
future buyers of its DRM status. Many sellers do not think it important to
|
||||||
|
clearly indicate to their buyers if an e-book carries DRM or not. `Here
|
||||||
|
<https://www.defectivebydesign.org/guide/ebooks>` you will find a Guide to
|
||||||
|
DRM-free living.
|
@ -983,7 +983,7 @@ If you want to backup the calibre configuration/plugins, you have to backup the
|
|||||||
|
|
||||||
How do I use purchased EPUB books with calibre (or what do I do with .acsm files)?
|
How do I use purchased EPUB books with calibre (or what do I do with .acsm files)?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
Most purchased EPUB books have `DRM <https://drmfree.calibre-ebook.com/about#drm>`_. This prevents calibre from opening them. You can still use calibre to store and transfer them to your e-book reader. First, you must authorize your reader on a windows machine with Adobe Digital Editions. Once this is done, EPUB books transferred with calibre will work fine on your reader. When you purchase an epub book from a website, you will get an ".acsm" file. This file should be opened with Adobe Digital Editions, which will then download the actual ".epub" e-book. The e-book file will be stored in the folder "My Digital Editions", from where you can add it to calibre.
|
Most purchased EPUB books have :doc:`DRM <drm>`. This prevents calibre from opening them. You can still use calibre to store and transfer them to your e-book reader. First, you must authorize your reader on a windows machine with Adobe Digital Editions. Once this is done, EPUB books transferred with calibre will work fine on your reader. When you purchase an epub book from a website, you will get an ".acsm" file. This file should be opened with Adobe Digital Editions, which will then download the actual ".epub" e-book. The e-book file will be stored in the folder "My Digital Editions", from where you can add it to calibre.
|
||||||
|
|
||||||
I am getting a "Permission Denied" error?
|
I am getting a "Permission Denied" error?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -94,7 +94,7 @@ Convert books
|
|||||||
:class: float-right-img
|
:class: float-right-img
|
||||||
|
|
||||||
|cei| E-books can be converted from a number of formats into whatever format your e-book reader prefers.
|
|cei| E-books can be converted from a number of formats into whatever format your e-book reader prefers.
|
||||||
Many e-books available for purchase will be protected by `Digital Rights Management <https://drmfree.calibre-ebook.com/about#drm>`_ *(DRM)* technology.
|
Many e-books available for purchase will be protected by :doc:`Digital Rights Management <drm>` *(DRM)* technology.
|
||||||
calibre will not convert these e-books. It is easy to remove the DRM from many formats, but as this may be illegal,
|
calibre will not convert these e-books. It is easy to remove the DRM from many formats, but as this may be illegal,
|
||||||
you will have to find tools to liberate your books yourself and then use calibre to convert them.
|
you will have to find tools to liberate your books yourself and then use calibre to convert them.
|
||||||
|
|
||||||
|
@ -41,4 +41,5 @@ available <https://calibre-ebook.com/help>`_.
|
|||||||
customize
|
customize
|
||||||
generated/en/cli-index
|
generated/en/cli-index
|
||||||
develop
|
develop
|
||||||
|
drm
|
||||||
glossary
|
glossary
|
||||||
|
@ -1738,15 +1738,6 @@ class StoreNextoStore(StoreBase):
|
|||||||
affiliate = True
|
affiliate = True
|
||||||
|
|
||||||
|
|
||||||
class StoreOpenBooksStore(StoreBase):
|
|
||||||
name = 'Open Books'
|
|
||||||
description = 'Comprehensive listing of DRM free e-books from a variety of sources provided by users of calibre.'
|
|
||||||
actual_plugin = 'calibre.gui2.store.stores.open_books_plugin:OpenBooksStore'
|
|
||||||
|
|
||||||
drm_free_only = True
|
|
||||||
headquarters = 'US'
|
|
||||||
|
|
||||||
|
|
||||||
class StoreOzonRUStore(StoreBase):
|
class StoreOzonRUStore(StoreBase):
|
||||||
name = 'OZON.ru'
|
name = 'OZON.ru'
|
||||||
description = 'e-books from OZON.ru'
|
description = 'e-books from OZON.ru'
|
||||||
@ -1910,7 +1901,6 @@ plugins += [
|
|||||||
StoreMillsBoonUKStore,
|
StoreMillsBoonUKStore,
|
||||||
StoreMobileReadStore,
|
StoreMobileReadStore,
|
||||||
StoreNextoStore,
|
StoreNextoStore,
|
||||||
StoreOpenBooksStore,
|
|
||||||
StoreOzonRUStore,
|
StoreOzonRUStore,
|
||||||
StorePragmaticBookshelfStore,
|
StorePragmaticBookshelfStore,
|
||||||
StorePublioStore,
|
StorePublioStore,
|
||||||
|
@ -13,6 +13,7 @@ from PyQt5.Qt import QIcon, QSize
|
|||||||
from calibre.gui2 import error_dialog
|
from calibre.gui2 import error_dialog
|
||||||
from calibre.gui2.actions import InterfaceAction
|
from calibre.gui2.actions import InterfaceAction
|
||||||
from calibre.gui2.dialogs.confirm_delete import confirm
|
from calibre.gui2.dialogs.confirm_delete import confirm
|
||||||
|
from calibre.utils.localization import localize_user_manual_link
|
||||||
|
|
||||||
|
|
||||||
class StoreAction(InterfaceAction):
|
class StoreAction(InterfaceAction):
|
||||||
@ -146,8 +147,9 @@ class StoreAction(InterfaceAction):
|
|||||||
'buying from. Be sure to double check that any books you get '
|
'buying from. Be sure to double check that any books you get '
|
||||||
'will work with your e-book reader, especially if the book you '
|
'will work with your e-book reader, especially if the book you '
|
||||||
'are buying has '
|
'are buying has '
|
||||||
'<a href="https://drmfree.calibre-ebook.com/about#drm">DRM</a>.'
|
'<a href="{}">DRM</a>.'
|
||||||
)), 'about_get_books_msg',
|
).format(localize_user_manual_link(
|
||||||
|
'https://manual.calibre-ebook.com/drm.html'))), 'about_get_books_msg',
|
||||||
parent=self.gui, show_cancel_button=False,
|
parent=self.gui, show_cancel_button=False,
|
||||||
confirm_msg=_('Show this message again'),
|
confirm_msg=_('Show this message again'),
|
||||||
pixmap='dialog_information.png', title=_('About Get books'))
|
pixmap='dialog_information.png', title=_('About Get books'))
|
||||||
|
@ -44,8 +44,7 @@
|
|||||||
<widget class="QLabel" name="msg">
|
<widget class="QLabel" name="msg">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string><p>This book is locked by <b>DRM</b>. To learn more about DRM and why you cannot read or convert this book in calibre,
|
<string><p>This book is locked by <b>DRM</b>. To learn more about DRM and why you cannot read or convert this book in calibre,
|
||||||
<a href="https://drmfree.calibre-ebook.com/about#drm">click here</a>.<p>A large number of recent, DRM free releases are
|
<a href="https://manual.calibre-ebook.com/drm.html">click here</a>.<p></string>
|
||||||
available at <a href="https://drmfree.calibre-ebook.com">Open Books</a>.</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
@ -1,80 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
||||||
|
|
||||||
store_version = 1 # Needed for dynamic plugin loading
|
|
||||||
|
|
||||||
__license__ = 'GPL 3'
|
|
||||||
__copyright__ = '2011, John Schember <john@nachtimwald.com>'
|
|
||||||
__docformat__ = 'restructuredtext en'
|
|
||||||
|
|
||||||
from contextlib import closing
|
|
||||||
try:
|
|
||||||
from urllib.parse import quote_plus
|
|
||||||
except ImportError:
|
|
||||||
from urllib import quote_plus
|
|
||||||
|
|
||||||
from lxml import html
|
|
||||||
|
|
||||||
from PyQt5.Qt import QUrl
|
|
||||||
|
|
||||||
from calibre import browser, url_slash_cleaner
|
|
||||||
from calibre.gui2 import open_url
|
|
||||||
from calibre.gui2.store import StorePlugin
|
|
||||||
from calibre.gui2.store.basic_config import BasicStoreConfig
|
|
||||||
from calibre.gui2.store.search_result import SearchResult
|
|
||||||
from calibre.gui2.store.web_store_dialog import WebStoreDialog
|
|
||||||
|
|
||||||
|
|
||||||
class OpenBooksStore(BasicStoreConfig, StorePlugin):
|
|
||||||
|
|
||||||
def open(self, parent=None, detail_item=None, external=False):
|
|
||||||
url = 'https://drmfree.calibre-ebook.com/'
|
|
||||||
|
|
||||||
if external or self.config.get('open_external', False):
|
|
||||||
open_url(QUrl(url_slash_cleaner(detail_item if detail_item else url)))
|
|
||||||
else:
|
|
||||||
d = WebStoreDialog(self.gui, url, parent, detail_item)
|
|
||||||
d.setWindowTitle(self.name)
|
|
||||||
d.set_tags(self.config.get('tags', ''))
|
|
||||||
d.exec_()
|
|
||||||
|
|
||||||
def search(self, query, max_results=10, timeout=60):
|
|
||||||
url = 'https://drmfree.calibre-ebook.com/search/?q=' + quote_plus(query)
|
|
||||||
|
|
||||||
br = browser()
|
|
||||||
|
|
||||||
counter = max_results
|
|
||||||
with closing(br.open(url, timeout=timeout)) as f:
|
|
||||||
doc = html.fromstring(f.read())
|
|
||||||
for data in doc.xpath('//ul[@id="object_list"]//li'):
|
|
||||||
if counter <= 0:
|
|
||||||
break
|
|
||||||
|
|
||||||
id = ''.join(data.xpath('.//div[@class="links"]/a[1]/@href'))
|
|
||||||
id = id.strip()
|
|
||||||
if not id:
|
|
||||||
continue
|
|
||||||
|
|
||||||
cover_url = ''.join(data.xpath('.//div[@class="cover"]/img/@src'))
|
|
||||||
|
|
||||||
price = ''.join(data.xpath('.//div[@class="price"]/text()'))
|
|
||||||
a, b, price = price.partition('Price:')
|
|
||||||
price = price.strip()
|
|
||||||
if not price:
|
|
||||||
continue
|
|
||||||
|
|
||||||
title = ''.join(data.xpath('.//div/strong/text()'))
|
|
||||||
author = ''.join(data.xpath('.//div[@class="author"]//text()'))
|
|
||||||
author = author.partition('by')[-1]
|
|
||||||
|
|
||||||
counter -= 1
|
|
||||||
|
|
||||||
s = SearchResult()
|
|
||||||
s.cover_url = cover_url
|
|
||||||
s.title = title.strip()
|
|
||||||
s.author = author.strip()
|
|
||||||
s.price = price.strip()
|
|
||||||
s.detail_item = id.strip()
|
|
||||||
s.drm = SearchResult.DRM_UNLOCKED
|
|
||||||
|
|
||||||
yield s
|
|
Loading…
x
Reference in New Issue
Block a user