Show HN: Calibre-संगत ईबुक मैनेजमेंट ऐप, Citadel
(github.com/every-day-things)- Citadel एक ईबुक लाइब्रेरी मैनेजमेंट ऐप है, जिसका लक्ष्य Calibre द्वारा पढ़ी जा सकने वाली ईबुक लाइब्रेरी को बनाए रखते हुए बेहतर UX और अधिक तेज़ अनुभव देना है
- इसके मुख्य लक्ष्य हैं Calibre backward compatibility, उपयोग में आसान और आकर्षक इंटरफ़ेस, और Calibre से कहीं तेज़ तथा कभी भी उससे धीमा न होने वाला प्रदर्शन
- फिलहाल यह शुरुआती सॉफ़्टवेयर है, इसलिए bugs और फीचर्स की कमी की उम्मीद की जानी चाहिए; यह crash हो सकता है, बुनियादी फीचर्स गायब हो सकते हैं, या आपकी ईबुक लाइब्रेरी को नुकसान पहुँचा सकता है
- Citadel न तो ईबुक रीडर है और न ही ईबुक कंटेंट एडिटर; यह फ़ाइलों को डिफ़ॉल्ट ऐप में खोलता है और शीर्षक जैसी metadata मैनेजमेंट पर ध्यान देता है
- स्थिर builds Releases में और development builds GitHub Actions में मिल सकते हैं, और development के लिए Bun और Rust की ज़रूरत होती है
Citadel क्या करना चाहता है
- Citadel ईबुक लाइब्रेरी मैनेज करने वाला ऐप है, और Calibre के साथ backward compatibility इसकी मूल शर्त है
- Citadel द्वारा संशोधित लाइब्रेरी Calibre द्वारा पढ़ी जा सकनी चाहिए
- प्रोजेक्ट के तीन लक्ष्य हैं
- Calibre backward compatibility: Citadel द्वारा संपादित लाइब्रेरी को Calibre पढ़ सके
- अच्छा UX: यह इस्तेमाल में आसान और देखने में अच्छा होना चाहिए
- प्रदर्शन: यह Calibre की तुलना में काफ़ी तेज़ महसूस होना चाहिए, और कभी भी उससे धीमा नहीं होना चाहिए
क्या नहीं करता
- Citadel ईबुक रीडर नहीं है
- पहले से अच्छे ईबुक रीडर ऐप मौजूद हैं, इसलिए Citadel फ़ाइलों को उपयोगकर्ता के डिफ़ॉल्ट ऐप में खोलता है
- Citadel ईबुक कंटेंट एडिटर नहीं है
- अगर आपका काम शीर्षक जैसी metadata के बजाय ईबुक के मुख्य कंटेंट को एडिट करना है, तो यह उसका विकल्प नहीं है
- इसका लक्ष्य Calibre के साथ 100% feature parity हासिल करना नहीं है
- यह मुख्य रूप से plugins वाले क्षेत्र पर लागू होता है
- Calibre के कुछ advanced features शायद कभी न बनाए जाएँ
वर्तमान स्थिति और डाउनलोड
- Citadel अभी बहुत शुरुआती development stage में है
- यह crash हो सकता है
- बुनियादी फीचर्स गायब हो सकते हैं
- यह आपकी ईबुक लाइब्रेरी को नुकसान पहुँचा सकता है
- अगर आप Calibre लाइब्रेरी के साथ Citadel का इस्तेमाल करते हैं, तो नियमित backup ज़रूरी है
- थोड़े-बहुत स्थिर builds Releases से मिल सकते हैं
- development builds GitHub Actions से मिल सकते हैं
- किसी भी version का उपयोग करते समय आने वाले issues या crashes की report करने का अनुरोध किया गया है
macOS इंस्टॉलेशन पर ध्यान देने योग्य बातें
- macOS build अभी signed नहीं है
- अगर आप
Citadel.appको सीधे खोलते हैं, तो फ़ाइल के “damaged” होने की warning दिखाई देगी - फ़ाइल का Quarantine attribute हटाने से समस्या हल हो जाती है
- संबंधित निर्देश: Removing the Quarantine attribute from the file
- उदाहरण कमांड:
xattr -d com.apple.quarantine /Applications/Citadel.app/
development और build
- development के लिए Bun और Rust इंस्टॉल होना चाहिए
- पैकेज इंस्टॉल करें:
bun install - development चलाएँ:
bun run dev # or just bun dev - lint और format कमांड इस प्रकार हैं
- पूरा code format:
bun format - पूरे code का format check:
bun format:check - पूरे code का lint:
bun lint - backend format:
bun format:backend - backend lint:
bun lint:backend - frontend format:
bun format:web - frontend lint:
bun lint:web
- पूरा code format:
- backend के बिना भी ऐप preview चलाया जा सकता है
- Rust backend मौजूद नहीं होता, लेकिन उसके होने का अनुमान लगाया जाता है, इसलिए errors दिखाई देंगे
bun dev:app - production build, development prerequisites पूरी करने के बाद, इस कमांड से बनाई जाती है
bun install bun run build
updates और संबंधित प्रोजेक्ट्स
- Citadel ऐप updates की जाँच कर सकता है और अनुरोध होने पर उन्हें इंस्टॉल कर सकता है
- automatic update checks को Settings में
Auto updates: On/Offसे disable किया जा सकता है - इंस्टॉलेशन हमेशा स्पष्ट रूप से किया जाता है, और UI text
Install and restartहोता है - maintainer settings और release workflow की जानकारी
docs/updater-and-releases.mdमें है - Citadel Calibre को अपना benchmark मानता है, और Calibre redesign Figma prototype से प्रेरित है
1 टिप्पणियां
Hacker News टिप्पणियाँ
सवाल उठ सकता है, "Calibre Web जैसे मौजूदा प्रोजेक्ट में योगदान देने के बजाय नया ऐप क्यों बनाया?" इसका जवाब है बस इसे बनाना चाहता था
अभी यह एक hobby project है, इसलिए मौजूदा प्रोजेक्ट को extend करने से ज़्यादा रुचि इस बात में है कि थोड़ा कच्चा ही सही, लेकिन मज़े से software बनाया जाए। Citadel को Calibre के साथ backward-compatible रहने के लिए डिज़ाइन किया गया है, इसलिए Calibre Web भी आगे इस्तेमाल किया जा सकता है
backend में Calibre से जुड़ने वाला code भी अलग library में बाँट रखा है, ताकि बाद में दूसरे projects में भी इस्तेमाल किया जा सके। शायद Calibre library CLI भी संभव हो
"कई क्षेत्रों में पहिया दोबारा न बनाने की बात लगभग सामान्य समझ की तरह मानी जाती है। लेकिन कभी-कभी मैं कहना चाहूँगा कि फिर भी ऐसा करके देखो। उस प्रक्रिया से ही आप बेहतर बनते हैं, और अंत में बेहतर पहिए भी उसी तरह बनते हैं। क्योंकि लोग बस कोशिश करते हैं।"
https://www.youtube.com/watch?v=YOZnqjHkULc
Calibre इतना कष्टदायक है कि उसके features जानने के बाद भी उसे इस्तेमाल करना मुश्किल है, इसलिए न दादा-दादी को, न ही तकनीकी जानकार लोगों को इसे सुझाना आसान है
फिर भी उम्मीद है कि project अच्छा चले
[0] https://www.cs.cmu.edu/~awb/linux.history.html
अगर कोई ज़्यादा खुला, आधुनिक और hosted library को ध्यान में रखकर बना मज़बूत competitor मिले, तो मैं तुरंत उस पर चला जाऊँगा
कभी-कभी लगता है कि अगर Calibre बस देखने में थोड़ा बेहतर होता, तो लोग समझ पाते कि यह कितना शानदार है। ईमानदारी से कहूँ तो यह इतना बुरा भी नहीं है और मुझे व्यक्तिगत रूप से पसंद है, लेकिन लोग शायद उसके look से आगे नहीं बढ़ पाते
यह बार-बार crash होता रहा और प्रक्रिया इतनी धीमी थी कि मुझे इसे अलग machine पर ले जाना पड़ा। web interface से खोजकर देखा तो वह भी बहुत धीमा था
इसकी unintuitive UI की तो बात ही अलग है। library होने के हिसाब से यह असली पुस्तकालय जैसी लेखक वर्णमाला/अल्फ़ाबेट सूची के आसपास भी नहीं पहुँचता
समझ सकता हूँ कि ज़्यादातर लोगों के पास शायद 10 से 300 किताबें होंगी, लेकिन मैंने कुछ बड़ी libraries को Calibre में इस्तेमाल करने की कोशिश की और यह सच में टिक नहीं पाया
सिर्फ़ SQLite पर अड़े रहने का फ़ैसला भी मदद नहीं करता। मैंने लगभग 2016 में एक PR खोला था, लेकिन maintainer database layer को बदलने या उसे replaceable बनाने के काफ़ी सख़्त खिलाफ़ थे
और जब कुछ ही सेकंड में calibre-web container चलाकर साफ़-सुथरी UI और OPDS मिल सकती है, तो फिर उस "aesthetic" को क्यों झेलना चाहिए, समझ नहीं आता
यह intuitive नहीं है और इसकी UI/UX काफ़ी खराब है। यह वही अभिशाप झेलता दिखता है जिससे powerful applications अक्सर गुजरते हैं
फिर भी आज इसे दोबारा आज़माने का सोच रहा हूँ, यह देखने के लिए कि क्या इसकी आदत डाली जा सकती है। ख़ासकर advanced users के लिए, एक मुफ़्त product के रूप में यह वाकई शानदार है
यह एक अच्छा प्रोजेक्ट है। मुझे Calibre की functionality पसंद है, लेकिन उसके UI से मुझे भी काफ़ी घुटन महसूस होती है, इसलिए मैंने ऐसा interface डिज़ाइन करना शुरू किया जो Apple Music से पहले वाला iTunes और iBooks का मिश्रण लगे।
अभी सिर्फ़ एक screen बनाई है, उसे यहाँ देख सकते हैं: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
मुख्य सवाल यह था कि Calibre की प्रमुख सुविधाओं को ऐसे UI में कैसे दिखाया जाए जो macOS native जैसा महसूस हो।
अगर cross-platform लक्ष्य न हो, तो समय मिलने पर इसे Rust backend के साथ SwiftUI app के रूप में बनाने की कोशिश की जा सकती है।
Calibre के development के साथ चलते हुए maintenance करना मुश्किल हो सकता है, लेकिन यह एक मज़ेदार hobby project लगता है।
खासकर Kemie Guaida[1] ने Reddit पर जो redesign पोस्ट किया था, वह मेरे लिए बड़ी design inspiration था, और repository में credit भी जोड़ना है, इसलिए उसे जल्द शामिल करूँगा: https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
पूरे प्रोजेक्ट का overview यहाँ देख सकते हैं: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
[1]: https://kemielikes.design/
कल मुझे पता चला कि Ubuntu 22.04 में Kobo reader कनेक्ट करने के बाद
/media/oakhaven/koboreadermount point केroot/directory में epub बस कॉपी कर देना होता है। फिर वह डिवाइस की किताबों की सूची में दिखाई देने लगता है।किसी वजह से मुझे लगता था कि Kobo पर किताबें डालना जटिल होगा, इसलिए मैं लैपटॉप से Kobo में किताबें भेजने के लिए सिर्फ़ Calibre का इस्तेमाल करता था।
मुझे पता था कि Calibre में और भी कई फीचर हैं, लेकिन उसका interface मुझे पसंद नहीं था, और अब अच्छा लग रहा है कि मुझे Calibre या वैसी किसी app का इस्तेमाल नहीं करना पड़ेगा।
किसी खास format की ज़रूरत नहीं होती और ePub जैसे standard format अच्छी तरह काम करते हैं।
इसलिए मैं हमेशा सोचता था कि Kindle इतना लोकप्रिय कैसे बना हुआ है। शायद first-mover advantage हो, लेकिन ePub और PDF न पढ़ पाने वाला e-reader मुझे ऐसे audio player जैसा लगता है जो MP3 और AAC नहीं चला सकता।
[1]: https://pgaskin.net/kepubify/
मेरा ख़याल है कि मैं पहले USB से किताबें डालता था, फिर daily news और अतिरिक्त किताबें rsync से sync करता था। कुछ content auto-scraping या email subscription जैसी चीज़ों से अपने-आप बनकर directory में चला जाता था, और कुछ चीज़ें मैं manually डालता था, जैसे खरीदने के बाद नई किताबें कॉपी करना।
सच कहें तो यह बहुत जटिल समस्या नहीं है, लेकिन Calibre सिर्फ़ किताबों को किसी खास folder structure में कॉपी करने से कहीं ज़्यादा काम करता है।
यह सिर्फ़ folder खोलकर copy/paste करने से सच में आसान है या नहीं, यह तो नहीं जानता, लेकिन Citadel डिवाइस में कौन-सी किताबें हैं यह पहचानते समय Calibre द्वारा इस्तेमाल की जाने वाली metadata files को update करता है, ताकि folder की हर file को पढ़ना न पड़े।
अच्छा लग रहा है। पिछले हफ़्ते ही मैंने फिर से Calibre इस्तेमाल करने की कोशिश की थी और उसके UI नाम के black hole में फँस गया। मैंने UI/UX काम contribute करने के बारे में सोचा था, लेकिन वह कई साल का प्रोजेक्ट लग रहा था।
उसकी जगह शायद मैं इस प्रोजेक्ट के UI/UX में मदद कर सकूँ।
उन्होंने कमाल का काम किया है, लेकिन वह उन लोगों में से हैं जिनकी पसंद बहुत मज़बूत होती है, इसलिए जब कोई दूसरा काम करने की पेशकश करता है तो कुछ बातों पर वह तेज़ी से और कुछ हद तक मनमाने ढंग से अजीब तरह से hostile हो सकते हैं।
फिर कई महीनों तक किताबें पढ़ता हूँ और यही प्रक्रिया दोहराता हूँ।
सच में जिज्ञासा है, क्या Calibre जितनी feature-rich कोई native smartphone app का उदाहरण है, जो चीज़ें इससे कहीं बेहतर और आसान तरीके से उपलब्ध कराता हो?
यह अच्छा लगा कि एक hobby project को सच में लॉन्च किया गया। दिखने में भी साफ-सुथरा है। और calibre CLI का निश्चित रूप से स्वागत होगा। मेनू में पाँच-पाँच स्तर क्लिक करके अंदर जाना मुझे पसंद नहीं है
अगर "reader" और "editor" वाले क्षेत्र स्पष्ट लक्ष्य नहीं हैं, तो जिज्ञासा है कि Citadel वास्तव में यूज़र्स के लिए करता क्या है। क्या यह मुख्य रूप से किताबें देखने, sort करने और क्लिक करने का एक portal है? क्या आगे और फीचर्स के लिए कोई roadmap है?
Citadel किताब के title, author, और आगे चलकर tags व custom columns जैसी metadata को edit करने का समर्थन करता है, और इसका कुछ हिस्सा पहले से सपोर्ट करता है। यह तो पक्का है। device sync भी समय के साथ आएगा, और online sources से metadata डाउनलोड करने की सुविधा भी जोड़ी जाएगी
लेकिन किताब की सामग्री edit करने या built-in e-book reader जोड़ने की योजना नहीं है। पहले से ही बहुत अच्छे e-book apps और devices मौजूद हैं, और epub editing मुझे collection management की तुलना में कम आम उपयोग लगती है
कोई roadmap नहीं है, लेकिन feedback और ideas के लिए मैं हमेशा खुला हूँ
इसके अलावा format conversion और DRM removal जैसी सुविधाएँ भी शायद आएँगी। आदर्श रूप से इन्हें crate या plugin के रूप में लागू करना चाहूँगा ताकि extension बनाना आसान हो
ebook-convertनाम का CLI है। यह epub, pdf, azw3, mobi जैसी कई file formats को सपोर्ट करता हैउदाहरण:
ebook-convert file.epub file.azw3यह वाकई शानदार लग रहा है और मैं इसे देखना चाहूँगा। विडंबना यह है कि मैंने भी हाल ही में उसी stack, यानी Rust + Tauri + Svelte के साथ audiobook management के लिए एक desktop app बनाया है
अगर किसी की दिलचस्पी हो तो थोड़ा प्रचार कर दूँ: https://gitlab.com/fonner/audiobook-locker#audiobook-locker
जानना चाहूँगा कि आपने इस project के लिए Svelte और Tauri क्यों चुना। क्या आप पहले से इनके साथ सहज थे?
यह थोड़ा अलग मुद्दा है, लेकिन इस execution pattern ने मेरा दिन बना दिया
bun dev -- -- -- -- --server ...दिलचस्प है। मैंने भी कुछ समय पहले इसी तरह के विचार पर मिलता-जुलता project शुरू किया था, लेकिन native app की जगह SvelteKit और browser चुना
https://github.com/project-kiosk/kiosk
इसे पूरा करने लायक motivation मैं लंबे समय तक बनाए नहीं रख पाया
Citadel पर एक छोटी पोस्ट: https://denhoff.ca/posts/replacing-calibre