{"id":6793,"date":"2025-05-04T16:47:39","date_gmt":"2025-05-04T15:47:39","guid":{"rendered":"https:\/\/olivier.hoarau.site\/?p=6793"},"modified":"2025-05-04T16:48:27","modified_gmt":"2025-05-04T15:48:27","slug":"kdenlive-25-04-0-et-lobjet-masque","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=6793","title":{"rendered":"kdenlive 25.04.0 et l&rsquo;objet masque"},"content":{"rendered":"\n<p>Je viens d&rsquo;installer la derni\u00e8re version de <a href=\"https:\/\/www.funix.org\/fr\/linux\/index.php?ref=kdenlive\">kdenlive<\/a> 25.04.0 dont un rapide changelog peut \u00eatre consult\u00e9 <a href=\"https:\/\/kdenlive.org\/news\/releases\/25.04.0\">ici<\/a>. Elle int\u00e8gre une \u00e9volution pour cr\u00e9er des masques d&rsquo;objet bas\u00e9s sur <a href=\"https:\/\/github.com\/facebookresearch\/sam2\">Segment Anything Model 2<\/a> (SAM 2) qui permet de segmenter une image et une vid\u00e9o en plusieurs objets distincts, d&rsquo;o\u00f9 \u00e9galement le terme segmentation d&rsquo;objet utilis\u00e9 par <strong>kdenlive<\/strong>. Ces masques peuvent ensuite \u00eatre utilis\u00e9s dans la vid\u00e9o pour supprimer le fond de la vid\u00e9o ou pour appliquer un effet particulier \u00e0 un objet comme on peut le voir dans la <a href=\"https:\/\/docs.kdenlive.org\/ko\/effects_and_filters\/video_effects\/alpha_mask_keying\/object_mask.html\">documentation<\/a>.<\/p>\n\n\n\n<p>Sauf que l&rsquo;installation de <strong>SAM2<\/strong> ne s&rsquo;est pas pass\u00e9e comme pr\u00e9vue, car j&rsquo;ai but\u00e9 sur cette erreur.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"324\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?resize=474%2C324&#038;ssl=1\" alt=\"\" class=\"wp-image-6794\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?resize=1024%2C700&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?resize=300%2C205&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?resize=768%2C525&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?w=1061&amp;ssl=1 1061w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image3.png?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>j&rsquo;ai cr\u00e9\u00e9 un bug sur le tracker officiel <strong>KDE<\/strong> qu&rsquo;on peut consulter <a href=\"https:\/\/bugs.kde.org\/show_bug.cgi?id=503757\">ici<\/a> visiblement \u00e7a viendrait de l&#8217;emplacement de l&rsquo;option<strong> -r <\/strong>dans la commande <strong>pip<\/strong>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Puisque je n&rsquo;arrive pas \u00e0 installer <strong>SAM2<\/strong> via <strong>kdenlive<\/strong>, j&rsquo;ai choisi de l&rsquo;installer \u00e0 part et de cocher la case ci-dessus <strong>Use system packages only<\/strong>. Pour cela on tapera les commandes :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">git clone https:\/\/github.com\/facebookresearch\/sam2.git &amp;&amp; cd sam2<br\/>pip install -e .<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Sauf qu&rsquo;il me renvoie syst\u00e9matiquement une erreur comme quoi le disque est plein et qui se termine par :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">Installing collected packages: nvidia-cusparselt-cu12, mpmath, typing-extensions, sympy, setuptools, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufile-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, networkx, MarkupSafe, fsspec, filelock, triton, nvidia-cusparse-cu12, nvidia-cufft-cu12, nvidia-cudnn-cu12, jinja2, nvidia-cusolver-cu12, torch<br\/>      ERROR: Could not install packages due to an OSError: [Errno 28] Aucun espace disponible sur le p\u00e9riph\u00e9rique<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>j&rsquo;ai donc adapt\u00e9 la commande en sp\u00e9cifiant un endroit o\u00f9 il y a de la place pour le cache temporaire en tapant :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">TMPDIR=\/lucien\/system\/tmp\/ pip install --cache-dir=\/lucien\/system\/tmp -e .<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>et voil\u00e0 le r\u00e9sultat :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">Obtaining file:\/\/\/home\/olivier\/compilation\/linux\/multimedia\/sam2<br\/>  Installing build dependencies ... done<br\/>  Checking if build backend supports build_editable ... done<br\/>  Getting requirements to build editable ... done<br\/>  Preparing editable metadata (pyproject.toml) ... done<br\/>Requirement already satisfied: torch&gt;=2.5.1 in \/usr\/local\/lib\/python3.13\/site-packages\/torch-2.7.0-py3.13-linux-x86_64.egg (from SAM-2==1.0) (2.7.0)<br\/>Requirement already satisfied: torchvision&gt;=0.20.1 in \/usr\/local\/lib\/python3.13\/site-packages\/torchvision-0.22.0-py3.13-linux-x86_64.egg (from SAM-2==1.0) (0.22.0)<br\/>Requirement already satisfied: numpy&gt;=1.24.4 in \/usr\/lib64\/python3.13\/site-packages (from SAM-2==1.0) (2.1.3)<br\/>Requirement already satisfied: tqdm&gt;=4.66.1 in \/usr\/lib\/python3.13\/site-packages (from SAM-2==1.0) (4.67.1)<br\/>Requirement already satisfied: hydra-core&gt;=1.3.2 in \/usr\/local\/lib\/python3.13\/site-packages\/hydra_core-1.4.0.dev1-py3.13.egg (from SAM-2==1.0) (1.4.0.dev1)<br\/>Requirement already satisfied: iopath&gt;=0.1.10 in \/lucien\/system\/lib\/python3.13\/site-packages\/iopath-0.1.10-py3.13.egg (from SAM-2==1.0) (0.1.10)<br\/>Requirement already satisfied: pillow&gt;=9.4.0 in \/usr\/lib64\/python3.13\/site-packages (from SAM-2==1.0) (11.1.0)<br\/>Requirement already satisfied: omegaconf&gt;=2.4.0.dev2 in \/usr\/local\/lib\/python3.13\/site-packages\/omegaconf-2.4.0.dev3-py3.13.egg (from hydra-core&gt;=1.3.2-&gt;SAM-2==1.0) (2.4.0.dev3)<br\/>Requirement already satisfied: packaging in \/usr\/lib\/python3.13\/site-packages\/setuptools\/_vendor (from hydra-core&gt;=1.3.2-&gt;SAM-2==1.0) (24.2)<br\/>Requirement already satisfied: typing_extensions in \/usr\/lib\/python3.13\/site-packages\/setuptools\/_vendor (from iopath&gt;=0.1.10-&gt;SAM-2==1.0) (4.12.2)<br\/>Requirement already satisfied: portalocker in \/usr\/local\/lib\/python3.13\/site-packages\/portalocker-3.1.1-py3.13.egg (from iopath&gt;=0.1.10-&gt;SAM-2==1.0) (3.1.1)<br\/>Requirement already satisfied: filelock in \/usr\/local\/lib\/python3.13\/site-packages\/filelock-3.18.0-py3.13.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (3.18.0)<br\/>Requirement already satisfied: setuptools in \/usr\/lib\/python3.13\/site-packages (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (78.1.0)<br\/>Requirement already satisfied: sympy&gt;=1.13.3 in \/usr\/local\/lib\/python3.13\/site-packages\/sympy-1.14.0-py3.13.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (1.14.0)<br\/>Requirement already satisfied: networkx in \/usr\/local\/lib\/python3.13\/site-packages\/networkx-3.4.2-py3.13.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (3.4.2)<br\/>Requirement already satisfied: jinja2 in \/usr\/lib\/python3.13\/site-packages (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (3.1.6)<br\/>Requirement already satisfied: fsspec in \/usr\/local\/lib\/python3.13\/site-packages\/fsspec-2025.3.2-py3.13.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (2025.3.2)<br\/>Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.6.77 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cuda_nvrtc_cu12-12.6.77-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.6.77)<br\/>Requirement already satisfied: nvidia-cuda-runtime-cu12==12.6.77 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cuda_runtime_cu12-12.6.77-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.6.77)<br\/>Requirement already satisfied: nvidia-cuda-cupti-cu12==12.6.80 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cuda_cupti_cu12-12.6.80-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.6.80)<br\/>Requirement already satisfied: nvidia-cudnn-cu12==9.5.1.17 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cudnn_cu12-9.5.1.17-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (9.5.1.17)<br\/>Requirement already satisfied: nvidia-cublas-cu12==12.6.4.1 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cublas_cu12-12.6.4.1-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.6.4.1)<br\/>Requirement already satisfied: nvidia-cufft-cu12==11.3.0.4 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cufft_cu12-11.3.0.4-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (11.3.0.4)<br\/>Requirement already satisfied: nvidia-curand-cu12==10.3.7.77 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_curand_cu12-10.3.7.77-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (10.3.7.77)<br\/>Requirement already satisfied: nvidia-cusolver-cu12==11.7.1.2 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cusolver_cu12-11.7.1.2-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (11.7.1.2)<br\/>Requirement already satisfied: nvidia-cusparse-cu12==12.5.4.2 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cusparse_cu12-12.5.4.2-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.5.4.2)<br\/>Requirement already satisfied: nvidia-cusparselt-cu12==0.6.3 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cusparselt_cu12-0.6.3-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (0.6.3)<br\/>Requirement already satisfied: nvidia-nccl-cu12==2.26.2 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_nccl_cu12-2.26.2-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (2.26.2)<br\/>Requirement already satisfied: nvidia-nvtx-cu12==12.6.77 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_nvtx_cu12-12.6.77-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.6.77)<br\/>Requirement already satisfied: nvidia-nvjitlink-cu12==12.6.85 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_nvjitlink_cu12-12.6.85-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (12.6.85)<br\/>Requirement already satisfied: nvidia-cufile-cu12==1.11.1.6 in \/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cufile_cu12-1.11.1.6-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (1.11.1.6)<br\/>Requirement already satisfied: triton==3.3.0 in \/usr\/local\/lib\/python3.13\/site-packages\/triton-3.3.0-py3.13-linux-x86_64.egg (from torch&gt;=2.5.1-&gt;SAM-2==1.0) (3.3.0)<br\/>Requirement already satisfied: PyYAML&gt;=5.1.0 in \/usr\/lib64\/python3.13\/site-packages (from omegaconf&gt;=2.4.0.dev2-&gt;hydra-core&gt;=1.3.2-&gt;SAM-2==1.0) (6.0.1)<br\/>Requirement already satisfied: mpmath&lt;1.4,&gt;=1.1.0 in \/usr\/local\/lib\/python3.13\/site-packages\/mpmath-1.3.0-py3.13.egg (from sympy&gt;=1.13.3-&gt;torch&gt;=2.5.1-&gt;SAM-2==1.0) (1.3.0)<br\/>Requirement already satisfied: MarkupSafe&gt;=2.0 in \/usr\/lib64\/python3.13\/site-packages (from jinja2-&gt;torch&gt;=2.5.1-&gt;SAM-2==1.0) (3.0.2)<br\/>Building wheels for collected packages: SAM-2<br\/>  Building editable for SAM-2 (pyproject.toml) ... done<br\/>  Created wheel for SAM-2: filename=sam_2-1.0-0.editable-py3-none-any.whl size=13814 sha256=f2343bef58dd153654e2155601652cbdddc1d3bf53abf38c208eb859d797f305<br\/>  Stored in directory: \/lucien\/system\/tmp\/pip-ephem-wheel-cache-yd7y3ecf\/wheels\/9b\/13\/6a\/cfa1296ad8538525c75a1738a7b367749ace885146b228093b<br\/>Successfully built SAM-2<br\/>Installing collected packages: SAM-2<br\/>  Attempting uninstall: SAM-2<br\/>    Found existing installation: SAM-2 1.0<br\/>    Uninstalling SAM-2-1.0:<br\/>      Successfully uninstalled SAM-2-1.0<br\/>Successfully installed SAM-2-1.0<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on installe ensuite <strong>opencv-python<\/strong> avec la commande <strong>pip install opencv-python<\/strong>. Ensuite avant de lancer <strong>kdenlive<\/strong> dans un shell car il ne trouvait pas des biblioth\u00e8ques CUDA, j&rsquo;ai tap\u00e9 pr\u00e9alablement :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">export LD_LIBRARY_PATH=\/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cudnn_cu12-9.5.1.17-py3.13-linux-x86_64.egg\/nvidia\/cudnn\/lib:${LD_LIBRARY_PATH}<br\/>export LD_LIBRARY_PATH=\/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cusparselt_cu12-0.6.3-py3.13-linux-x86_64.egg\/cusparselt\/lib:${LD_LIBRARY_PATH}<br\/>export LD_LIBRARY_PATH=\/usr\/local\/lib\/python3.13\/site-packages\/nvidia_nccl_cu12-2.26.2-py3.13-linux-x86_64.egg\/nvidia\/nccl\/lib:${LD_LIBRARY_PATH}<br\/>export LD_LIBRARY_PATH=\/usr\/local\/lib\/python3.13\/site-packages\/nvidia_cuda_cupti_cu12-12.6.80-py3.13-linux-x86_64.egg\/nvidia\/cuda_cupti\/lib:${LD_LIBRARY_PATH}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>La magie semble ensuite op\u00e9rer car j&rsquo;ai maintenant acc\u00e8s au plugin et je peux lancer le traitement.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"276\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?resize=474%2C276&#038;ssl=1\" alt=\"\" class=\"wp-image-6799\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?resize=1024%2C597&amp;ssl=1 1024w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?resize=300%2C175&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?resize=768%2C448&amp;ssl=1 768w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?resize=1536%2C896&amp;ssl=1 1536w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?w=1852&amp;ssl=1 1852w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?w=948&amp;ssl=1 948w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/image5.png?w=1422&amp;ssl=1 1422w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/figure>\n\n\n\n<p>Mais il \u00e9choue ensuite avec l&rsquo;erreur :<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">\/usr\/local\/lib\/python3.13\/site-packages\/torch-2.7.0-py3.13-linux-x86_64.egg\/torch\/cuda\/__init__.py:174: UserWarning: CUDA initialization: The NVIDIA driver on your system is too old (found version 11040). Please <br\/>update your GPU driver by downloading and installing a new version from the URL: http:\/\/www.nvidia.com\/Download\/index.aspx Alternatively, go to: https:\/\/pytorch.org to install a PyTorch version that has been compiled with your v<br\/>ersion of the CUDA driver. (Triggered internally at \/pytorch\/c10\/cuda\/CUDAFunctions.cpp:109.)<br\/>  return torch._C._cuda_getDeviceCount() &gt; 0<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Ce n&rsquo;est pas bon signe, cela signifie sans doute que mon PC et sa carte graphique commencent \u00e0 se faire vieux, il faut dire que les deux ont maintenant 10 ans ce qui est une \u00e9ternit\u00e9 \u00e0 l&rsquo;\u00e9chelle informatique. Il va falloir sans doute investir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je viens d&rsquo;installer la derni\u00e8re version de kdenlive 25.04.0 dont un rapide changelog peut \u00eatre consult\u00e9 ici. Elle int\u00e8gre une \u00e9volution pour cr\u00e9er des masques d&rsquo;objet bas\u00e9s sur Segment Anything Model 2 (SAM 2) qui permet de segmenter une image et une vid\u00e9o en plusieurs objets distincts, d&rsquo;o\u00f9 \u00e9galement le terme segmentation d&rsquo;objet utilis\u00e9 par &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=6793\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">kdenlive 25.04.0 et l&rsquo;objet masque<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[5],"tags":[26],"class_list":["post-6793","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres","tag-kdenlive"],"share_on_mastodon":{"url":"https:\/\/mastodon.social\/@funix\/114450344425701217","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-1Lz","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6793"}],"version-history":[{"count":6,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6793\/revisions"}],"predecessor-version":[{"id":6801,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6793\/revisions\/6801"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}