<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>昔の名前で出ています | imakat.com</title>
	<atom:link href="https://imakat.com/tag/%e6%98%94%e3%81%ae%e5%90%8d%e5%89%8d%e3%81%a7%e5%87%ba%e3%81%a6%e3%81%84%e3%81%be%e3%81%99/feed/" rel="self" type="application/rss+xml" />
	<link>https://imakat.com</link>
	<description>工夫と改善で人生をちょっと豊かに</description>
	<lastBuildDate>Sun, 20 Sep 2026 21:49:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://i0.wp.com/imakat.com/wp-content/uploads/2023/07/cropped-80d64ecd340db4e2ca3224859b04caed.png?fit=32%2C32&#038;ssl=1</url>
	<title>昔の名前で出ています | imakat.com</title>
	<link>https://imakat.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">160909258</site>	<item>
		<title>DropboxからGoogleドライブへ乗り換えることにしました</title>
		<link>https://imakat.com/2026/08/04/29546/</link>
		
		<dc:creator><![CDATA[imakat]]></dc:creator>
		<pubDate>Tue, 04 Aug 2026 13:06:42 +0000</pubDate>
				<category><![CDATA[デジタル]]></category>
		<category><![CDATA[ものづくり]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Googleドライブ]]></category>
		<category><![CDATA[フォルダパス]]></category>
		<category><![CDATA[昔の名前で出ています]]></category>
		<guid isPermaLink="false">https://imakat.com/?p=29546</guid>

					<description><![CDATA[はじめに&#160; そろそろ届く頃かなとは思っていたところですが。 Dropboxの年額更新案内が届きました。もともと課題意識があったので準備を進めてきたことではありますが、クラウドストレージの運用体制を見直し、Goo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>はじめに</strong>&nbsp;</h2>



<p class="wp-block-paragraph">そろそろ届く頃かなとは思っていたところですが。</p>



<p class="wp-block-paragraph">Dropboxの年額更新案内が届きました。もともと課題意識があったので準備を進めてきたことではありますが、クラウドストレージの運用体制を見直し、Googleドライブ（Google AI Proプラン）への全面移行を進めることにしました。</p>


<div class="sc-dynamic-embed">
  <style>
  /* リンクの見た目を整える */
  .sc-dynamic-embed .sc-link-container { 
      display: flex; 
      margin-bottom: 10px; 
      flex-wrap: wrap; 
      align-items: center; 
  }
  .sc-dynamic-embed .sc-link { margin-bottom: 0; }
  .sc-dynamic-embed .sc-link a {
    font-size: 15px; 
    font-weight: normal;
    text-decoration: underline;
    color: #0073aa;
  }
  .sc-dynamic-embed .sc-link a:hover { text-decoration: none; color: #000; }
  
  @media (max-width: 500px) {
    .sc-dynamic-embed .sc-link a { font-size: 13px; }
  }

  .sc-dynamic-embed .imk-line {
      display: inline-block;
      width: 100%;
      border-radius: 2px;
      transition: background-color 0.1s;
  }

  .sc-dynamic-embed #subtitleOverlay,
  .sc-dynamic-embed #scSubtitleOverlay,
  .sc-dynamic-embed .overlay-cue,
  .sc-dynamic-embed .band {
      display: none !important;
      opacity: 0 !important;
      visibility: hidden !important;
      pointer-events: none !important;
  }
  </style>

  <div class="sc-link-container">
    <p class="sc-link">
      <!-- ★環境依存排除：固定ドメインをルート相対パスへ置換完了 -->
      <a href="/ds62/?drid=104" target="_blank"
         onclick="return scStopAndGo(event, this);">
        👉低画質・枠外字幕はこちら
      </a>
    </p>
  </div>

  <!-- ★環境依存排除：[dynamic_external_html] にルート相対パスを指定し、functions.phpにURL動的解決を委ねる設計 -->
  <style>
            :root{ --dr5emd-max: 1920px; }
            #subtitleOverlay, #scSubtitleOverlay, .overlay-cue, .band { display: none !important; opacity: 0 !important; }
            .imk-line { display: inline-block; width: 100%; border-radius: 2px; transition: background-color 0.1s; }
            .dr5emd-sublist details > p{ height:200px; overflow:auto; background-color:#EDF7FF; padding:2px 6px; margin:0; box-shadow:3px 3px 4px black; position: relative; }
            .dr5emd-sublist details > summary{ padding:2px 6px; width:100%; background-color:#ddd; border:none; box-shadow:3px 3px 4px black; cursor:pointer; list-style:none; }
            
                .video-wrap{position:relative;width:100%;margin:0 auto}
                #myVideo{width:100%;height:auto;min-height:200px;display:block;background:#000;}</style><div class="dr5emd-container"><div class="video-wrap"><video id="myVideo" controls poster="https://imakat.com/rd.php?id=wkh7padF.png" playsinline preload="none" style="width:100%;height:auto;">  <source src="https://imakat.com/rd.php?id=Cm7I7Q9n.mp4" type="video/mp4">  <track src="https://imakat.com/rd.php?id=SaRGyfFo.vtt" label="日本語" srclang="ja" kind="subtitles"></video></div><div class="dr5emd-sublist"><details translate="yes"><summary translate="yes">字幕一覧(クリック)</summary> <p translate="yes">
(<a href="#" class="imk-cue" data-seek="0:06" translate="no">00:00:06</a>) ちょっと8月に入ってですね、困ったことが起きまして、<br>
(<a href="#" class="imk-cue" data-seek="0:12" translate="no">00:00:12</a>) メールで案内が来たんですけども、Dropboxのですね、年度更新が来ました。<br>
(<a href="#" class="imk-cue" data-seek="0:22" translate="no">00:00:22</a>) それがですね、今私2TBのPlusというサービスを使っているんですけども、<br>
(<a href="#" class="imk-cue" data-seek="0:34" translate="no">00:00:34</a>) それがUSドルでですね、131.87USドルということになってます。これ年間ですね。<br>
(<a href="#" class="imk-cue" data-seek="0:44" translate="no">00:00:44</a>) 131.87USドル。<br>
(<a href="#" class="imk-cue" data-seek="0:49" translate="no">00:00:49</a>) これをですね、仮に160円/USドルで計算すると、なんと21,000円ですよね。<br>
(<a href="#" class="imk-cue" data-seek="0:59" translate="no">00:00:59</a>) これ最初に私がDropboxを契約した頃っていうのは、どうだろう、月1,000円ぐらいで済んでたと思うんですよね。<br>
(<a href="#" class="imk-cue" data-seek="1:11" translate="no">00:01:11</a>) 年間21,000円ってことは、12で割ると月1,750円ってことになるんですよ。<br>
(<a href="#" class="imk-cue" data-seek="1:23" translate="no">00:01:23</a>) 本当に下手するともう2,000円っていうぐらいになってしまうので、なんとかですね、これは脱Dropboxを考えていきたいなと思っていたわけですね。<br>
(<a href="#" class="imk-cue" data-seek="1:39" translate="no">00:01:39</a>) 実はそういう思いでずっといまして、ちょっとやっぱり2TBをですね、月1,500円以上払って使い続けるのももったいないなと。<br>
(<a href="#" class="imk-cue" data-seek="1:54" translate="no">00:01:54</a>) そこへ例のGoogle AI Proがですね、月2,900円で5TBのストレージを含むというサービスを始めましたよね。<br>
(<a href="#" class="imk-cue" data-seek="2:09" translate="no">00:02:09</a>) まあちょっとどう考えてもこれを使った方がいいなと思い出しまして、今回ですね、こう判断をしました。<br>
(<a href="#" class="imk-cue" data-seek="2:22" translate="no">00:02:22</a>) それはですね、M1 Mac miniですけども、一つNO3_SSDっていうのをくっつけてるんですけども、<br>
(<a href="#" class="imk-cue" data-seek="2:35" translate="no">00:02:35</a>) これの下に今Dropboxのローカルフォルダーが入ってます。<br>
(<a href="#" class="imk-cue" data-seek="2:46" translate="no">00:02:46</a>) でそれをですね、Dropboxの契約を停止して、その代わり<br>
(<a href="#" class="imk-cue" data-seek="2:57" translate="no">00:02:57</a>) Gドライブの方にですね、mybox_1というフォルダーを作って、そこへですね、全部移すと。<br>
(<a href="#" class="imk-cue" data-seek="3:10" translate="no">00:03:10</a>) 全部移すというのはクラウド側を移すということです。<br>
(<a href="#" class="imk-cue" data-seek="3:16" translate="no">00:03:16</a>) ただしですね、私の場合このDropboxという名前を使って、非常にたくさんのですね、アプリを作ってきてるんですね。<br>
(<a href="#" class="imk-cue" data-seek="3:28" translate="no">00:03:28</a>) フォルダーパス、ファイルパスにかなりたくさん使ってきてますので、これを全部ですね、mybox何がしに替えるっていうのは大変な作業なんで、<br>
(<a href="#" class="imk-cue" data-seek="3:42" translate="no">00:03:42</a>) まあこれは考え方だけしっかりしておけばいいので、<br>
(<a href="#" class="imk-cue" data-seek="3:47" translate="no">00:03:47</a>) ローカルフォルダー名としてはこのDropboxを残す。で、Gドライブ、パソコン、マイMacmini、mybox_1へミラーリング同期すると。という形ですね、しようと思います。<br>
(<a href="#" class="imk-cue" data-seek="4:12" translate="no">00:04:12</a>) まあそんな形でですね、いよいよDropboxの脱出を図り、データを移したあとでちょっと様子を見てですね、勇気をもってDropboxを解約したいと考えています。<br>
(<a href="#" class="imk-cue" data-seek="4:33" translate="no">00:04:33</a>) あと補足しますけども、<br>
(<a href="#" class="imk-cue" data-seek="4:38" translate="no">00:04:38</a>) DropboxをやめてGoogleドライブに切り替えた時にですね、<br>
(<a href="#" class="imk-cue" data-seek="4:44" translate="no">00:04:44</a>) 今まで作ってきたアプリケーションに、<br>
(<a href="#" class="imk-cue" data-seek="4:50" translate="no">00:04:50</a>) 何か様々な悪影響が出てくるんじゃないかなという懸念があったわけですね。<br>
(<a href="#" class="imk-cue" data-seek="4:57" translate="no">00:04:57</a>) 特に私の場合、マイライブラリというですね、<br>
(<a href="#" class="imk-cue" data-seek="5:02" translate="no">00:05:02</a>) メディアアセットをコントロールするライブラリ、まあ図書館を作っていたわけですね。<br>
(<a href="#" class="imk-cue" data-seek="5:10" translate="no">00:05:10</a>) で、この図書館からですね、各<br>
(<a href="#" class="imk-cue" data-seek="5:17" translate="no">00:05:17</a>) 配信サーバーにですね、メディアアセットを送ると<br>
(<a href="#" class="imk-cue" data-seek="5:24" translate="no">00:05:24</a>) という働きをですね、システム化してきたわけですね。<br>
(<a href="#" class="imk-cue" data-seek="5:31" translate="no">00:05:31</a>) その悪影響がないかなってことなんですね。<br>
(<a href="#" class="imk-cue" data-seek="5:35" translate="no">00:05:35</a>) と言いますのは、例えば、<br>
(<a href="#" class="imk-cue" data-seek="5:39" translate="no">00:05:39</a>) 必ずですね、この<br>
(<a href="#" class="imk-cue" data-seek="5:45" translate="no">00:05:45</a>) 登録してあるものの中にDropboxリンクっていうのを必ず登録してきました。<br>
(<a href="#" class="imk-cue" data-seek="5:54" translate="no">00:05:54</a>) WordPressのエンコードURLとかですね、pCloudのURLとか、そういうものをリンクしてきたわけですね。<br>
(<a href="#" class="imk-cue" data-seek="6:04" translate="no">00:06:04</a>) で、このDropboxリンクっていうのがですね、これから契約解除すると、<br>
(<a href="#" class="imk-cue" data-seek="6:13" translate="no">00:06:13</a>) そこがですね、エラーにならないかっていうことが非常に気になっていたわけです。<br>
(<a href="#" class="imk-cue" data-seek="6:21" translate="no">00:06:21</a>) で、そこでですね、今どのようにしたかというと、これ一番最初、一行目テスト登録っていうのがありますけども、<br>
(<a href="#" class="imk-cue" data-seek="6:29" translate="no">00:06:29</a>) その中にはですね、すでにDropboxという選択肢は出てきてないです。<br>
(<a href="#" class="imk-cue" data-seek="6:39" translate="no">00:06:39</a>) 次のこのマイコードアプリ、こちらを見ると、ここにはDropboxリンクって出てますけども、<br>
(<a href="#" class="imk-cue" data-seek="6:46" translate="no">00:06:46</a>) その前の、その次の最新のテスト登録pngを見た場合、<br>
(<a href="#" class="imk-cue" data-seek="6:53" translate="no">00:06:53</a>) もうここにはDropboxリンクというものが登場してません。<br>
(<a href="#" class="imk-cue" data-seek="6:58" translate="no">00:06:58</a>) で、ファイルを見てみますとですね、どうなってるかということですけども、<br>
(<a href="#" class="imk-cue" data-seek="7:05" translate="no">00:07:05</a>) これがファイルですね。F1マイライブラリというファイルですけども、<br>
(<a href="#" class="imk-cue" data-seek="7:15" translate="no">00:07:15</a>) スプレッドシートです。で、それのA列のところにDropboxリンクURLがあります。<br>
(<a href="#" class="imk-cue" data-seek="7:17" translate="no">00:07:17</a>) で、この今ですね、<br>
(<a href="#" class="imk-cue" data-seek="7:24" translate="no">00:07:24</a>) 一番最近登録してあるこのテスト登録pngというファイルですけども、<br>
(<a href="#" class="imk-cue" data-seek="7:34" translate="no">00:07:34</a>) それはですね、これご覧のようにDropboxリンクのところは空欄になってます。<br>
(<a href="#" class="imk-cue" data-seek="7:41" translate="no">00:07:41</a>) 空欄にしておきながら、wpidexといういわゆるユニークIDはちゃんと設定してですね、<br>
(<a href="#" class="imk-cue" data-seek="7:51" translate="no">00:07:51</a>) 配信する時にいつものようにユニークなURLを使うことができるという仕組みにですね、改造をしました。<br>
(<a href="#" class="imk-cue" data-seek="7:59" translate="no">00:07:59</a>) ま、これによってDropboxリンクのところは空欄になるんですけれども、<br>
(<a href="#" class="imk-cue" data-seek="8:07" translate="no">00:08:07</a>) Dropboxを使って配信をしなければいいだけですね。<br>
(<a href="#" class="imk-cue" data-seek="8:12" translate="no">00:08:12</a>) そういう扱い、運用をすれば問題がないということを確認しました。<br>
(<a href="#" class="imk-cue" data-seek="8:19" translate="no">00:08:19</a>) つまり、この<br>
(<a href="#" class="imk-cue" data-seek="8:24" translate="no">00:08:24</a>) WP再生URLをクリックしてですね、このようにデータが正しく表示されます。<br>
(<a href="#" class="imk-cue" data-seek="8:33" translate="no">00:08:33</a>) それでいいわけですね。<br>
(<a href="#" class="imk-cue" data-seek="8:35" translate="no">00:08:35</a>) そういう形でですね、プログラムの手直しをしたということをやってきました。<br>
(<a href="#" class="imk-cue" data-seek="8:43" translate="no">00:08:43</a>) これをもってして安心して解約ができると考えています。以上です。<br>
</p> </details>
<style>
/* 汎用ベーススタイル（マイライブラリ等の単独表示・ブログ埋め込み用） */
details { font: 16px "Open Sans", Calibri, sans-serif; width: 100%; }
details > summary { padding: 2px 6px; width: 100%; background-color: #ddd; border: none; box-shadow: 3px 3px 4px black; cursor: pointer; list-style: none; }
details > p { font: 14px "Open Sans", Calibri, sans-serif; height:150px; overflow: scroll; background-color: #EDF7FF; padding: 2px 6px; margin: 0; box-shadow: 3px 3px 4px black; }

/* 動画パッケージ（mu1emd, dr5, dr6等）内での上書き専用スタイル */
.mu1emd-sublist details > p, .dr5-sublist details > p, .dr6-sublist details > p {
    display: block;
    min-height: 180px;
    max-height: 240px;
    overflow-y: auto;
    background-color: #EDF7FF;
    padding: 6px 8px;
    margin: 0;
    box-shadow: 3px 3px 4px black;
    border-radius: 0 0 5px 5px;
}
</style>
</div></div>            <script>
            document.addEventListener("DOMContentLoaded", function(){
                var video = document.getElementById("myVideo");
                if(!video) return;

                            });
            </script>
            

  <script>
  (function(){
    var me = document.currentScript;
    var wrapper = me ? me.closest('.sc-dynamic-embed') : null;

    function protectVideo() {
      var target = wrapper ? wrapper : document;
      var mediaEls = target.querySelectorAll('video, audio');
      mediaEls.forEach(function(v){
        if(v.dataset.protected === 'true') return;
        v.dataset.protected = 'true';
        v.setAttribute('controlsList', 'nodownload');
        v.oncontextmenu = function() { return false; };
        v.addEventListener('contextmenu', function(e){ e.preventDefault(); return false; }, false);
      });
    }

    function initSubtitles() {
      var target = wrapper ? wrapper : document;
      var video = target.querySelector('video, audio');
      var listContainer = target.querySelector('details > p');
      
      if (!video) return false; 
      
      if (video.dataset.subInit === 'true') return true; 
      video.dataset.subInit = 'true';

      var oldOverlay = target.querySelector('#subtitleOverlay') || target.querySelector('#scSubtitleOverlay');
      if (oldOverlay) {
          oldOverlay.style.setProperty('display', 'none', 'important');
          oldOverlay.innerHTML = ''; 
      }

      // 全画面・PiP・iOS全画面の判定（dr52.php準拠＋Safari presentationMode完全対応）
      function isSpecialMode() {
        var fsEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
        var isFs = !!fsEl;
        var isWebkitFs = (video.webkitPresentationMode === "fullscreen") || !!video.webkitDisplayingFullscreen;
        var isPiP = !!(document.pictureInPictureElement && document.pictureInPictureElement === video) || (video.webkitPresentationMode === "picture-in-picture");
        return isFs || isWebkitFs || isPiP;
      }

      // 字幕トラックの表示/非表示を更新
      function updateTrackMode() {
        var hasList = (listContainer !== null);
        var desiredMode = (isSpecialMode() || !hasList) ? "showing" : "hidden";
        try {
          if (video.textTracks && video.textTracks.length > 0) {
            for (var i = 0; i < video.textTracks.length; i++) {
              var track = video.textTracks[i];
              if ((track.kind === 'subtitles' || track.kind === 'captions') && track.mode !== desiredMode) {
                track.mode = desiredMode;
              }
            }
          }
        } catch(e) {}
      }

      // 初回の反映
      updateTrackMode();

      // 各種全画面・PiP切り替えイベントの即時検知リスナーを登録（video本体・document双方を監視）
      ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange'].forEach(function(evtName) {
        document.addEventListener(evtName, updateTrackMode, false);
        video.addEventListener(evtName, updateTrackMode, false);
      });
      video.addEventListener('webkitbeginfullscreen', updateTrackMode, false);
      video.addEventListener('webkitendfullscreen', updateTrackMode, false);
      video.addEventListener('webkitpresentationmodechanged', updateTrackMode, false);
      video.addEventListener('enterpictureinpicture', updateTrackMode, false);
      video.addEventListener('leavepictureinpicture', updateTrackMode, false);
      video.addEventListener('play', updateTrackMode, false);
      video.addEventListener('pause', updateTrackMode, false);

      // 字幕一覧が存在する場合のみ、リストのフォーマット処理を行う
      if (listContainer) {
          var detailsEl = target.querySelector("details");
          if (detailsEl) {
              detailsEl.open = true; 
              var summaryEl = detailsEl.querySelector("summary");
              if (summaryEl) summaryEl.textContent = "字幕(シーン)はここをクリック";
          }

          if (!listContainer.dataset.formatted) {
              var html = listContainer.innerHTML;
              var lines = html.split(/<br\s*\/?>/i);
              var newHtml = "";
              for(var j=0; j<lines.length; j++) {
                  if(lines[j].trim() === "") continue;
                  newHtml += "<span class='imk-line'>" + lines[j] + "</span><br>";
              }
              listContainer.innerHTML = newHtml;
              listContainer.dataset.formatted = "true";
          }

          var rootSublist = target.querySelector(".dr5-sublist") || listContainer.parentElement;
          if (rootSublist) {
            rootSublist.addEventListener("click", function(e){
              var a = e.target.closest && e.target.closest("a.imk-cue[data-seek]");
              if(!a) return;
              e.preventDefault();
              var ts = a.getAttribute("data-seek");
              if(!ts) return;
              var p = ts.trim().split(":").map(function(x){return parseInt(x,10)||0;});
              var sec = (p.length===2) ? p[0]*60+p[1] : (p.length===3 ? p[0]*3600+p[1]*60+p[2]: null);
              if(sec==null) return;
              try{ video.currentTime = sec; if(video.paused) video.play(); }catch(_){}
            });
          }
      }

      // 再生中（時間進行時）の追従とハイライト更新
      video.addEventListener("timeupdate", function(){
        updateTrackMode();

        var hasList = (listContainer !== null);
        if (!hasList) return;

        var cues = listContainer.querySelectorAll("a.imk-cue");
        if(cues.length === 0) return;
        var cur = video.currentTime;
        var activeA = null;

        for(var i=0; i<cues.length; i++){
            var ts = cues[i].getAttribute("data-seek");
            if(!ts) continue;
            var p = ts.trim().split(":").map(function(x){return parseInt(x,10)||0;});
            var t = (p.length===2) ? p[0]*60+p[1] : (p.length===3 ? p[0]*3600+p[1]*60+p[2] : null);
            if(t !== null && cur >= t - 0.5){ activeA = cues[i]; } 
            else if(t > cur){ break; }
        }

        if(activeA){
            var activeLine = activeA.closest(".imk-line");
            if(!activeLine) activeLine = activeA;

            if(activeLine.classList.contains("active-hl")) return;

            var allLines = listContainer.querySelectorAll(".imk-line");
            for(var k=0; k<allLines.length; k++) {
                allLines[k].classList.remove("active-hl");
                allLines[k].removeAttribute("style"); 
            }
            var allLinks = listContainer.querySelectorAll("a");
            for(var m=0; m<allLinks.length; m++) {
                allLinks[m].classList.remove("active-hl");
                allLinks[m].removeAttribute("style"); 
            }

            activeLine.classList.add("active-hl");
            activeLine.style.setProperty("background-color", "#ffff00", "important");
            activeLine.style.setProperty("color", "red", "important");
            activeLine.style.setProperty("font-weight", "normal", "important");
            
            var newLinks = activeLine.querySelectorAll("a");
            for(var n=0; n<newLinks.length; n++) {
                newLinks[n].style.setProperty("color", "red", "important");
                newLinks[n].style.setProperty("text-decoration", "none", "important");
            }

            if(listContainer.offsetParent !== null){
                var containerRect = listContainer.getBoundingClientRect();
                var activeRect = activeLine.getBoundingClientRect();
                var targetScroll = listContainer.scrollTop + (activeRect.top - containerRect.top) - (listContainer.clientHeight / 2) + (activeLine.clientHeight / 2);
                listContainer.scrollTo({ top: targetScroll, behavior: "smooth" });
            }
        }
      });

      return true;
    }

    var checks = 0;
    var checkTimer = setInterval(function(){
      protectVideo();
      var success = initSubtitles();
      checks++;
      if (success || checks > 20) { 
        clearInterval(checkTimer);
      }
    }, 500); 

    if (!window.scStopAndGo) {
      window.scStopAndGo = function(event, link){
        try{
          var mediaEls = document.querySelectorAll('video, audio');
          mediaEls.forEach(function(m){
            try{
              if (!m.paused) m.pause();
              if (document.pictureInPictureElement === m && document.exitPictureInPicture) {
                document.exitPictureInPicture().catch(function(){});
              }
            }catch(e){}
          });
        }finally{
          event.preventDefault();
          setTimeout(function(){
            if (link.target === '_blank') {
              window.open(link.href, '_blank');
            } else {
              window.location.href = link.href;
            }
          }, 50);
        }
        return false;
      };
    }
  })();
  </script>
</div>



<figure class="wp-block-image size-full is-resized"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="472" height="209" src="https://i0.wp.com/imakat.com/wp-content/uploads/2026/08/4fb0a64bd89800a8722405fa6ed6f421-1.png?resize=472%2C209&#038;ssl=1" alt="" class="wp-image-29566" style="width:207px;height:auto"/></figure>



<p class="wp-block-paragraph">長年使い込んできたDropboxからの脱却にあたり、課題となった「ローカルパスの互換性」と「自作アプリ（AppSheet / WordPress連携）への影響」をどのようにクリアしたかについて記録しておきます。</p>



<h2 class="wp-block-heading">１　<strong>乗り換えを決意した理由</strong>〜ドル建て料金は重過ぎる〜</h2>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=2Dzrm1dc.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=2Dzrm1dc.png" alt="" style="width:311px;height:auto"/></a></figure>



<p class="wp-block-paragraph">これまでDropbox Plus（2TB）を利用していましたが、ドル建て決済（131.87 USD/年）のため近年の円安傾向も相まって年間2万円超（月換算で1,700円〜2,000円近く）の負担となっていました。</p>



<p class="wp-block-paragraph">特に個人の場合、ふつうは貿易はしてないので、支払いに充てる外貨資金があるわけでもなく、やっぱりDropboxは企業重視だなと感じます。</p>



<p class="wp-block-paragraph">そこへ、新たに登場したGoogle AI Proプランは、月額2,900円ですが、生成AIの結構幅広い機能に加えて、Dropboxの2.5倍の5TBの大容量ストレージがパッケージされています。ストレージ単価や今後の拡張性を考慮すると、Googleドライブへ集約する方が圧倒的にメリットが大きいと判断しました。</p>



<p class="wp-block-paragraph">（後日、記事を書こうと思いますが、GoogleAIPro2,900円とGoogleAIPlus725円の相互乗り換えが、Gドライブの使用量を400GB以内に管理することにより可能になることと期待します。）</p>



<h2 class="wp-block-heading">２　<strong>ローカルフォルダ構造とパスの維持工夫</strong></h2>



<p class="wp-block-paragraph">M1 Mac mini環境において、各種スクリプトや自作アプリが既存の「Dropbox」フォルダパスに深く依存しています。すべてのフォルダパスを書き換えるのは膨大な作業となるため、以下の形でミラーリング同期を設定しました。</p>



<ul class="wp-block-list">
<li>ローカル側：既存のフォルダ構造（&#8230;/Dropbox）をそのまま維持</li>



<li>クラウド側：Googleドライブ上の パソコン ＞ マイ Mac mini ＞ mybox_1 フォルダに対してミラーリング同期を実施</li>
</ul>



<p class="wp-block-paragraph">この設計により、ローカル上のスクリプトやファイルパスを変更することなく、同期先クラウドだけをDropboxからGoogleドライブへ安全に切り替えることが可能になります。</p>



<h2 class="wp-block-heading">３　<strong>自作アプリ（AppSheet・配信システム）の影響調査と改善</strong></h2>



<p class="wp-block-paragraph">最も懸念していたのが、自作のメディア管理アプリ（マイライブラリ）および配信システムへの影響です。</p>



<p class="wp-block-paragraph">これまではGoogleスプレッドシート（F1_マイライブラリ）のA列に「Dropbox共有リンク」を記録し、WordPress等のエンコードURLや各配信サーバーへと連携する仕組みを構築していました。Dropboxを解約するとこれらの共有リンクが無効化されてしまうため、以下の改修を行いました。</p>



<p class="wp-block-paragraph">改善ポイント</p>



<p class="wp-block-paragraph">①Dropboxリンク依存の脱却</p>



<ul class="wp-block-list">
<li>今後の新規登録（テスト登録.png 等）では、Dropboxリンク欄を空欄に設定。</li>
</ul>



<p class="wp-block-paragraph">②ユニークID（wpidex）による配信URL生成</p>



<ul class="wp-block-list">
<li>外部共有リンクに頼らず、システム内部のユニークID（wpidex）をベースにWordPress経由の再生URLを直接生成・配信するロジックへ変更。</li>
</ul>



<p class="wp-block-paragraph">実証実験を行い、Dropboxリンクが空欄の状態でも正しくデータが表示され、動画・画像配信に一切支障がないことを確認できました。</p>



<p class="wp-block-paragraph">結局、今回の改善手順のポイントは、<br><strong>Dropboxを解除したあとは、普通のローカルフォルダだけで運用が出来るようにすること。</strong><br>次に<br><strong>そのローカルフォルダをGoogleDriveなど別の場所にミラーリング同期すること。</strong><br></p>



<p class="wp-block-paragraph">ということになります。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=6Wh31WZu.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=6Wh31WZu.png" alt="" style="aspect-ratio:3.9321096689962367;width:749px;height:auto"/></a></figure>



<h2 class="wp-block-heading">４　<strong>まとめと今後の運用</strong></h2>



<p class="wp-block-paragraph">ビデオの中では、フォルダ名にDropbox dropbox_1を残したまま、昭和歌謡の「昔の名前で出ています(小林旭)」として、使い続けることを決心していたのですが、気が変わりまして、できるなら、ローカルフォルダ名も、mybox mybox_1に改名したいと強く思うようになり、主にPythonアプリを７本程度、手直ししました。その結果、現在は、昔の名前は名乗らず、今の名前で出ています。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=SoT6Enmr.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=SoT6Enmr.png" alt="" style="aspect-ratio:1.7769094939324492;width:343px;height:auto"/></a></figure>



<a rel="noopener" target="_blank" href="https://docs.google.com/drawings/d/1INrFZ_Q8zmGtWpZq7OUuv2RKofQrlrLqYylZwLLlxSY/edit?usp=sharing"  ="">
<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vSmkRqDIHqNWLvNC5vzih9yDGCf0In1GISEp-aO4ZLmZm6JMxR6Qt-fnozT8hD275HJJiThM0vnKyqH/pub?w=1920&amp;h=1440"></a>



<p class="wp-block-paragraph">余談：<br>Macには、M2 MacminiとM1 Macminiがありますが、M2の意味は、現在はAppleシリコンM2のM2ではありますが意味としてはMeister2のM2、と意味付けします。将来、AppleシリコンM6 Mac miniをこのNO2_Macの位置に入れ替えたとしても、imakatシステムでは、 M2 Mac mini、と命名し続けます。M1も同様です。と言うのは、Macの機器更新の時、設定を変えることなく、前の機器の内容をそっくり移行できるからです。</p>



<p class="wp-block-paragraph">自作システムの改修とデータ移行の検証が完了したため、これで懸念事項はすべて解消されました。実際、8月30日に解約を行いました。</p>



<p class="wp-block-paragraph">長年依存してきた環境からの移行ですので心配しましたが、構造をシンプルに整理し直す良い機会となりました。同様の構成でストレージ移行を検討されている方の参考になれば幸いです。</p>



<p class="wp-block-paragraph">以上</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">29546</post-id>	</item>
	</channel>
</rss>
