{"id":28696017,"url":"https://github.com/l-vo/media-scripts","last_synced_at":"2026-04-27T18:32:45.088Z","repository":{"id":56400356,"uuid":"76993939","full_name":"l-vo/media-scripts","owner":"l-vo","description":"Various bash scripts for handling media files","archived":false,"fork":false,"pushed_at":"2020-11-10T07:03:28.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-14T09:43:47.235Z","etag":null,"topics":["bash","medias","movies","pictures","scripts"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/l-vo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-20T21:45:22.000Z","updated_at":"2021-02-06T18:58:40.000Z","dependencies_parsed_at":"2022-08-15T18:00:48.472Z","dependency_job_id":null,"html_url":"https://github.com/l-vo/media-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/l-vo/media-scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l-vo%2Fmedia-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l-vo%2Fmedia-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l-vo%2Fmedia-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l-vo%2Fmedia-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/l-vo","download_url":"https://codeload.github.com/l-vo/media-scripts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l-vo%2Fmedia-scripts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32349548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T17:12:42.749Z","status":"ssl_error","status_checked_at":"2026-04-27T17:12:41.658Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","medias","movies","pictures","scripts"],"created_at":"2025-06-14T09:38:45.477Z","updated_at":"2026-04-27T18:32:45.082Z","avatar_url":"https://github.com/l-vo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Media scripts\n\nThis repository contains scripts for dealing with medias (extract and rename videos and pictures, replace duplicates by hard links...):\n\n## create-hardlinks.sh\n\nThis script find duplicates in a directory and make them to use the same inode.  \nIf originals and duplicates are in different folders, specify them as path1 and path2 for improving performance.\n\n### Usage\n```\n$ ./create-hardlinks.sh path1 [path2]\n```\n\n## extract-photos.sh\n\nThis script allows to retrieve photos and videos from a library and organize them in folders date.\n\n### Requirements\n\n* exiftool (http://www.sno.phy.queensu.ca/~phil/exiftool/index.html)\n\n### Usage\n\n* Organize medias by date into a target folder\n```\n$ ./extract-photos.sh /path/to/my/library /path/where/photos/will/be/copied\n```\n\n* Organize all medias where date greater or equal than 12th May 2016\n```\n$ ./extract-photos.sh -d 2016-05-12 /path/to/my/library /path/where/photos/will/be/copied\n```\n\n## extract-videos.sh\n\nThis script allows to retrieve videos from a library and organize them into folders by date.\n\n### Requirements\n\n* exiftool (http://www.sno.phy.queensu.ca/~phil/exiftool/index.html)\n\n### Usage\n\n* Organize videos by date into a target folder\n```\n$ ./extract-videos.sh /path/to/my/library /path/where/videos/will/be/copied\n```\n\n## random-photos.sh\n***/!\\ This script is deprecated and not maintained anymore.  \nUse https://github.com/l-vo/photos-picker instead.***  \n\nThis script allows to retrieve random photos from a library. It gives a priority to later photos.\n\n### Requirements\n\nThese requirement are only needed if you use autorotate option (-a, see below).\n\n* jhead (http://www.sentex.net/~mwandel/jhead/)\n* jpegtran (http://jpegclub.org/jpegtran/)\n\n### Usage\n\n* Retrieve 200 photos (default value) from a library\n```\n$ ./random-photos.sh /path/to/my/library /path/where/photos/will/be/copied\n```\n\n* Retrieve 300 photos\n```\n$ ./random-photos.sh -c 300 /path/to/my/library /path/where/photos/will/be/copied\n```\n\n* Pick later photos (default value for the -r option is 40)\n```\n$ ./random-photos.sh -r 10 /path/to/my/library /path/where/photos/will/be/copied\n```\n\n* Pick older photos\n```\n$ ./random-photos.sh -r 90 /path/to/my/library /path/where/photos/will/be/copied\n```\n\n* Activate autorotate feature (needs jhead and jpegtran)\n```\n$ ./random-photos.sh -a /path/to/my/library /path/where/photos/will/be/copied\n```\n\n## remove-duplicates.sh\n\nThis script allows to remove duplicate files. A duplicate file is localized by a specific pattern before extension. These patterns are \" ([0-9])\" and \"_[0-9]\".  \nA supposed duplicate is deleted only if an assumed original is found in the same directory with the same prefix and the same checksum.\n\n### Usage\n\n* Remove duplicates, a confirmation is required for each file\n```\n$ ./remove-duplicates.sh /path/to/my/library\n```\n\n* Remove duplicates, files are removed without confirmation\n```\n$ ./remove-duplicates.sh -y /path/to/my/library\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl-vo%2Fmedia-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fl-vo%2Fmedia-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl-vo%2Fmedia-scripts/lists"}