你的音樂、你的網路、你的資料。
Serento 是一款以本機為先的 App,瀏覽你的 UPnP 音樂伺服器並播放到你的網路播放器。我們不經營任何監看你聆聽的伺服器,也不販售資料。Serento 沒有帳號:我們在帳號層級保留的唯一紀錄,是每個 Apple ID 恰好一列 · 一個單向金鑰、試用開始的時間、我們最後一次聽到該金鑰的時間,以及內部管理欄位 · 這是一個防濫用的錨點,說不出你是誰,也說不出你播放什麼。本頁列出每一個離開你裝置的位元組,以及它們的去向。
01 我們是誰
Serento 由在羅馬尼亞布加勒斯特註冊的 Dusty Enterprise SRL 發行。依歐盟資料保護法(GDPR),Dusty Enterprise SRL 是 Serento 就你所處理之任何資訊的資料控管者。任何隱私權問題或請求,請來信 contact@serento.app · 你的法定權利請見第 11 節。
02 Serento 是什麼 · 又不是什麼
Serento 是一個 UPnP / OpenHome 控制點。它在你的 iPhone、iPad 或 Mac 上執行,於區域網路中尋找你的音樂伺服器與播放器,向它們索取目錄,並告訴播放器要播放什麼。音訊位元組直接從你的伺服器(或你所選的電台)流向播放器 · 它們從不經過 Serento,也不經過我們營運的任何基礎設施。
- 沒有帳號。沒有註冊畫面、沒有電子郵件地址、沒有密碼、沒有「以 Apple / Google 登入」。我們的權利服務為每個 Apple ID 保留恰好一列:一個單向金鑰、試用開始的時間、我們最後一次聽到該金鑰的時間,以及內部管理欄位。該列不帶姓名、不帶電子郵件地址、不帶購買紀錄,也不帶任何關於你播放什麼的資訊。它是一個防濫用的錨點,不是使用者帳號。
- 沒有集中式目錄。我們沒有你音樂庫的副本。我們不索引你的音樂。我們不推薦曲目。瀏覽與搜尋都是即時從你自己的 UPnP 伺服器讀取。
- 沒有第三方追蹤 SDK。我們不內建分析 SDK(沒有 Firebase、沒有 Google Analytics、沒有 Mixpanel、沒有 Amplitude、沒有 PostHog)。我們不內建歸因 SDK(沒有 AppsFlyer、沒有 Branch、沒有 Adjust)。我們不內建廣告 SDK 或社群網路 SDK。不過我們確實收集自有的遙測資料,儲存在下方第 02a 節所述的金鑰之下。
- 不追蹤你。我們的遙測後端從不記錄你的 IP 位址、你的音樂庫內容(沒有曲目 · 專輯 · 演出者名稱,沒有檔案路徑)、你的播放紀錄,或你的搜尋字詞。它只收到計數與百分比,儲存於你的帳號金鑰之下。我們不會跨其他公司的 App 或網站追蹤你,也絕不販售或分享這些資料。
02a 化名遙測(我們確實收集的內容)
為了瞭解哪些裝置與作業系統版本正在使用中、人們搭配哪些播放器,以及 · 最重要的 · 實際使用中的音樂中繼資料有多完整(以便我們判斷是否值得打造更好的中繼資料工具),App 會傳送一份小小的報告給我們。它不含姓名、電子郵件或 Apple ID,而且金鑰是單向的,因此不會揭露你是誰或你音樂庫的內容。這是使用 Serento 的條件之一,於此處及使用條款中揭露;沒有個別使用者的退出選項。具體而言:
- 你的帳號金鑰。在你裝置上計算出的 iCloud 帳號識別碼單向雜湊值。它不是你的 Apple ID、不是你的姓名、不是你的電子郵件,我們也無法逆推。它與你的免費試用和訂閱所使用的金鑰相同,因此我們能看出同一個人的報告彼此相屬。它是穩定的:重新安裝不會改變它,而且在你登入的每一部裝置上都相同。
- 一個裝置識別碼。這個 App 為自己產生並保存在鑰匙圈中的隨機識別碼,好讓你 iPad 的報告能與 Mac 的區分開來。它不是硬體 ID,也不是 Apple 的識別碼。
- 粗略的裝置資訊 + App 使用量。平台(iPhone / iPad / Mac)、裝置型號識別碼、作業系統名稱 + 版本、App 版本 + 組建、總計 / 可用記憶體、你的兩碼地區(取自裝置的地區設定 · 絕不取自我們從不儲存的 IP),以及 App 被使用了多久(工作階段時長,以秒計)。
- 你正在播放的播放器。只有你當下連線的播放器,且恰好六項資訊:其 UDN 的單向雜湊值,讓我們能在各份報告間認出同一台機器,同時從不持有 UDN 本身;其名稱;其型號;以及它是否支援 DLNA、OpenHome 與軟體音量控制。名稱是裝置自行宣告的名稱,因此若你重新命名過,我們收到的就是你所選的名稱。當你播放到自己的裝置而非網路播放器時,也以同樣方式回報,記為「This iPhone」、「This iPad」或「This Mac」,並附上你的裝置型號。
- 音樂庫組成 · 僅計數。你的伺服器有多少曲目 · 專輯 · 演出者、多少檔案是 DSD 而多少是 PCM、依格式(FLAC、ALAC、DSD、MP3、…)與解析度的分佈,以及 · 我們最在意的部分 · 你有多少百分比的曲目填有各個標籤欄位(標題、演出者、專輯、曲風、年份、…)。是計數與百分比,絕不是你音樂的名稱或內容。
我們無法據此重建你的音樂庫,而且金鑰是單向的,因此它不會告訴我們你是誰:沒有姓名、沒有電子郵件、沒有 Apple ID。我們絕不販售它。原始報告在 13 個月後刪除。
03 留在你裝置上的內容
以下內容在你的 iPhone、iPad 或 Mac 上本機建立與儲存。除第 02a 節(遙測)、第 04 節(iCloud 同步)或第 06 節(你選擇傳送的診斷記錄)明確載明者外,這些內容都不會離開裝置:
- 音樂庫快取。當你連上 UPnP 伺服器(MinimServer、Plex、Twonky、Asset、JRiver 等)時,我們會取得專輯 · 演出者 · 曲目名稱、時長、編碼、取樣率、檔案路徑與封面。這些會寫入位於 App 沙箱內的 SwiftData 儲存區。只有裝置上的 Serento 會讀取它們,且僅在 App 執行時。
- App 偏好設定。主題、預設佇列方式、無縫播放開關、靜音網路延遲、字母索引列開關、音量控制開關、專輯版本分組設定、上次選取的播放器 · 伺服器 · 音樂庫 · 分頁。儲存於 UserDefaults。
- 探索快取。Serento 在你區域網路上看到的 UPnP 伺服器與播放器 · IP 位址、易記名稱、UDN、支援的服務。用來在選擇器中呈現它們,而不必每次啟動都重跑完整的 SSDP 掃描。刪除 App 即清除。
- 最近搜尋。你在搜尋分頁輸入的最近幾筆查詢。用來填入「最近」區塊。可透過搜尋中的清除按鈕清空。
- Plex 驗證權杖。若你以 Plex 帳號登入,Plex API 會回傳一個存取權杖。Serento 將它存放在鑰匙圈中(受你的裝置密碼 / Face ID / Touch ID 保護)。權杖只有 Serento 會讀取;絕不會傳送給 Dusty Enterprise SRL。
- 診斷記錄檔。UPnP 探索、播放轉換、播放器回應與錯誤狀況的輪替式記錄。儲存於 App 沙箱內。除非「你」在設定中點按「將記錄傳送給開發者」,否則絕不傳輸(見第 06 節)。
- 刪除 App 後仍留存的鑰匙圈值。少數值存放在鑰匙圈中,並在你刪除 Serento 時刻意不予移除:第 02a 節所述的裝置識別碼 · 它讓每部裝置的設定各自獨立,也是隨遙測一併傳送、用以區分你各部裝置的識別碼 · 以及一個用來限制離線存取的時間戳記,好讓重新安裝 App 無法重啟免費試用。
04 透過 Apple iCloud 在你自己的裝置間同步的內容
Serento 使用 Apple 的 CloudKit,在登入同一 Apple ID 的 Apple 裝置間同步一小組個人整理資料。資料存放在「你的」私人 iCloud 容器中 · Apple 的文件保證即使是 Apple 員工也無法讀取;Dusty Enterprise SRL 同樣沒有伺服器端存取權(我們僅從裝置寫入與讀取,絕不從後端)。同步的內容:
- 收藏。你標為收藏的曲目、專輯、演出者與電台。
- 播放列表。你在 Serento 中建立的播放列表名稱與曲目清單。
- 標籤與書籤。你建立的標籤與你標記過的項目;你儲存的書籤。
- 稍後聆聽清單。你加入稍後聆聽的項目。
- 自訂電台。你新增的電台(名稱 + 串流網址 + 編碼提示)。
- 專輯與曲目評分。你給的 1–5 顆星。
- 各裝置的 App 設定。每部裝置保有自己的設定列,因此 iPhone 與 Mac 可以有不同的組態。儲存於你的私人容器中,位於第 02a 節所述的裝置識別碼之下。
05 Serento 產生的網路流量
Serento 從你裝置發出的每一個連線。此外沒有別的。
- 你的區域網路 · UPnP 探索。SSDP 多點傳送探測(UDP 1900)以尋找 UPnP 伺服器與播放器。Plex 的 GDM(UDP 單點傳送)以尋找 Plex Media Server。在有發佈的網路上,以 Bonjour mDNS 尋找 Plex。全部侷限於你的區域網路內。
- 你的區域網路 · 控制。對你的 UPnP 伺服器(ContentDirectory)與播放器(AVTransport、OpenHome Playlist / Product / Volume / Info、RenderingControl)發出的 HTTP / SOAP 請求。用於瀏覽音樂庫與驅動播放。
- 你的區域網路 · 音訊串流。當你按下播放,Serento 會把所選曲目的串流網址告訴播放器。播放器直接從你的伺服器取得音訊。位元組不會經過 Serento 或我們營運的任何基礎設施。
- Apple iCloud / CloudKit。第 04 節所列資料的同步流量。以你的 Apple ID 送往 Apple 的伺服器 · 這一段行程由 Apple 的隱私權政策規範。
- Apple App Store / StoreKit。用於購買、回復購買,以及 Apple 簽發的簽章收據。購買在裝置上依 Apple 的簽章驗證,絕不傳送給我們。由 Apple 的 StoreKit 框架處理;適用 Apple 的隱私權政策。每筆購買也會帶上一個 App 帳號權杖:由同一個單向帳號金鑰衍生的 UUID,好讓 Apple 在數月後告知我們某筆訂閱已續訂或已核准退款時,我們能把該通知對應到正確的帳號。Apple 會收到並儲存該值。它仍然是單向的,也仍然不是你的 Apple ID。
- Serento 權利服務。App 啟動時,會向我們自己的伺服器詢問你的免費試用是否仍在進行。它送出一個帳號金鑰與你的 App 版本,此外沒有別的。帳號金鑰是你 iCloud 帳號識別碼的單向雜湊值 · 與遙測已在使用的是同一個值 · 且無法還原成 Apple ID。伺服器保留你試用開始的日期,以及它最後一次聽到你金鑰的日期,好讓重新安裝 App 無法重啟試用。它從不被告知你買了什麼,我們也絕不會收到你的姓名、電子郵件地址、Apple ID 或任何付款細節。
- plex.tv(僅限 Plex 使用者)。若你以 Plex 登入,Serento 會與 plex.tv 通訊以進行驗證並查詢你可存取的 Plex 伺服器。該段行程適用 Plex Inc. 的隱私權政策。若你不使用 Plex,就不會有任何 plex.tv 流量。
- 網路電台串流。當你播放電台時,你的裝置直接從廣播業者的網址取得音訊。我們無從得知你播放什麼。廣播業者會看到你的 IP。
- serento.app。三件事。第 02a 節所述的遙測,它帶著你的帳號金鑰與裝置識別碼。中繼資料查詢:為了填入專輯年份、製作名單、歌詞、古典作品或演出者傳記,App 會向我們自有的公開音樂資料庫副本詢問,僅送出它需要答案的演出者、專輯、曲目或作曲家名稱。這些查詢不帶帳號金鑰、不帶裝置識別碼,也不帶任何形式的帳號 · 與上述帶有你帳號金鑰的試用檢查不同。送出名稱的查詢是走在請求主體而非位址中,因此沿途不會被寫進任何伺服器或代理伺服器的記錄;只送出公開發行版識別碼的查詢則走位址,因為該識別碼不屬於你。我們既不儲存它們,也不據以建立任何側寫。以及一張代管的圖片,也就是選擇器中顯示在 Plex 伺服器旁的 Plex 標誌。我們這一側不會儲存任何 IP 位址。
- Resend(僅在你點按「傳送記錄」時)。當你在設定中明確點按「將記錄傳送給開發者」,診斷記錄檔會經由 Resend 的交易型電子郵件 API 送達 contact@serento.app。見第 06 節。
- Wikipedia。為了演出者與專輯傳記,App 會查詢與 App 語言相符的 Wikipedia,若無則退回英文版。它會送出所查詢的演出者或專輯名稱。Wikimedia Foundation 會看到你的 IP,並適用其自身的隱私權政策。
- Wikidata。用於在上述請求之前,把識別碼轉換成正確的 Wikipedia 條目標題。只送出該識別碼,絕不送出你輸入的名稱。同樣由 Wikimedia Foundation 營運。
- Last.fm。用於取得演出者的熱門曲目。送出演出者名稱。Last.fm(CBS Interactive)會看到你的 IP,並適用其自身的隱私權政策。
- Deezer。當你在設定中執行圖片下載時,用於取得演出者照片與曲風圖片。送出正在搜尋的演出者或專輯名稱,並從 Deezer 的圖片 CDN 取得圖片。Deezer 會看到你的 IP,並適用其自身的隱私權政策。
- Cover Art Archive。當你使用「辨識專輯」時,用於取得專輯封面。送出辨識所得到的發行版識別碼,絕不送出名稱。由 MetaBrainz 與 MusicBrainz 一同營運。
06 診斷記錄(時機由你決定)
診斷記錄能幫助我們重現我們原本看不到的播放問題、探索失敗與播放器的特殊行為。它是以行動明示同意的:除非你在設定中點按「將記錄傳送給開發者」按鈕,否則沒有任何內容會離開你的裝置。
- 記錄包含什麼。時間戳記,以及下列項目的結構化紀錄:UPnP 探索結果(伺服器 · 播放器名稱、IP、UDN、支援的服務)、播放事件(曲目開始、暫停、跳轉、發生錯誤)、來自你播放器的 SOAP 回應(HTTP 狀態碼、SOAP 錯誤碼)、音量變更、音樂庫同步進度、App 版本 + 組建、作業系統名稱 + 版本、裝置型號、記憶體級距、地區設定。
- 記錄不包含什麼。我們刻意排除:你的 Apple ID、你的電子郵件地址、你的真實姓名、你的位置、你的聯絡人、你的音訊內容、你的 Plex 權杖(已遮蔽)、你的密碼,以及來自其他 App 的任何內容。
- 它去哪裡。記錄會包在一封電子郵件中,經由 Resend 交易型電子郵件服務送至 contact@serento.app。Resend(resend.com)依歐盟 GDPR 第 28 條,以資料處理者身分代我們處理該郵件。
- 我們保留多久。記錄會在支援案件處理期間留在我們的收件匣中(通常數天,若在處理棘手的播放器問題偶爾會是數週),之後刪除。我們不做長期封存。
- 傳送頻率限制。兩次傳送之間有短暫的冷卻時間,以免同一部裝置意外灌爆我們的收件匣。
07 當機報告
若 Serento 當機,當機堆疊完全由 Apple 的內建系統處理。我們不內建任何第三方當機回報 SDK。若你已啟用「與 App 開發者共享」· 在 iOS 與 iPadOS 為設定 → 隱私權與安全性 → 分析與改進,在 macOS 為系統設定 → 隱私權與安全性 → 分析與改進 · 我們會透過 App Store Connect 收到匿名化的堆疊追蹤,不附帶任何個人資料。若你已將其關閉,我們什麼也收不到。
08 我們依賴的第三方服務
這些是提供 Serento 所涉及的全部第三方。每一家都有自己的隱私權政策;若你在意他們如何處理各自那一段的資料流,應當閱讀:
- Apple Inc. App Store 發行、iCloud / CloudKit 同步、StoreKit 計費、當機回報。apple.com/legal/privacy
- Plex Inc. 僅在你有 Plex 伺服器並以 Plex 帳號登入時才相關。plex.tv/about/privacy-legal/privacy-policy
- Resend。用於你選擇傳送之診斷記錄的電子郵件遞送服務。resend.com/legal/privacy-policy
- 你的 UPnP 伺服器廠商。無論你在網路上執行什麼(MinimServer、Plex、Asset UPnP、Twonky、JRiver Media Center、Kodi UPnP 等),都受其自身的授權與隱私權條款規範。Serento 看不到它們在做什麼。
- 網路電台廣播業者。當你播放電台時,你直接連上它的伺服器。廣播業者會看到你的 IP,並受其自身條款規範。
- Wikimedia Foundation。用於傳記的 Wikipedia 與 Wikidata。foundation.wikimedia.org/wiki/Policy:Privacy_policy
- Last.fm。演出者的熱門曲目。last.fm/legal/privacy
- Deezer。僅在你執行圖片下載時的演出者照片與曲風圖片。deezer.com/legal/personal-datas
- MetaBrainz Foundation。透過「辨識專輯」取得專輯封面的 Cover Art Archive。metabrainz.org/privacy
09 我們沒有的東西
為與上面的清單對稱 · 也因為「沒有什麼」和「有什麼」同樣重要:
- 沒有使用者側寫。我們的權利服務為每個 Apple ID 保留恰好一列:一個單向金鑰、試用開始的時間、我們最後一次聽到該金鑰的時間,以及內部管理欄位。該列不帶姓名、不帶電子郵件地址、不帶購買紀錄,也不帶任何關於你播放什麼的資訊。它是一個防濫用的錨點,不是使用者帳號。我們保留以單向帳號金鑰與第 02a 節所述裝置識別碼為索引的化名紀錄。它們顯示某一個人使用三部裝置;它們不會顯示那個人是誰:沒有姓名、沒有電子郵件、沒有 Apple ID、沒有聯絡方式。
- 沒有 IP 位址記錄。我們不營運任何會記錄你 IP 位址的後端。當你的流量觸及 iCloud / App Store 時 Apple 會看到,但那是 Apple 與你的關係,不是我們的。
- 沒有聆聽紀錄。你播放什麼、何時播放、播放多頻繁 · 這些都不會到達我們這裡。這些資料只存在於你的裝置上,以及(就第 04 節的整理項目而言)你的私人 iCloud 容器中。
- 沒有內容存取。我們看不到專輯標題、演出者,或你音樂庫的任何其他中繼資料。你的伺服器是直接把它們送到你的裝置。
- 沒有位置資料。我們不索取、不請求、也不使用你的裝置位置。
- 沒有聯絡人、行事曆、照片或麥克風。Serento 不會請求存取上述任何一項。完整的權限清單,請查看 iOS 與 iPadOS 的設定 → Serento,或 macOS 的系統設定 → 隱私權與安全性。
10 兒童
Serento 並非針對 13 歲以下兒童,我們也不會在知情的情況下處理 13 歲以下未成年人的個人資料。若你認為有兒童以任何方式向我們提供了個人資料,請聯絡 contact@serento.app,我們會將其刪除。
11 你在 GDPR 下的權利
由於 Dusty Enterprise SRL 設立於歐盟,歐盟一般資料保護規則(規則 2016/679)適用於我們就你所處理的任何個人資料。你的法定權利包括:
- 近用權(第 15 條)。詢問我們持有你哪些個人資料並取得副本。
- 更正權(第 16 條)。要求我們更正不正確的個人資料。
- 刪除權(第 17 條)。要求我們刪除你的個人資料。它可能存在於三個地方:你先前傳送的診斷記錄、以你帳號為索引的權利列,以及帶有同一單向金鑰的遙測報告。刪除權利列也會一併移除你的試用已經用過的紀錄。遙測報告儲存於同一個單向帳號金鑰之下,因此我們能找到並刪除屬於你的部分。無論如何它們都會在 13 個月後自動刪除;若你把該金鑰寄給我們,我們可以更早移除帶有它的報告。
- 限制處理權(第 18 條)。在特定情形下要求我們限制對你資料的處理。
- 資料可攜權(第 20 條)。以結構化、機器可讀的格式取得你的資料。
- 反對權(第 21 條)。對基於正當利益的處理提出反對。
- 提出申訴的權利。向你所在國家的監管機關申訴 · 在羅馬尼亞是 ANSPDCP(dataprotection.ro)。你也可以向你居住國的機關申訴。
12 資料保存
由於我們持有的極少,保存期間也很短:
- 裝置上的資料。只要 App 仍安裝就存在。移除 App 即清除(見第 03 節)。
- iCloud 同步的資料。只要你的 Apple ID 持有該資料就存在。適用 Apple 標準的 iCloud 保存規則。你可以在 App 中移除項目,或登出 iCloud 來刪除它。
- 你已傳送的診斷記錄。在支援案件處理期間留在我們的收件匣中,之後刪除(通常數天,偶爾數週)。
- 權利列。第 02 節所述的每個 Apple ID 單一列。這是我們唯一無限期保留而非短期保留的東西,因為刪除它會讓同一帳號能重新開始一次試用。你仍可要求我們將其抹除(見第 11 節)。
- 訂閱 · 計費紀錄。付款本身由 Apple 處理,我們從不會看到卡片、姓名或地址。不過 Serento 確實會從你的裝置送來一份訂閱快照 · 你使用哪個方案、其狀態(有效、試用中、計費寬限或重試期間、已到期,或已撤銷)、目前是否有效、你是否處於試用、是否自動續訂、App Store 商店所在國家、購買來自 App Store 或測試環境,以及購買、到期與試用日期 · 與其餘遙測綁定於同一個單向帳號金鑰與裝置識別碼,並保存 13 個月。這份快照與遙測放在一起,絕不放在權利列中:它們不帶姓名、電子郵件或 Apple ID;它們儲存於我們無法逆推的單向帳號金鑰之下。
13 國際傳輸
Dusty Enterprise SRL 自羅馬尼亞(歐盟)營運。第 08 節所列的第三方會在歐盟境外處理部分資料(Apple 使用全球基礎設施;Plex 位於加州;Resend 自美國營運;Wikimedia Foundation、Last.fm 與 MetaBrainz 自美國營運;Deezer 自歐盟境內的法國營運)。這些供應商各自依 GDPR 的要求,就歐盟至第三國的傳輸實施標準契約條款或同等機制。若你想瞭解其中任何一家的細節,請與我們聯絡。
14 安全性
你裝置上的本機資料受作業系統的 App 沙箱保護,並(就鑰匙圈項目 · 尤其是你的 Plex 權杖 · 而言)受你的裝置密碼與生物辨識驗證保護。CloudKit 資料由 Apple 在傳輸中加密,並儲存於你的私人容器中。診斷記錄以 HTTPS 傳送至 Resend。我們的權利服務為每個帳號保留一列:一個單向帳號金鑰、你試用開始的日期、我們最後一次聽到該金鑰的日期,以及內部管理欄位。它不持有購買紀錄、姓名、電子郵件地址或任何付款細節,且該金鑰無法還原成 Apple ID。
15 本政策的變更
當法律文字有實質變更時,我們會更新本頁頂端的生效日;當變更影響到我們收集哪些資料或資料的去向時,會在 App 中顯示通知。最新版本永遠是你在設定 → 關於 Serento → 隱私權政策中看到的版本。
16 聯絡我們
任何問題、請求、申訴或權利行使:contact@serento.app。我們會依 GDPR 要求在 30 天內回覆,通常快得多。