Legal · Privacy

Privacy Policy

How Kawa handles data across the app, iCloud sync, App Store purchases, and the optional cloud go-live alert service.

Last updated: October 27, 2026 · Effective: October 27, 2026

Overview#

Kawa (the “App”) is developed and operated by independent developer Kami (the “Developer”). The App processes only the data needed to provide live-stream aggregation, short-drama viewing, go-live alerts, synchronization, diagnostics, and App Store purchase features. This policy explains which information the Developer, Cloudflare, Apple, and third-party streaming platforms process. Cloud Standby Recording is a service separate from the App; the data it processes is described in the Cloud Standby Recording service notes (in Chinese).

Data We Process#

Local Storage and iCloud#

Followed-streamer lists, video quality and danmaku preferences, temporary player state, and third-party platform login credentials you choose to save are primarily stored on your device. Turning off iCloud sync stops future synchronization; data already on the device remains available.

App Store purchase records and entitlement status are managed by the RevenueCat SDK. They are not synchronized through Kawa’s iCloud / CloudKit data area and do not create a website purchase credential. iCloud sync excludes purchase and historical trial status, player caches, live-status snapshots, livestream watch-duration logs, crash logs, and other temporary local state. Livestream watch-duration logs are stored only on the device.

Short Dramas and Viewing Records#

Short dramas are currently available only in some iPhone and iPad test builds. When you use them, your device requests catalogs, search results, series, episodes, and media directly from the short-drama content platform. The platform receives information necessary for those requests, such as your IP address and temporary request identity, and handles it under its own privacy policy. Temporary request identities, signed media addresses, and decryption parameters are used only in request and player memory.

The App stores public series metadata, series and episode identifiers, follow decisions, actual resume positions, watched status, and clear decisions on your device. With iCloud sync enabled, these drama records and the random device/session identities, viewing start/end facts, and operation ordering needed to merge them sync through your private CloudKit data area. Complete drama operation payloads use encrypted fields. The Developer's servers do not receive these records. Playback remains under local control; another device's position is offered as a resume choice. When you leave the player, the App keeps one thumbnail of the last frame you saw for that series in the device cache, used by the Watching list and the Continue Watching entry; recent search terms are likewise kept only on the device. Neither is synced through iCloud. The thumbnail is deleted when you clear that series' viewing history, and recent searches can be cleared on the search screen.

While sync is off, viewing, follow, and clear operations continue to be saved locally, and cloud records remain. When sync is reenabled and the same Apple Account is available, operations made while it was off merge automatically. Removing a drama follow preserves viewing records. Clearing one series or all drama viewing records preserves follows; clear decisions remain saved and synced to constrain late old records. Starting playback again creates new records normally.

Once an Apple Account is confirmed, drama operations are stored in account partitions. The first confirmed account adopts earlier local records; later account switches use the corresponding partition, and returning to the original account restores its records. If the system account is temporarily unavailable, local records and pending sync operations remain available, with status and retry controls.

Episode posters are generated on your device from the actual current playback frame and contain the series title, episode number, content source, capture time, and a QR code carrying series/episode identifiers. Whole-series links contain the series identifier. You choose recipients through the system share sheet; the Developer does not receive posters or shared content. An episode recipient starts from the beginning and can return to their own previous resume position. Share targets carry no signed media addresses, decryption parameters, account identifiers, or viewing progress.

Streamer Lists#

A streamer list is a list of streamers that someone has put together and shares as a JSON file. The preset streamer list is downloaded from the Kawa website (delivered through Cloudflare). When you subscribe to the address of a third-party streamer list, the App connects directly to the third-party server at that address to download it, and refreshes it as needed when you open that list later. That server receives ordinary request information, such as your IP address, and its operator decides how that information is handled. Avatar addresses in a streamer list are likewise requested by your device directly from the servers they point to.

Streamer list files you import and the contents of all streamer lists are stored only on your device. They are included in your device backups and are not synchronized through iCloud. When iCloud sync is enabled, the address and name of each streamer list you subscribe to are synchronized through your own iCloud / CloudKit account across devices using the same Apple Account, and each device downloads the list's contents from that address itself. Which list you are currently browsing is remembered separately on each device and is not synchronized. Kawa does not upload any streamer list data, and the Developer cannot see which streamer lists you subscribe to or import.

Content Translation and Live Captions#

Content translation translates stream titles, streamer nicknames, and danmaku. Live captions transcribe what the streamer says into on-screen captions and can show a translation alongside. Live captions are off by default until you turn them on. Both use the same translation engine, which you choose in Settings: Apple system translation or a custom translation service.

Go-Live Alerts#

Local go-live notifications (liveNotifications) are triggered when the client checks status while the App is running or during a system-scheduled background refresh, then uses the system notification service. This is a Free feature. Notification permission, APNs, and system banners are also free system capabilities.

Cloud Go-Live Alerts (cloudLiveMonitoring) are an optional service hosted by the Developer and included with the Full Version. You must explicitly enable the service on iPhone, iPad, or Mac; it is off by default. Once enabled, the Developer uses Cloudflare to keep monitoring registered rooms while the App is not running, deduplicate live-state changes, and deliver alerts through Apple Push Notification service (APNs). Delivery depends on network and third-party services and is provided on a best-effort basis.

Cloud Alert Data and Retention

Cloud Go-Live Alerts use an explicit opt-in, one-way, non-readable notification subscription index. It is separate from product-data sync: the Worker exposes no subscription read endpoint and never returns your follow list to any client. iCloud remains the product-data sync path between Apple clients.

The cloud service never uploads third-party platform cookies, platform login credentials, or a device fingerprint. Those sign-in credentials remain on your device or in your personal iCloud when you choose to enable iCloud sync.

Network Services#

Apple’s privacy policy applies to purchases, refunds, and Apple Account data. The Developer processes only the data expressly described in this policy.

Website Feedback Board#

The website's feedback board (Chinese only) is a public, anonymous page. Anything submitted there becomes publicly visible immediately, with no pre-publication review. Do not include phone numbers, government identifiers, credentials, or anything else that identifies you.

The board requires no sign-in, collects no email address or other contact details, and sets no tracking cookies. Votes carry no server-side identity.

The page provides no in-page reporting or deletion control. To have your submission removed, or to report advertising, unlawful, or privacy-violating content, contact [email protected].

In-App Problem Reports#

In the App, tapping Report a problem in the About area of the main Settings screen sends a report to the Developer. A report is sent only when you tap Send; nothing is uploaded automatically. Reports are delivered and stored through a feedback service provided by AirBuild. They are not public: only the Developer can view them.

Sending a report requires no sign-in, and a report contains no account or device identifier, so reports are anonymous. If you would like a reply, include a way to reach you in your text. Reports are used only to find and fix problems, and for no other purpose.

AirBuild processes these reports under its privacy policy. The service does not currently support deleting reports or setting a retention period, so a report is kept after it is sent. Because reports are anonymous, the Developer also cannot tell which report is yours. A report therefore cannot be deleted at your request after it is sent. Do not put anything in the text or screenshots that you do not want stored.

Website Beta Applications#

This section applies only to applications you choose to submit on the website's Beta application page. The page sends your Apple order ID and the email address you choose for TestFlight invitations to the Developer's service hosted on Cloudflare, to verify a Lifetime Full Version purchase, send an invitation, and enforce one email address per order. Application details are not made public.

The service does not store or log raw order IDs, email addresses, IP addresses, or transaction payloads returned by Apple. To manage applications, it stores irreversible digests of the order, the purchase (derived from the Apple transaction ID), and the email address, plus an Apple tester ID, the application status, and timestamps. To avoid sending duplicate invitation emails, the email digest is also kept in a send record for up to 24 hours. Short-term rate-limit digests expire when their rate-limit window ends and are deleted while later requests are processed. Raw IP addresses are not stored.

To send an invitation, the email address you provide is submitted to Apple. Apple retains the tester email address in TestFlight and processes it under its privacy policy. The order-to-email binding in the Developer's service is retained while your testing eligibility remains valid. You can contact the Developer to request deletion: you are first removed from the Beta testing group, and the service's binding record is then deleted. The order can be used to apply again after deletion. This does not delete purchase records held by Apple; Apple manages the data it holds under its own policies.

Historical Website Purchases and Support Services#

New App Store purchases do not require a Kawa purchase account and do not use the historical systems described below. The historical account, payment-result, and Apple TV authorization pages on the website have been taken offline. To support existing website purchasers, the Developer may still hold the following historical data:

This data is used only for historical account support, existing-order verification, entitlement migration, refund or dispute handling, security audits, and legal obligations. It is not used to create new website purchases. Eligible historical purchasers will primarily migrate through App Store offer codes; an offline final build will be available when that method cannot be used. Steps and timing are available from [email protected].

When an account deletion request is submitted, the historical License and device sessions are disabled immediately and a seven-day withdrawal period begins. The historical account page is offline, so to request deletion or cancel it during that period, email [email protected]. After the period ends, the Developer deletes or de-identifies the account email, device records, login sessions, and usage data. Minimal order, transaction, audit, and historical trial anti-abuse records may be retained until applicable tax, reconciliation, transaction-idempotency, fraud-prevention, refund-dispute, purchase-recovery, and migration obligations end, then deleted or anonymized.

Historical website purchases are not App Store transactions and cannot be read through Restore Purchases in the App. With the historical account page offline, contact [email protected] to review or unlink devices, reset the License Key, request or cancel account deletion, or request access to, correction of, or deletion of other historical support data held by the Developer. Data required by law or for unresolved refunds, disputes, or migration obligations may not be deleted immediately.

Your Controls#

An App Store purchase does not create a Kawa purchase account. Apple manages Apple Accounts and App Store purchase history under its policies, and the Developer cannot delete purchase history held by Apple. When you turn off Cloud Go-Live Alerts, the local switch immediately remains off and the client immediately sends an unregister request. After the service successfully processes it, the service deletes that installation's cloud subscriptions, push address, authorization associations, and service-admission record; the transaction digest is removed when its last associated installation is deleted; the client retries on a later launch after a failure. Uninstalling the App or going 90 continuous days without a successful registration expires the installation lease and places the related cloud records into bounded daily cleanup; short-term security digests expire under the limits above. You can also clear local data in the App and manage iCloud data in system settings. Contact us regarding diagnostics, support, or historical migration data held by the Developer. For how in-app problem reports are kept and deleted, see “In-App Problem Reports” above.

For Promotion Program applications, including those not approved or withdrawn, the text, status, review result, and any reason for not approving are kept while the Promotion Program runs, to determine the interval and number of reapplications. Images are deleted 30 days after review ends (approved, not approved, or withdrawn). Referral codes, Referrer credential digests, referral reward ledger entries, balances, and withdrawal records are kept while the Promotion Program runs, to reconcile referral rewards, refunds, and withdrawals. You can contact [email protected] to delete this data, including application text and images; after deletion your referral code stops working, any unwithdrawn balance is forfeited, and any application under review is void. Records we must keep by law or for unsettled withdrawals and refunds may be deleted later.

Third-Party Platforms#

The App accesses third-party streaming platforms including Bilibili, Douyu, Huya, Douyin, Xiaohongshu, Bigo, Laixiu, Twitch, YY, TikTok, CHZZK, PandaTV, and SOOP. Saved login credentials are used only to request live streams, danmaku, or signed-in features from the corresponding platform on your behalf. Your use of those platforms is also subject to their terms and privacy policies.

Changes to This Policy#

We will announce material changes through an App update or on this website. Material changes affecting existing paid entitlements will be communicated separately in accordance with applicable law and approved legacy arrangements.

Contact#

For privacy questions, contact [email protected].

If you contact us to withdraw a referral reward, the payment details you provide in that email do not enter our systems. They are used only to complete that payout and are given to the payment channel used for it, and we delete the emails containing your payment details once the payout is done.