Skip to content

Commit bef53df

Browse files
authored
added method to delete media by id (#48)
1 parent 9e1d590 commit bef53df

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

cmd/commands.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,3 +976,33 @@ func getPlaylist(c *cli.Context) error {
976976

977977
return nil
978978
}
979+
980+
func deleteMedia(c *cli.Context) error {
981+
db, err := startDB()
982+
983+
if err != nil {
984+
return cli.NewExitError(err, 1)
985+
}
986+
987+
defer db.Close()
988+
989+
plexConn, err := initPlex(db, true, true)
990+
991+
if err != nil {
992+
return err
993+
}
994+
995+
if c.NArg() == 0 {
996+
return cli.NewExitError("media id is required", 1)
997+
}
998+
999+
mediaID := c.Args().First()
1000+
1001+
if err := plexConn.DeleteMediaByID(mediaID); err != nil {
1002+
return cli.NewExitError(err, 1)
1003+
}
1004+
1005+
fmt.Printf("successfully deleted media '%s'\n", mediaID)
1006+
1007+
return nil
1008+
}

cmd/main.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,17 @@ func main() {
169169
Usage: "print playlsit items on plex server",
170170
Action: getPlaylist,
171171
},
172+
{
173+
Name: "delete",
174+
Usage: "delete a resource from your plex server",
175+
Subcommands: []cli.Command{
176+
{
177+
Name: "media",
178+
Usage: "delete media from your plex server",
179+
Action: deleteMedia,
180+
},
181+
},
182+
},
172183
}
173184

174185
if err := app.Run(os.Args); err != nil {

plex.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,25 @@ func (p *Plex) DeleteLibrary(key string) error {
10711071
return nil
10721072
}
10731073

1074+
// DeleteMediaByID removes the media from your Plex server via media key (or id)
1075+
func (p *Plex) DeleteMediaByID(id string) error {
1076+
query := fmt.Sprintf("%s/library/metadata/%s", p.URL, id)
1077+
1078+
resp, err := p.delete(query, p.Headers)
1079+
1080+
if err != nil {
1081+
return err
1082+
}
1083+
1084+
defer resp.Body.Close()
1085+
1086+
if resp.StatusCode != http.StatusOK {
1087+
return errors.New(resp.Status)
1088+
}
1089+
1090+
return nil
1091+
}
1092+
10741093
// GetLibraryLabels of your plex server
10751094
func (p *Plex) GetLibraryLabels(sectionKey, sectionIndex string) (LibraryLabels, error) {
10761095

0 commit comments

Comments
 (0)