mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -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)?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
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?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -94,7 +94,7 @@ Convert books
|
||||
:class: float-right-img
|
||||
|
||||
|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,
|
||||
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
|
||||
generated/en/cli-index
|
||||
develop
|
||||
drm
|
||||
glossary
|
||||
|
@ -1738,15 +1738,6 @@ class StoreNextoStore(StoreBase):
|
||||
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):
|
||||
name = 'OZON.ru'
|
||||
description = 'e-books from OZON.ru'
|
||||
@ -1910,7 +1901,6 @@ plugins += [
|
||||
StoreMillsBoonUKStore,
|
||||
StoreMobileReadStore,
|
||||
StoreNextoStore,
|
||||
StoreOpenBooksStore,
|
||||
StoreOzonRUStore,
|
||||
StorePragmaticBookshelfStore,
|
||||
StorePublioStore,
|
||||
|
@ -13,6 +13,7 @@ from PyQt5.Qt import QIcon, QSize
|
||||
from calibre.gui2 import error_dialog
|
||||
from calibre.gui2.actions import InterfaceAction
|
||||
from calibre.gui2.dialogs.confirm_delete import confirm
|
||||
from calibre.utils.localization import localize_user_manual_link
|
||||
|
||||
|
||||
class StoreAction(InterfaceAction):
|
||||
@ -146,8 +147,9 @@ class StoreAction(InterfaceAction):
|
||||
'buying from. Be sure to double check that any books you get '
|
||||
'will work with your e-book reader, especially if the book you '
|
||||
'are buying has '
|
||||
'<a href="https://drmfree.calibre-ebook.com/about#drm">DRM</a>.'
|
||||
)), 'about_get_books_msg',
|
||||
'<a href="{}">DRM</a>.'
|
||||
).format(localize_user_manual_link(
|
||||
'https://manual.calibre-ebook.com/drm.html'))), 'about_get_books_msg',
|
||||
parent=self.gui, show_cancel_button=False,
|
||||
confirm_msg=_('Show this message again'),
|
||||
pixmap='dialog_information.png', title=_('About Get books'))
|
||||
|
@ -44,8 +44,7 @@
|
||||
<widget class="QLabel" name="msg">
|
||||
<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,
|
||||
<a href="https://drmfree.calibre-ebook.com/about#drm">click here</a>.<p>A large number of recent, DRM free releases are
|
||||
available at <a href="https://drmfree.calibre-ebook.com">Open Books</a>.</string>
|
||||
<a href="https://manual.calibre-ebook.com/drm.html">click here</a>.<p></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<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