同步
同步讓你的觀看紀錄、播放進度、待看清單、最近搜尋和來源,在你使用楊桃播放器的每台裝置上保持一致。它是 Yonto Pro 的一部分,7 天免費試用也包含它。在你開啟之前,它是關閉的。
同步仍在 Beta 測試階段,所以它在設定裡的那一列帶有 Beta 標籤,它的頁面最上方有這樣一段說明:「同步仍在 Beta 測試階段。伺服器會儲存同步的內容,但內容已用只有你的裝置持有的金鑰加密,任何人都無法讀取,Yonto 也不例外。請保存好復原金鑰:沒有它,所有裝置遺失時,同步的內容也會一起遺失。如果有內容沒有正常同步,請透過「關於」中的「說明與支援」告訴我們。」
同步的內容在離開裝置之前,就已在你的裝置上加密,金鑰只在你的裝置上。經手的伺服器,不管是我們的還是你自己架設的,只是保存它,卻讀不了;包括我們在內,誰都無法解密。它到底保存了什麼,見楊桃的伺服器能看到什麼、看不到什麼。
開啟同步
「開啟同步」一節- 進入設定、同步。同步開啟之前,這一列顯示已關閉。
- 在同步位置下,保留 楊桃的伺服器,或者選擇你自己的伺服器。
- 選擇開啟:「開啟後會產生一組金鑰,你的裝置用它加密同步的內容。不需要事先記下任何東西。」
頁面接著顯示「正在同步…」,之後顯示這台裝置上次同步的時間,「上次同步:時間」。楊桃播放器開著時會自動同步;立即同步會馬上同步一次。
在免費版上,開啟會要求 Pro:「與其他裝置同步需要 Pro。在此之前,所有內容都只保存在這台裝置上。」任何內容都不會離開裝置。
加入另一台裝置
「加入另一台裝置」一節不用輸入代碼,也不用掃描。把兩台裝置都放在手邊,兩台都要開啟 Pro。
- 在新裝置上進入設定、同步。你的帳號已經在同步時,開啟會變成加入:「你的帳號已經在同步。加入後,一台已在同步的裝置會把金鑰交給這台裝置。」有 Pro 的裝置也會自己發現你的帳號已經在同步,不用你開啟這個頁面就會要求加入。
- 選擇加入。新裝置顯示「在一台已在同步的裝置上開啟楊桃播放器」:「它會顯示這台裝置的請求,在上面選擇「在這裡回應」。請把兩台裝置都放在手邊。」
- 每台已在同步、開著楊桃播放器的裝置都會顯示「新裝置(裝置)要求加入同步」:「在你正在用的裝置上選擇「在這裡回應」,要核對的六位數字會顯示在那台裝置上。」正在播放時則顯示為一條橫幅,影片不會被打斷。在你手邊的那台上選擇在這裡回應。其他裝置接著顯示「正在 裝置 上回應。」,不能再回應它;選擇關閉就會把它收起。
- 兩台裝置會顯示同樣的六位數字。新裝置顯示「請確認另一台裝置顯示的是同樣的六位數字。」,另一台顯示「只有新裝置顯示同樣的六位數字時才允許。」
- 數字一致的話,在新裝置上選擇數字一致,在另一台上選擇允許。新裝置顯示「這台裝置已開始同步」:「你的觀看紀錄、播放進度等內容馬上就到。」
數字不一致時,選擇不一致或不允許。從數字畫面返回也等於不允許,因為一台裝置回應之後,其他裝置就不能再回應這個請求了。什麼都不會分享,新裝置顯示:「沒有分享任何內容。請再試一次,如果數字仍然不一致,請換一個網路。」這六位數字是由兩台裝置各自的金鑰算出來的,所以伺服器若想偷偷塞進自己的金鑰,數字就會改變。
沒有推播通知:已在同步的裝置只有在開著楊桃播放器時才看得到請求。請求十分鐘沒人回應就會結束,被拒絕時也會結束;新裝置接著顯示「未加入」:「請求已結束:被拒絕了,或等待時間過長。沒有分享任何內容。」它不會自己再次要求。要再要求一次,選擇加入。回應請求的那台裝置如果在回應途中關掉了楊桃播放器,再開啟時會拒絕這個請求,這時也要再要求一次。
每台裝置都把金鑰保存在自己的安全儲存空間裡,從不放進備份、iCloud 鑰匙圈或 Google 的雲端。所以在同一台裝置上重新安裝楊桃播放器,通常會以同一台裝置的身分繼續同步,不用重新加入。做不到時,例如恢復原廠設定之後,重新加入即可。在 Android 上,用 Google 自己的傳輸功能從舊手機設定新手機時,金鑰可能會一起傳過去,不需要兩邊點選;新手機接著會以一台獨立裝置的身分同步,像其他裝置一樣出現在裝置裡。
同步什麼
「同步什麼」一節每台裝置在這台裝置同步的內容下各自選擇:「每台裝置各自選擇。關閉某項會保留這台裝置已有的內容,只是不再同步。」其他裝置改不了這台裝置同步什麼。
| 頁面上的名稱 | 預設 | 包含什麼 |
|---|---|---|
| 觀看紀錄 | 開 | 你播放過的影片和時間 |
| 播放進度 | 開 | 每部電影、每一集停在哪裡。以最新的變更為準,而不是看得最遠的位置 |
| 待看清單 | 開 | 你儲存下來留待以後看的影片 |
| 最近搜尋 | 開 | 你搜尋過的內容,最新的十筆 |
| 來源 | 開 | 「包括你輸入的密碼。這台裝置上的登入和資料夾只留在這裡。」 |
| 倉庫 | 開 | 你新增的倉庫和你選的目錄 |
| 你手動比對的標題 | 開 | 你用**標題不對?**選的結果 |
| 外掛 | 關 | 「預設關閉。其他裝置只會安裝你核准過的那個版本的外掛。」 |
| 金鑰 | 關 | 「你的 TMDB 金鑰。預設關閉。」 |
從觀看紀錄或待看清單移除一部影片,或者清空,會在每台同步它的裝置上一起移除。從最近搜尋移除一筆搜尋,或者在這個清單上選擇清除,也是一樣。一筆搜尋在你送出它或從它開啟一個結果後才算數,打字時不算;兩台裝置上輸入的同一筆搜尋算一筆,不論大小寫和空格。刪除一個來源,會在每台同步來源的裝置上一起刪除。開啟外掛後,你在一台裝置上安裝的外掛,會自動安裝到其他也開啟了外掛的裝置上,前提是它的位址給出的仍是你核准過的那個版本;移除它,那些裝置上也會一起移除。需要你確認的外掛會留在設定、進階、外掛的來自你的其他裝置下,並說明原因:它的位址現在給出別的版本、它會接管另一個讀取方的目錄類型、安裝需要 Pro、這台裝置裝不了那個版本(例如它需要更新的楊桃播放器),或者它的位址沒有回應。選擇它,就會看到和平常安裝一樣的確認問題。
這些從不同步:你的 Pro 授權、主 PIN 碼、登入資訊(例如 Plex 的或雲端硬碟的)、本機資料夾或 USB 隨身碟、下載的內容、目前使用哪個來源、來源的排序和哪些被關閉了、快取的頁面和圖片,以及應用程式的設定。作品的海報也不同步:有這部作品來源的裝置從來源取得,來源沒有時像作品頁面一樣去查詢,所以在一台裝置上儲存的作品,在其他有這個來源的裝置上也有海報。沒有這個來源的裝置上,它保持預留圖。
關閉某一項只是個選擇,不是一把鎖:你允許的每台裝置都持有金鑰,所以只允許那些你放心交出密碼的裝置。
讓一個來源不參與同步
「讓一個來源不參與同步」一節來源的表單裡有同步這個來源,預設開啟:「關閉後它只留在這台裝置上,連同它的觀看紀錄、播放進度和待看清單項目。」關閉它,然後選擇儲存。倉庫的頁面有同步這個倉庫(「關閉後它只留在這台裝置上,連同從它新增的來源。」),外掛的頁面有同步這個外掛(「關閉後它只留在這台裝置上。」)。
- 在開關關閉時建立的,永遠不會傳到其他裝置。
- 同步過之後再關閉,它會留在已經有它的裝置上,那些裝置之間繼續同步它。這台裝置上的這一份變成它自己的:在這裡刪除不會影響其他裝置上的。
- 重新開啟時,它會先取得關閉期間在其他裝置上的變更。
這台裝置上的資料夾沒有這個開關:它從不同步。
裝置
「裝置」一節裝置列出每台在同步的裝置,以及它上次同步的時間:「裝置 · 上次同步:時間」,或者「裝置 · 尚未同步」。
每台裝置的名字旁邊都有一個代碼,由六個字元組成,別的裝置無法冒用;每台裝置會在清單上方顯示自己的代碼:「這台裝置的代碼:代碼。……」。裝置詢問是否使用新金鑰時,請核對代碼,而不只是名字,因為兩台裝置可能同名。
要移除一台,選擇它。被移除的裝置仍持有金鑰,所以移除裝置時總會同時改用新金鑰重新開始:
- 「要將 裝置 移出同步嗎?」:「它仍持有金鑰,所以移除它時也會改用新金鑰重新開始,新金鑰只會交給你的其他裝置。」接著它會像改用新金鑰重新開始一樣,列出新金鑰會交給的每台裝置,以及沒交給的裝置。
- 選擇移除並重新開始。
移除一台透過 Yonto 伺服器同步的裝置,也會讓它登出 Yonto Pro:「它也會登出 Yonto Pro,在重新啟用之前,它上面的授權不再有效。」登出的是伺服器看到那台裝置同步時所用的授權,不管那台裝置自己怎麼說;在你自己的伺服器上同步時,不會讓任何裝置登出,請到你的帳號頁面自己操作。所以被你移除的裝置,在它上面重新啟用授權之前,既不能同步、不能要求加入,也不能使用 Pro;它手上的那份授權在其他任何地方也會失效。如果當下做不到,就什麼都不會移除:「無法讓那台裝置登出 Yonto Pro,所以它沒有被移除。請再試一次。」
被移除的裝置會顯示:「另一台裝置已將這台裝置移出同步。這台裝置上的內容會保留。若要再次同步,請以新裝置的身分加入。」它的同步頁面會從它原本同步的地方開始,包括你自己伺服器的位址,所以選加入就會回到那裡。它以新裝置的身分加入,所以外掛和金鑰會重新關閉,直到你開啟它們。它會保留已經同步到的內容。
在一台裝置上關閉同步
「在一台裝置上關閉同步」一節在此裝置上關閉同步:「保留此裝置上的所有內容,只是不再同步。想換個地方同步,先在這裡關閉同步,再到那裡開啟或加入。」
它會問「在此裝置上關閉同步?」:「此裝置上的內容都會保留,你的其他裝置會繼續同步。此裝置知道金鑰,所以如果它遺失了或要送人,請改為在另一台裝置上移除它:那樣會用新金鑰重新開始。」選擇 關閉。這台裝置會從你其他裝置的列表裡消失,已經同步過來的內容留在它上面,歸它自己。想再同步,就以新裝置的身分加入。如果當時沒辦法通知你的其他裝置(例如沒有網路),它照樣關閉;在楊桃的伺服器上會提示「此裝置已關閉同步,但沒能通知你的其他裝置,它們仍會列出它。在其中一台上移除它就能把它從清單中去掉,但那也會用新金鑰重新開始,並讓此裝置登出 Yonto Pro。」在你自己的伺服器上,不會登出任何裝置,提示的是「此裝置已關閉同步,但沒能通知你的其他裝置,它們仍會列出它。在其中一台上移除它就能把它從清單中去掉,但那也會用新金鑰重新開始。」它們可以一直列著它:關閉了同步的裝置已經沒辦法再和它們同步。
改用新金鑰重新開始
「改用新金鑰重新開始」一節改用新金鑰重新開始:「產生新金鑰並交給你的其他裝置,這樣被移除的裝置就無法讀取今後同步的任何內容。」
它會問「要改用新金鑰重新開始嗎?」,並列出新金鑰會交給的每台裝置:「新金鑰會交給 裝置。其他裝置需要重新加入,你儲存的復原金鑰也會失效。」它可能會把某台裝置排除在外,並會說明:
- 「裝置 不會拿到新金鑰,需要重新加入。」:沒有簽章金鑰的測試安裝,或者伺服器列出的金鑰和你其他裝置所知的不一致的裝置。
- 「裝置 不會拿到新金鑰:你的其他裝置都沒有讓它加入,而 裝置 有可能這麼做。如果它是你的裝置,之後再讓它重新加入。」:僅在移除裝置時出現,針對這台裝置無法按「誰讓誰加入」追溯到它自己、或它加入時經過的裝置的裝置:只有被移除的裝置讓它加入的裝置,或者用復原金鑰加入、沒有任何裝置讓它加入的裝置。持有金鑰的裝置可能用你認得的名字加入了一台自己的裝置,所以在你親自讓它加入之前,它拿不到金鑰。
- 「裝置 不會拿到新金鑰,因為你的另一台裝置已將它移除。」:被你的另一台裝置移除的裝置。只有做出移除的裝置本身受信任時,這次移除才算數,所以你之後移除的裝置做過的移除也隨之作廢。
- 「你的其他裝置都不會拿到新金鑰。你儲存的復原金鑰也會失效。」:其他裝置全部被排除在外時,取代第一句話出現。
每台裝置都會為自己在這份清單裡的項目簽名,所以其他裝置無法改它的名字、換它的金鑰,也無法把它從清單裡刪掉;你的裝置也會記住每台裝置最初的金鑰。確認列出的每台裝置你都認得,然後選擇重新開始。列出的裝置會繼續同步,不用重新加入;關機的裝置下次同步時會取得新金鑰。其他每台裝置使用新金鑰之前都會先問:「裝置 改用了新金鑰重新開始,並移除了 裝置。要使用它的新金鑰嗎?」,或者「裝置 改用了新金鑰重新開始。要使用嗎?」。只有在那台裝置上是你親自重新開始的,才選擇使用新金鑰;不是的話選擇不使用:它不會再被問起,這台裝置之後可以重新加入。稍後再說或返回鍵只會先把問題收起,但選擇之前什麼都不會同步,所以設定 → 同步裡會寫著「裝置 的新金鑰正在等你選擇。選擇之前什麼都不會同步。」在那裡選擇現在選擇,或者立即同步,就會再問一次;開啟這個頁面或重新開啟應用程式也會再問。如果兩台裝置同時重新開始,每一台都會帶著這句話詢問:「另一台裝置同時也改用了不同的新金鑰重新開始。只使用你親自操作重新開始的那一台;沒使用的裝置可以重新加入。」
之後頁面會顯示:「你之前儲存的復原金鑰已失效,請儲存新的。」
復原金鑰
「復原金鑰」一節儲存復原金鑰:「如果所有同步的裝置都遺失或被重設,可以用復原金鑰找回所有內容。請妥善保管,不要外流:拿到它的人就能讀取同步的內容。」它是四個一組的字母和數字,所有語言都一樣,下面有複製和隱藏。設了主 PIN 碼的話,頁面會先要求「請輸入主 PIN 碼」:「PIN 碼正確後會顯示復原金鑰。」
你不一定要儲存。只有一台裝置在同步時,頁面會提醒你:「這是唯一在同步的裝置。請儲存復原金鑰,萬一遺失這台裝置,也能找回所有內容。」任何一台在同步的裝置,隨時都能再顯示它。
要使用它,在一台沒有同步的裝置上,選擇手邊沒有其他裝置?下的使用復原金鑰:「輸入或貼上你儲存的復原金鑰,這台裝置就會和伺服器上的所有內容重新同步。」在電視上,用遙控器輸入。被拒絕的話,疑難排解說明了每條訊息的意思。
從頭開始
「從頭開始」一節如果同步過的裝置全都不見了,復原金鑰也一起遺失,就沒有任何辦法找回同步副本,因為沒有別人持有這組金鑰。從頭開始:「所有裝置和復原金鑰都遺失了?從這台裝置用新金鑰重新開始。」
它會問「要從頭開始嗎?」:「如果 Yonto 的伺服器上已經保存了一份副本,會在你的授權電子郵件確認後刪除;如果授權沒有電子郵件,則在七天內沒有仍在同步的裝置回應時,七天後刪除。刪除後無法復原,這台裝置會用它現有的內容重新同步,你的其他裝置需要重新加入。」在你自己執行的伺服器上,它會顯示「如果你的伺服器上已經保存了一份副本,會在七天內沒有仍在同步的裝置回應時,七天後刪除。刪除後無法復原,這台裝置會用它現有的內容重新同步,你的其他裝置需要重新加入。」,因為你自己的伺服器不會寄送電子郵件。你裝置上的內容都不會被刪除。
你的帳號已經在同步時,沒有金鑰的裝置不能自己刪掉同步副本,拿到你授權的其他人也不能。所以它會提出要求,頁面顯示正在等待從頭開始:
- 如果你的授權有電子郵件,會寄一個連結過去:「我們已向你授權的電子郵件寄出確認連結。郵件裡顯示的代碼是 代碼,和這裡一樣:只有兩邊一致時才確認。確認後,這台裝置會重新開始同步。」開啟連結,核對代碼,然後選擇 Reset Sync(重設同步)。連結一小時內有效。在提出要求的裝置上讓楊桃播放器保持開啟,幾秒後它就會開始同步。
- 如果沒有電子郵件,例如在 App Store 購買、沒人新增過電子郵件的授權,或者用的是你自己的伺服器,就要等七天:「這台裝置會在 日期 重新開始同步,除非在那之前有仍在同步的裝置回應,那樣會取消這次請求。」仍持有金鑰的裝置下次同步時就會取消它,因為那台裝置可以讓這台裝置加入。
取消從頭開始可以停止要求。
要求在等待電子郵件確認期間,以及要求被取消後的一週內,每台仍在同步的裝置都會顯示:「裝置 在 日期 要求在沒有金鑰的情況下讓 Sync 從頭開始。已向你授權的電子郵件寄出確認連結。如果不是你,請不要確認。」,或者「裝置 在 日期 要求在沒有金鑰的情況下讓 Sync 從頭開始。這台裝置仍在同步,所以要求已取消。如果是你在新裝置上操作,請改從這裡讓它加入。」如果不是你,不要確認郵件,並移除你不認得的裝置。
如果一台你不認得的裝置一直取消要求,提出要求的裝置會顯示:「不認識那台裝置?先為你的授權加入電子郵件,再從頭開始:這樣它會等待寄到該信箱的連結,任何裝置都無法取消。」在透過 App Store 販售 Pro 的應用程式裡,那裡的加入你的電子郵件會開啟 Yonto Pro,在那裡新增;然後再選擇從頭開始。用你自己的伺服器時,它的 delete-account 指令可以刪除帳號(README 裡有說明)。
你自己的伺服器
「你自己的伺服器」一節你可以透過自己架設的伺服器同步,不用我們的。同步伺服器是開源的,和楊桃執行的是同一個程式,只是少了 Pro 檢查:到 GitHub 上的 yonto-app/yonto-player-sync-server 取得它,那裡也寫了怎麼用 Docker 執行。
- 執行伺服器,記下它的位址。
- 在設定、同步的同步位置下,選擇你自己的伺服器:「你自己架設的楊桃同步伺服器。在你自己的網路中可以用 http 位址,其他地方則需要 https。」
- 填入伺服器位址,例如
https://sync.example.com,然後選擇開啟。 - 在其他每台裝置上,選擇你自己的伺服器並填入同樣的位址,然後選擇加入。
頁面接著顯示「透過 位址 同步」。每台裝置仍然需要 Pro 才能同步。伺服器的 README 說明了怎麼替它加上 HTTPS,以及怎麼只允許你自己的授權在上面建立帳號。更新楊桃播放器時也更新伺服器:版本相差的 App 和伺服器可能無法互相理解,這時設定裡的同步會說明哪一個需要更新,而不會同步。你的伺服器保存的內容和我們的一樣,不會更多。透過你自己的伺服器同步的裝置,不會傳送任何東西給楊桃的伺服器;開始同步之前,Pro 裝置只會詢問楊桃的伺服器:你的授權是否已在那裡同步。
楊桃的伺服器能看到什麼、看不到什麼
「楊桃的伺服器能看到什麼、看不到什麼」一節它看不到你同步了什麼。每筆紀錄都在你的裝置上用 AES-256-GCM 加密,金鑰從不以未加密的形式離開裝置:一台裝置只能從你的另一台裝置取得金鑰,而且是密封好的,只有它自己能打開。所以伺服器看不到任何片名、搜尋內容、來源、位址、密碼或金鑰,我們也看不到。它也沒辦法加入一台自己的裝置,因為只有你在兩台裝置上都點選確認,裝置才會加入。
為了完成同步,它會保存:
- 你的授權 ID;每台裝置的授權權杖會連同簽發它時對應的安裝 ID 一起傳來,拿去楊桃的授權服務核對,確認這個授權有 Pro、權杖確實屬於這台裝置,兩者都不保存;
- 每筆紀錄的:一個打亂後的 ID、它的變更時間和是你的哪台裝置改的、它是不是刪除紀錄,以及它有多大;
- 每台裝置的:一個隨機 ID、裝置類型(例如 Android TV 或 iPhone)、兩個公鑰、它自己一個密值的打亂後的副本,以及是否已被移除;
- 一個由你的金鑰算出的檢查值,讓它能把你的裝置和陌生人區分開來;
- 裝置加入期間,或者重新開始之後,密封給那台裝置的金鑰,直到那台裝置取走為止;
- 你在沒有金鑰的情況下從頭開始時,新的檢查值、提出要求的裝置的類型和公鑰,以及要求的時間,保存到要求完成或取消,之後再保留一週。
從這些資訊,再加上每台裝置同步時的位址,它能看出你的裝置什麼時候同步、你大約保存了多少內容。它看不出你看了什麼。隱私權政策有詳細說明,包括每部分保存多久。
訊息
「訊息」一節同步顯示的每條訊息,以及該怎麼做,見疑難排解。