• Wer seine Google Play Music Titel per Takeout runterladen will, sollte Zeit einplanen

    TL;DR
    Google Takeouts haben bei mir nicht mit dem Downloadmanager funktioniert, Downloads lassen sich nicht wiederaufnehmen und werden nicht viel schneller wenn man es parallelisiert.


    Google Play Music wird eingestellt, User können ihre Titel zu YouTube Music übertragen
    https://support.google.com/youtubemusic/answer/9698084?hl=de

    das klappt auch soweit, nur ist YouTube Music nicht benutzbar (tristes schwarz, Nag-Screen für Premium, ohne kosten­pflich­tiges Abo kein Hinter­grundbetrieb, kein direkter Einstieg zum Player ...)

    Man kann mit Google Takeout seine bei Google Play Music hochgeladenen Titel runterladen.
    https://google.com/takeout und dann "Deselect all" und nur "Google Play Music " wieder aktivieren
    das ganze kommt als gesplittetes ZIP in wählbarer Größe von 1,2,4,10 oder 50 GB

    Zuerst habe ich 2 GB probiert, um den Download möglichst gut parallelisieren zu können.

    Die Vorbereitung bei Google hat ein paar Stunden gedauert, dann kam eine eMail.


    Diese 125 Links in der eMail kann man jetzt nicht einfach rauskopieren bzw. vom Downloadmanager übernehmen lassen, denn das sind nur Links die wiederum erst die Generierung des finalen Links anstoßen.

    Aus jedem Link in der eMail
    https :// accounts.google.com/AccountChooser?continue=https://takeout.google.com/settings/takeout/download?j%3D4711ac22-1234-1234-1234-efefefeffefefeffefefefefef%26i%3D0&Email=meine.email@gmail.com

    generiert Google so etwas
    https :// aae9e64bac6371253c34e34f6d1ee555cf4212ac8c1cfdebfff5-apidata.googleusercontent.com/download/storage/v1/b/takeout-eu/o/20200706T201512Z%2F8925029452921930405%2F8120fe8e-387d-44d8-9ba0-95fa519f06223%2F2%2F6ddc0248-3113-42121-9420-1b4aee6d3813?qk=BF5uMEts-[16 weitere Zeilen]-BQL0ItjV_g3d2WDC2vLBXIEGk4FcY&isca=1

    Alle Links sind intern mit einem Gültigkeitszeitraum und einem Downloadcounter versehen.

    Schlimmer ist jedoch, daß wenn man die Dateien mit einem Downloadmanager nacheinander holen lassen möchte, die Links in der Queue bereits ungültig geworden sind, wenn die Datei an der Reihe ist.

    Beim Herumexperimentieren mit der 2 GB Splitgröße hieß es dann auch noch sinngemäß "Limit der Backupdownloads erreicht, Downloadlink kann nicht erstellt werden"

    Ich habe dann bei dem Versuch mit 10 GB Splitgröße und Verwendung das normalen Browserdownloads (nur noch 25 Dateien statt der 125) genau das gehabt, was ich vermeiden wollte. Abends alle 25 Downloads im Browser manuell angestoßen und die Downloads sind irgendwann in der Nacht stehen geblieben mit 5 fertigen ZIPs und 20 halbfertigen, die sich nicht erneut starten ließen, weil die Gültigkeit abgelaufen ist (Screenshot aus meinem letzten Versuch mit 50 GB Splitgröße)


    Mir ist aufgefallen, daß die Downloadgeschwindigkeit sehr stark schwankt, mal sind es die kompletten 50 MBit/s meines VDSL Anschlußes, mal geht es bis auf ein paar 100 KB/s runter, um dann irgendwann wieder zu steigen.

    Letztendlich mache ich es jetzt so: der Download läuft auf dem 'headless' C2D MacMini, den ich per VNC steuere. Die Speicherung der Dateien erfolgt gleich auf eine externe Platte, die ich wenn der Download fertig ist, an den iMac zur 'Bearbeitung' anschließe.

    Als Splitgröße habe ich 50 GB, bei mir dann 5 Dateien, gewählt. Jeweils zwei Dateien lasse ich parallel runterladen. Auch dort ist mir eine einfach "stehengeblieben" (siehe Screenhot oben)

    Auf dem MacMini läuft ein kleines Skript, das erkennt wenn der Download fertig ist und mir dann eine eMail schickt, damit ich über VNC im Browser auf dem Mini die nächsten zwei Links generieren lassen kann.

    Show Plain Text
    1. #!/bin/bash
    2. zipsoll=$1
    3.  
    4. ### Info eMail verschicken
    5. # $1 Empfänger $2 Subject $3 Body
    6. compose_email () {
    7. echo "tell application \"Mail\"
    8.    activate
    9.    set MyEmail to make new outgoing message with properties {visible:true, subject:\"$2\", content:\"$3\"}
    10.    tell MyEmail
    11.        make new to recipient at end of to recipients with properties {address:\"$1\"}
    12.        send
    13.    end tell
    14. end tell
    15. " | osascript
    16. }
    17.  
    18. if [ -z $zipsoll ]; then
    19.     echo "Angabe der ZIPs fehlt z.B. $0 4"
    20. else
    21.     zips=0
    22.     while [ $zips -lt $zipsoll ]; do
    23.         zips=$(ls /Volumes/MusicBackup/GTO/ | grep -c zip)
    24.         sleep 60
    25.     done
    26.  
    27.     echo "Mail wird verschickt"
    28.     compose_email meine.email@gmail.com "Download ist fertig" "Google Takeout auf MacMini"
    29. fi
    30. exit 0


    Zusätzlich lasse ich mir am iMac die aktuelle Downloadrate des Minis anzeigen, um die zu ermitteln läuft in BitBar [github.com] eine kleines Skript, das die Größe des Downloadordners auf der am Mini angeschlossenen Platte ermittelt und anhand der Differenz und der Zeit seit letztem Skriptlauf, die DLrate errechnet - das Skript läuft aktuell alle 60 Sekunden.


    Show Plain Text
    1. #!/bin/bash
    2.  
    3. BitBarDarkMode=${BitBarDarkMode}
    4. if [ "$BitBarDarkMode" ]; then
    5.   COLOR0="#666666"
    6.   COLOR1="#ffffff"
    7. else
    8.   COLOR0="#333333"
    9.   COLOR1="#000000"
    10. fi
    11.  
    12. dl_alt_loc="/Volumes/RamDiskCache/dl_alt.txt"
    13.  
    14. ts_akt=$(date +"%s")
    15. mb_akt=$(echo "$(ssh -q mini@192.168.666.666 du -s /Volumes/MusicBackup/GTO | grep -o [^/]*)/2048" | bc)
    16.  
    17. if [ -f "$dl_alt_loc" ]; then
    18.     mb_loc=$(cat $dl_alt_loc)   # utime mb
    19.     ts_alt="${mb_loc% *}"       # utime
    20.     mb_alt="${mb_loc##* }"      # mb
    21.  
    22.     dif_sec=$((ts_akt-ts_alt))
    23.     dif_mb=$((mb_akt-mb_alt))
    24.     echo "$mb_akt $(echo "scale=1; $dif_mb/$dif_sec" |bc) MB/s"
    25.     echo "---"
    26.     echo "Dif $dif_sec s $dif_mb MB"
    27. else
    28.     echo "n/a"
    29.     echo "---"
    30.     echo "Ermittele Daten, bitte warten"
    31. fi
    32.     echo "$ts_akt $mb_akt" > "$dl_alt_loc"
    33. exit 0


    Das 'ssh -q mini@192' in Zeile 15 (SSH Login per Keyfile und nicht per Passwort) funktioniert natürlich nur wenn man vorher seinen eigenen SSH-Key mit ssh-copy-id user@MacIP übertragen hat.
    • Und der nächste 50 GB Download ist bei 40 GB nicht wiederaufnehmbar abgebrochen

      Netzwerkfehler obwohl der zweite Download normal weiterläuft


      Klick auf Fortsetzen liefert Autorisierung erforderlich


      Wie gesagt, zum Download genügend Zeit einplanen, am Anlegedatum des Ordners 5. Aug 12:28 Uhr, sieht man wie lange sich ein simpler Download nun schon hinzieht.
        • Ich denke, das bringt so gut wie nur Nachteile - der Download sind meine vorherigen Uploads

          Durch das Hochladen ließ sich dann auch ohne irgendein laufendes Abo auf Zuruf Musik abspielen.

          Sinn meiner Aktion ist es rauszufinden, *was* Google einem genau zurückgibt. Gibt es Qualitätsupgrades wie bei iTunes Match, hat man andere/bessere Metadaten usw.

          Denn lokal sind hier die ganzen Dateien sowieso noch auf Festplatten oder CDs vorhanden.

          Aber für die meisten jüngeren Nutzer sollte das sowieso egal sein, da hört "ihre" Musik schlagartig auf, sobald sie nicht mehr 10€/Monat an den Streamingdienst zahlen.
      • Schauen wir mal, das Ganze ist auch häßlich wie die Nacht und eher für Jüngere gedacht

        Google Music konnte man auch als hinreichenden Player für seine auf dem Phone Dateien nehmen.

        Da ich meistens 'meine' Sachen höre, habe die als Auswahl auf dem Phone und streame trotz unlimited Tarif gar nichts. Es fühlt sich für mich nicht richtig an, Content den man lokal hat, wieder und wieder zu streamen und Bandbreite zu verbrauchen. Nur erkläre das mal jemandem, der meint, er müsse auch die zig tausend Fotos seines Lebens immer bei sich haben und nicht nur die ca. 60, die mir völlig reichen.
          • Es ist halt eine optische Zumutung

            Bei jedem Start (Edit: jetzt springt er in die "Empfehlungen" - vielleicht kommt das nur einmal am Tag, öfter benutze ich die App nicht) der App - dieser Nag-Screen


            Dann steht man irgendwo, nur nicht in der eigenen Mediathek und bekommt ungefragt irgendeine Empfehlung aufgedrückt


            oder solche Vorschläge, das grenzt schon an Userverachtung und paßt gar nicht zum Personalisierungsanspruch


            was man eigentlich will ist, daß es wie bei Google Music einen direkten Einsprung "Meine Mediathek"gibt


            und nicht nur zur Suche wie bei YouTube Music


            Für die Nicht-Androidnutzer die Shortcuts aus dem Popup Menü kann man sich auf den Homescreen legen und dann direkt aufrufen, das Appicon braucht man sich dann nicht mehr anzeigen zu lassen.
            Hier mal beispielhaft links neben das Popup gelegt - mit dem Launcher tauscht man das Shortcuticon noch gegen das vom Player aus und hat was man will, einen einfachen Aufruf seiner Musik.



            Und es muß doch möglich sein den Player nicht so aussehen zu lassen, als fände gerade ein Staatbegräbnis statt, ging in Google Music ja auch - und dort ließ sich auch zwischen lokal und im netzbefindlichen Songs unterscheiden


            Jetzt habe ich ein OLED und spare dadurch vielleicht Strom, für User mit LC-Display ist es aber nur häßlich ohne daß sie stromsparen.


            So zwischen den Zeilen wird vielleicht deutlich, daß ich einen lokalen Player mit lokalen Dateien verwende - aktuell Pulsar, trotz vorhandener Poweramp Lizenz, aber mit dem werde ich auch nicht warm.

            Skeuomorphismus Liebhabern kann ich Casse-o-player empfehlen, bietet aber außer "Alles dreht sich, alles bewegt sich" keinen Mehrwert, ist primär ein Gag
    • Download komplett (im alten Thread zum leichteren Ausblenden für Nichtbetroffene)

      Anhand der Finderdaten hat der vollständige Download der 50 GB Teile nun 1 1/2 Tage gedauert.

      Laut der Fritzbox habe ich diesen Monat bereits 500 GB mehr übertragen als den gesamten letzten. Das Archiv ist 250 GB groß und die andere 250 GB sind die ganzen erfolglosen Versuche.

      Man erhält eine Reihe an ZIP Files, in meinem Fall 5 x 50 GB
      takeout-20200806T141512Z-001.zip
      takeout-20200806T141512Z-002.zip
      takeout-20200806T141512Z-003.zip
      takeout-20200806T141512Z-004.zip
      takeout-20200806T141512Z-005.zip

      die man dann entpacken muß.

      Da mein iMac 2011 auch nur USB 2 Schnittstellen hat, wie der noch ältere Mini und die Hauptleistung beim Entpacken das Kopieren ist, habe ich an den Mini eine weitere Platte ThinkPadHD angeschlossen und entpacke von der Downloadplatte auf die ThinkPadHD
      ditto -x -k -V $(ls /Volumes/MusicBackup/GTO/takeout*.zip) /Volumes/ThinkPadHD

      Auf der Platte entsteht die Struktur


      wobei in Tracks alle Dateien (Audio und Metadaten CSV) einfach flach drinliegen.

      USB 2 bedingt erfolgt der Transfer sehr langsam


      Um den Fortschritt zu kontrollieren ohne per VNC auf den headless Mini gehen zu müssen, habe ich mein BitBar Skript vom ersten Beitrag minimal angepaßt. Dort wurde der Downloadfortschritt anhand der veränderter Ordnergröße ermittelt. Auf Grund der großen Anzahl an Dateien auf der Festplatte und um dem Kopierprozeß nicht aufzuhalten, wird jetzt der kleinerwerdende freie Platz der Festplatte anhand der Information aus diskutil ermittelt.

      diskutil info /Volumes/ThinkPadHD/
      (...)
      Total Size: 999.9 GB (999860912128 Bytes) (exactly 1952853344 512-Byte-Units)
      Volume Free Space: 939.4 GB (939384983552 Bytes) (exactly 1834736296 512-Byte-Units)
      (...)

      das wird dann von der Gesamtgröße abgezogen und ergibt den belegten Platz.

      aus Zeile 15
      mb_akt=$(echo "$(ssh -q du -s /Volumes/MusicBackup/GTO | grep -o [^/]*)/2048" | bc)

      wird
      mb_fre=$(ssh -q diskutil info /Volumes/ThinkPadHD/ | grep Free | sed 's/.*(\([0-9]*\) Bytes.*/\1/')
      mb_akt=$(echo "(999860912128-$mb_fre)/1048576"| bc)

      Rest bleibt unverändert.

      Show Plain Text
      1. #!/bin/bash
      2.  
      3. BitBarDarkMode=${BitBarDarkMode}
      4. if [ "$BitBarDarkMode" ]; then
      5.   COLOR0="#666666"
      6.   COLOR1="#ffffff"
      7. else
      8.   COLOR0="#333333"
      9.   COLOR1="#000000"
      10. fi
      11.  
      12. dl_alt_loc="/Volumes/RamDiskCache/dl_alt.txt"
      13.  
      14. ts_akt=$(date +"%s")
      15. mb_fre=$(ssh -q mini@192.168.666.666 diskutil info /Volumes/ThinkPadHD/ | grep Free | sed 's/.*(\([0-9]*\) Bytes.*/\1/')
      16. mb_akt=$(echo "(999860912128-$mb_fre)/1048576"| bc)
      17.  
      18. if [ -f "$dl_alt_loc" ]; then
      19.     mb_loc=$(cat $dl_alt_loc)   # utime mb
      20.     ts_alt="${mb_loc% *}"       # utime
      21.     mb_alt="${mb_loc##* }"      # mb
      22.  
      23.     dif_sec=$((ts_akt-ts_alt))
      24.     dif_mb=$((mb_akt-mb_alt))
      25.     echo "$mb_akt $(echo "scale=1; $dif_mb/$dif_sec" |bc) MB/s"
      26.     echo "---"
      27.     echo "Dif $dif_sec s $dif_mb MB"
      28. else
      29.     echo "n/a"
      30.     echo "---"
      31.     echo "Ermittele Daten, bitte warten"
      32. fi
      33. echo "$ts_akt $mb_akt" > "$dl_alt_loc"
      34. exit 0


      Keine Rakete aber zumindest ist das schneller als der Download


      Und wenn es dann irgendwann fertig ausgepackt ist, wird es richtig spannend, wie matche ich das mit den lokalen Dateien.

      Die flache Struktur und Googles eigene Benamung machen es nicht einfach die lokale Entsprechnung sicher zu erkennen.
      • Beim Auspacken nach 247 GB von knapp 250 GB 'Couldn't read pkzip signature.'

        Wie haben wir bloß früher die Sommernachmittage rumbekommen?

        Kurz vor Schluß kommt das
        ditto: Takeout/Google Play Music/Tracks/Genesis - Platinum Collection - Home By The Sea.mp3: Device not configured
        ditto: Couldn't read pkzip signature.

        Ich definiere die 247 GB für heute mal als fertig, es sollte genug zum weiteren Testen sein.